Skip to content

Commit a7178b2

Browse files
authored
[yt provider] Fix column group calculation for YtCopy (#11435)
1 parent 838cda7 commit a7178b2

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

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

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2882,11 +2882,18 @@ class TYtPhysicalFinalizingTransformer : public TSyncTransformerBase {
28822882
for (size_t outIndex = 0; outIndex < usage.UsedByMerges.size(); ++outIndex) {
28832883
for (auto merge: usage.UsedByMerges[outIndex]) {
28842884
const TColumnUsage& mergeUsage = colUsages.at(merge);
2885-
usage.FullUsage[outIndex] = usage.FullUsage[outIndex] || mergeUsage.FullUsage.at(0);
2886-
usage.PublishUsage[outIndex].insert(mergeUsage.PublishUsage.at(0).cbegin(), mergeUsage.PublishUsage.at(0).cend());
2887-
auto& cu = usage.ColumnUsage[outIndex];
2888-
for (const auto& p: mergeUsage.ColumnUsage.at(0)) {
2889-
cu[p.first].insert(p.second.cbegin(), p.second.cend());
2885+
if (TYtCopy::Match(merge)) {
2886+
usage.FullUsage[outIndex] = mergeUsage.FullUsage.at(0);
2887+
usage.PublishUsage[outIndex] = mergeUsage.PublishUsage.at(0);
2888+
usage.ColumnUsage[outIndex] = mergeUsage.ColumnUsage.at(0);
2889+
break; // Don't process others. YtCopy enforces exact the same column groups
2890+
} else {
2891+
usage.FullUsage[outIndex] = usage.FullUsage[outIndex] || mergeUsage.FullUsage.at(0);
2892+
usage.PublishUsage[outIndex].insert(mergeUsage.PublishUsage.at(0).cbegin(), mergeUsage.PublishUsage.at(0).cend());
2893+
auto& cu = usage.ColumnUsage[outIndex];
2894+
for (const auto& p: mergeUsage.ColumnUsage.at(0)) {
2895+
cu[p.first].insert(p.second.cbegin(), p.second.cend());
2896+
}
28902897
}
28912898
}
28922899
}

0 commit comments

Comments
 (0)