@@ -56,6 +56,8 @@ void ComputeRequiredProps(TOpRoot &root, ui32 props, TRBOContext &ctx) {
5656void TRuleBasedStage::RunStage (TOpRoot &root, TRBOContext &ctx) {
5757 bool fired = true ;
5858 int nMatches = 0 ;
59+ bool needToLog = NYql::NLog::YqlLogger ().NeedToLog (NYql::NLog::EComponent::CoreDq, NYql::NLog::ELevel::TRACE);
60+
5961
6062 while (fired && nMatches < 1000 ) {
6163 fired = false ;
@@ -75,7 +77,7 @@ void TRuleBasedStage::RunStage(TOpRoot &root, TRBOContext &ctx) {
7577 root.SetInput (op);
7678 }
7779
78- if (rule->LogRule ) {
80+ if (needToLog && rule->LogRule ) {
7981 YQL_CLOG (TRACE, CoreDq) << " Plan after applying rule:\n " << root.PlanToString (ctx.ExprCtx );
8082 }
8183
@@ -96,23 +98,34 @@ void TRuleBasedStage::RunStage(TOpRoot &root, TRBOContext &ctx) {
9698}
9799
98100TExprNode::TPtr TRuleBasedOptimizer::Optimize (TOpRoot &root, TExprContext &ctx) {
99- YQL_CLOG (TRACE, CoreDq) << " Original plan:\n " << root.PlanToString (ctx);
101+ bool needToLog = NYql::NLog::YqlLogger ().NeedToLog (NYql::NLog::EComponent::CoreDq, NYql::NLog::ELevel::TRACE);
102+
103+ if (needToLog) {
104+ YQL_CLOG (TRACE, CoreDq) << " Original plan:\n " << root.PlanToString (ctx);
105+ }
100106
101107 auto context = TRBOContext (KqpCtx, ctx, TypeCtx, RBOTypeAnnTransformer, FuncRegistry);
102108
103109 for (size_t idx = 0 ; idx < Stages.size (); idx++) {
104110 auto stage = Stages[idx];
105111 YQL_CLOG (TRACE, CoreDq) << " Running stage: " << stage->StageName ;
106112 ComputeRequiredProps (root, stage->Props , context);
113+ if (needToLog) {
114+ YQL_CLOG (TRACE, CoreDq) << " Before stage:\n " << root.PlanToString (ctx, EPrintPlanOptions::PrintFullMetadata | EPrintPlanOptions::PrintBasicStatistics);
115+ }
107116 stage->RunStage (root, context);
108- YQL_CLOG (TRACE, CoreDq) << " After stage:\n " << root.PlanToString (ctx);
117+ if (needToLog) {
118+ YQL_CLOG (TRACE, CoreDq) << " After stage:\n " << root.PlanToString (ctx, EPrintPlanOptions::PrintFullMetadata | EPrintPlanOptions::PrintBasicStatistics);
119+ }
109120 }
110121
111122 YQL_CLOG (TRACE, CoreDq) << " New RBO finished, generating physical plan" ;
112123
113124 auto convertProps = ERuleProperties::RequireParents | ERuleProperties::RequireTypes | ERuleProperties::RequireStatistics;
114125 ComputeRequiredProps (root, convertProps, context);
115- YQL_CLOG (TRACE, CoreDq) << " Final plan before generation:\n " << root.PlanToString (ctx, EPrintPlanOptions::PrintFullMetadata | EPrintPlanOptions::PrintBasicStatistics);
126+ if (needToLog) {
127+ YQL_CLOG (TRACE, CoreDq) << " Final plan before generation:\n " << root.PlanToString (ctx, EPrintPlanOptions::PrintFullMetadata | EPrintPlanOptions::PrintBasicStatistics);
128+ }
116129
117130 return ConvertToPhysical (root, context, TypeAnnTransformer, PeepholeTransformer);
118131}
0 commit comments