diff options
author | aozeritsky <aozeritsky@yandex-team.ru> | 2022-02-16 21:39:33 +0300 |
---|---|---|
committer | aozeritsky <aozeritsky@yandex-team.ru> | 2022-02-16 21:39:33 +0300 |
commit | 2e15627de28081a12f2f26f36998dd51efe52213 (patch) | |
tree | af23ac8c5574bfeba5ea4710e6824b54f8c3382c | |
parent | a5e921af94bce492710aad92508bbc36558fcd43 (diff) | |
download | ydb-2e15627de28081a12f2f26f36998dd51efe52213.tar.gz |
Sort Nodes (fix some tests)
ref:2dcb86a93b67a0c095cbb1399e98fca38e7d98bf
-rw-r--r-- | ydb/library/yql/dq/opt/dq_opt_phy_finalizing.cpp | 6 |
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()); |