diff options
author | a-romanov <Anton.Romanov@ydb.tech> | 2023-08-07 17:30:46 +0300 |
---|---|---|
committer | a-romanov <Anton.Romanov@ydb.tech> | 2023-08-07 20:23:15 +0300 |
commit | b76e3a18a545bb224d408a16c5e52289cdffbe02 (patch) | |
tree | ba310badca64d6989c471f0bf901ba64fa49418d | |
parent | e86838db93808fd09203595e534dbad513bcc53c (diff) | |
download | ydb-b76e3a18a545bb224d408a16c5e52289cdffbe02.tar.gz |
YQL-12228 Fix plan for hybrid.
-rw-r--r-- | ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.cpp b/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.cpp index 31e64025f8..0dc50686b7 100644 --- a/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.cpp +++ b/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.cpp @@ -18,12 +18,18 @@ void ScanPlanDependencies(const TExprNode::TPtr& input, TExprNode::TListType& ch children.push_back(node); return false; } - if (auto maybeOutput = TMaybeNode<TYtOutput>(node)) { - children.push_back(GetOutputOp(maybeOutput.Cast()).Ptr()); + if (const auto maybeOutput = TMaybeNode<TYtOutput>(node)) { + const auto& output = maybeOutput.Cast(); + if (const auto& maybeTryFirst = output.Operation().Maybe<TYtTryFirst>()) { + const auto& tryFirst = maybeTryFirst.Cast(); + children.emplace_back(tryFirst.Second().Ptr()); + children.emplace_back(tryFirst.First().Ptr()); + } else + children.emplace_back(GetOutputOp(output).Ptr()); return false; } if (node->IsCallable("DqCnResult")) { // For TYtDqProcessWrite. - children.push_back(node->Child(0)); + children.emplace_back(node->HeadPtr()); return false; } return true; |