@@ -92,7 +92,7 @@ class TKqpLogicalOptTransformer : public TOptimizeTransformerBase {
9292public:
9393 TStatus DoTransform (TExprNode::TPtr input, TExprNode::TPtr& output, TExprContext& ctx) override {
9494 auto status = TOptimizeTransformerBase::DoTransform (input, output, ctx);
95-
95+
9696 if (status == TStatus::Ok) {
9797 for (const auto & hint: KqpCtx.GetOptimizerHints ().GetUnappliedString ()) {
9898 ctx.AddWarning (YqlIssue ({}, TIssuesIds::YQL_UNUSED_HINT, " Unapplied hint: " + hint));
@@ -118,7 +118,7 @@ class TKqpLogicalOptTransformer : public TOptimizeTransformerBase {
118118 TMaybeNode<TExprBase> RewriteAggregate (TExprBase node, TExprContext& ctx) {
119119 TMaybeNode<TExprBase> output;
120120 auto aggregate = node.Cast <TCoAggregateBase>();
121- auto hopSetting = GetSetting (aggregate.Settings ().Ref (), " hopping" );
121+ auto hopSetting = GetSetting (aggregate.Settings ().Ref (), " hopping" );
122122 if (hopSetting) {
123123 auto input = aggregate.Input ().Maybe <TDqConnection>();
124124 if (!input) {
@@ -163,8 +163,9 @@ class TKqpLogicalOptTransformer : public TOptimizeTransformerBase {
163163 TMaybeNode<TExprBase> OptimizeEquiJoinWithCosts (TExprBase node, TExprContext& ctx) {
164164 auto maxDPhypDPTableSize = Config->MaxDPHypDPTableSize .Get ().GetOrElse (TDqSettings::TDefault::MaxDPHypDPTableSize);
165165 auto optLevel = Config->CostBasedOptimizationLevel .Get ().GetOrElse (Config->DefaultCostBasedOptimizationLevel );
166+ bool enableShuffleElimination = KqpCtx.Config ->OptShuffleElimination .Get ().GetOrElse (false );;
166167 auto providerCtx = TKqpProviderContext (KqpCtx, optLevel);
167- auto opt = std::unique_ptr<IOptimizerNew>(MakeNativeOptimizerNew (providerCtx, maxDPhypDPTableSize, ctx));
168+ auto opt = std::unique_ptr<IOptimizerNew>(MakeNativeOptimizerNew (providerCtx, maxDPhypDPTableSize, ctx, enableShuffleElimination ));
168169 TExprBase output = DqOptimizeEquiJoinWithCosts (node, ctx, TypesCtx, optLevel,
169170 *opt, [](auto & rels, auto label, auto node, auto stat) {
170171 rels.emplace_back (std::make_shared<TKqpRelOptimizerNode>(TString (label), *stat, node));
0 commit comments