aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraozeritsky <aozeritsky@yandex-team.ru>2022-02-16 21:39:33 +0300
committeraozeritsky <aozeritsky@yandex-team.ru>2022-02-16 21:39:33 +0300
commit2e15627de28081a12f2f26f36998dd51efe52213 (patch)
treeaf23ac8c5574bfeba5ea4710e6824b54f8c3382c
parenta5e921af94bce492710aad92508bbc36558fcd43 (diff)
downloadydb-2e15627de28081a12f2f26f36998dd51efe52213.tar.gz
Sort Nodes (fix some tests)
ref:2dcb86a93b67a0c095cbb1399e98fca38e7d98bf
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_phy_finalizing.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/ydb/library/yql/dq/opt/dq_opt_phy_finalizing.cpp b/ydb/library/yql/dq/opt/dq_opt_phy_finalizing.cpp
index a1c8cf10c2c..13f8016398e 100644
--- a/ydb/library/yql/dq/opt/dq_opt_phy_finalizing.cpp
+++ b/ydb/library/yql/dq/opt/dq_opt_phy_finalizing.cpp
@@ -232,7 +232,11 @@ TExprNode::TPtr ReplicateDqOutput(TExprNode::TPtr&& input, const TMultiUsedConne
replaces[dqStage.Raw()] = newStage.Ptr();
ui32 consumerIdx = 0;
- for (auto& connection : muConnection.Output->Consumers) {
+ TVector<const TExprNode*> consumers; consumers.reserve(muConnection.Output->Consumers.size());
+ consumers.insert(consumers.end(), muConnection.Output->Consumers.begin(), muConnection.Output->Consumers.end());
+ std::sort(consumers.begin(), consumers.end(), [](auto l, auto r) { return l->UniqueId() < r->UniqueId(); });
+
+ for (auto& connection : consumers) {
YQL_ENSURE(TExprBase(connection).Maybe<TDqConnection>(), "DqOutput "
<< NCommon::ExprToPrettyString(ctx, muConnection.Output->Output.Ref())
<< " used by not DqConnection callable: " << connection->Content());