Skip to content

Commit e3c5faa

Browse files
authored
Merge 5c5d8a4 into a458b35
2 parents a458b35 + 5c5d8a4 commit e3c5faa

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

ydb/library/yql/providers/yt/provider/yql_yt_physical_finalizing.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ class TYtPhysicalFinalizingTransformer : public TSyncTransformerBase {
379379
}
380380

381381
if (const auto mode = State_->Configuration->ColumnGroupMode.Get().GetOrElse(EColumnGroupMode::Disable); mode != EColumnGroupMode::Disable) {
382-
status = CalculateColumnGroups(input, output, opDepsOrder, opDeps, mode, ctx);
382+
status = CalculateColumnGroups(input, output, opDepsOrder, opDeps, lefts, mode, ctx);
383383
if (status.Level != TStatus::Ok) {
384384
return status;
385385
}
@@ -2822,7 +2822,9 @@ class TYtPhysicalFinalizingTransformer : public TSyncTransformerBase {
28222822
}
28232823
}
28242824

2825-
TStatus CalculateColumnGroups(TExprNode::TPtr input, TExprNode::TPtr& output, std::vector<const TExprNode*> opDepsOrder, const TOpDeps& opDeps, EColumnGroupMode mode, TExprContext& ctx) {
2825+
TStatus CalculateColumnGroups(TExprNode::TPtr input, TExprNode::TPtr& output, const std::vector<const TExprNode*>& opDepsOrder, const TOpDeps& opDeps,
2826+
const TNodeSet& lefts, EColumnGroupMode mode, TExprContext& ctx)
2827+
{
28262828
const auto maxGroups = State_->Configuration->MaxColumnGroups.Get().GetOrElse(DEFAULT_MAX_COLUMN_GROUPS);
28272829
const auto minGroupSize = State_->Configuration->MinColumnGroupSize.Get().GetOrElse(DEFAULT_MIN_COLUMN_GROUP_SIZE);
28282830

@@ -2908,6 +2910,7 @@ class TYtPhysicalFinalizingTransformer : public TSyncTransformerBase {
29082910
}
29092911

29102912
TNodeOnNodeOwnedMap remap;
2913+
TNodeOnNodeOwnedMap newOps;
29112914
for (auto& x: colUsages) {
29122915
auto writer = x.first;
29132916
TColumnUsage& usage = x.second;
@@ -3012,11 +3015,22 @@ class TYtPhysicalFinalizingTransformer : public TSyncTransformerBase {
30123015
}
30133016
if (newOp) {
30143017
remap[writer] = newOp;
3018+
newOps[writer] = newOp;
30153019
}
30163020
}
30173021
}
30183022
}
30193023

3024+
if (!lefts.empty() && !newOps.empty()) {
3025+
for (auto node: lefts) {
3026+
TCoLeft left(node);
3027+
auto newIt = newOps.find(left.Input().Raw());
3028+
if (newIt != newOps.end()) {
3029+
remap[node] = ctx.ChangeChild(*node, TCoLeft::idx_Input, TExprNode::TPtr(newIt->second));
3030+
}
3031+
}
3032+
}
3033+
30203034
if (!remap.empty()) {
30213035
YQL_CLOG(INFO, ProviderYt) << "PhysicalFinalizing-CalculateColumnGroups";
30223036
return RemapExpr(input, output, remap, ctx, TOptimizeExprSettings{State_->Types});

0 commit comments

Comments
 (0)