diff options
author | pavelvelikhov <pavelvelikhov@ydb.tech> | 2023-12-06 19:03:18 +0300 |
---|---|---|
committer | pavelvelikhov <pavelvelikhov@ydb.tech> | 2023-12-06 20:42:26 +0300 |
commit | c962b9ba7511d2fe0776750d9a65d8f8d331acb2 (patch) | |
tree | 9d8b4fadd0c4b3aca91f7c2453562e4f82475903 | |
parent | aadc6e8d05d6e39c3cacb24ecc6504badb7f384e (diff) | |
download | ydb-c962b9ba7511d2fe0776750d9a65d8f8d331acb2.tar.gz |
Added ToFlow operator to JSON plan
Added ToFlow operator to JSON plan
18 files changed, 160 insertions, 27 deletions
diff --git a/ydb/core/kqp/opt/kqp_query_plan.cpp b/ydb/core/kqp/opt/kqp_query_plan.cpp index 0e624d7c57..cd429b1277 100644 --- a/ydb/core/kqp/opt/kqp_query_plan.cpp +++ b/ydb/core/kqp/opt/kqp_query_plan.cpp @@ -926,6 +926,8 @@ private: operatorId = Visit(maybeSkip.Cast(), planNode); } else if (auto maybeExtend = TMaybeNode<TCoExtendBase>(node)) { operatorId = Visit(maybeExtend.Cast(), planNode); + } else if (auto maybeToFlow = TMaybeNode<TCoToFlow>(node)) { + operatorId = Visit(maybeToFlow.Cast(), planNode); } else if (auto maybeIter = TMaybeNode<TCoIterator>(node)) { operatorId = Visit(maybeIter.Cast(), planNode); } else if (auto maybePartitionByKey = TMaybeNode<TCoPartitionByKey>(node)) { @@ -1029,6 +1031,23 @@ private: return AddOperator(planNode, "Union", std::move(op)); } + TMaybe<ui32> Visit(const TCoToFlow& toflow, TQueryPlanNode& planNode) { + const auto toflowValue = NPlanUtils::PrettyExprStr(toflow.Input()); + + TOperator op; + op.Properties["Name"] = "ToFlow"; + + if (auto maybeResultBinding = ContainResultBinding(toflowValue)) { + auto [txId, resId] = *maybeResultBinding; + planNode.CteRefName = TStringBuilder() << "precompute_" << txId << "_" << resId; + op.Properties["ToFlow"] = *planNode.CteRefName; + } else { + return TMaybe<ui32>(); + } + + return AddOperator(planNode, "ConstantExpr", std::move(op)); + } + ui32 Visit(const TCoIterator& iter, TQueryPlanNode& planNode) { const auto iterValue = NPlanUtils::PrettyExprStr(iter.List()); diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_2.plan index 7abf0dfd2d..1fe63d2b45 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_2.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_2.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-Aggregate-InnerJoin (MapJoin)-Filter-TableFullScan", + "CTE Name": "precompute_0_0", + "Node Type": "Limit-Aggregate-ConstantExpr-InnerJoin (MapJoin)-ConstantExpr-Filter-TableFullScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "Limit" @@ -38,9 +39,21 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { + "Inputs": [ + 4, + 5 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.thousand)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan index ec6c74101e..33dbe33b9a 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_1.plan @@ -25,7 +25,7 @@ "Plans": [ { "CTE Name": "precompute_1_0", - "Node Type": "TopSort-InnerJoin (MapJoin)-Filter-TableRangeScan-ConstantExpr", + "Node Type": "TopSort-InnerJoin (MapJoin)-ConstantExpr-Filter-TableRangeScan-ConstantExpr", "Operators": [ { "Limit": "1001", @@ -33,9 +33,17 @@ "TopSortBy": "" }, { + "Inputs": [ + 2, + 3 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.i)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan index f67ef4d282..106668e321 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_2.plan @@ -25,7 +25,7 @@ "Plans": [ { "CTE Name": "precompute_1_0", - "Node Type": "TopSort-InnerJoin (MapJoin)-Filter-TableRangeScan-ConstantExpr", + "Node Type": "TopSort-InnerJoin (MapJoin)-ConstantExpr-Filter-TableRangeScan-ConstantExpr", "Operators": [ { "Limit": "1001", @@ -33,9 +33,17 @@ "TopSortBy": "" }, { + "Inputs": [ + 2, + 3 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.i)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan index f67ef4d282..106668e321 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_3.plan @@ -25,7 +25,7 @@ "Plans": [ { "CTE Name": "precompute_1_0", - "Node Type": "TopSort-InnerJoin (MapJoin)-Filter-TableRangeScan-ConstantExpr", + "Node Type": "TopSort-InnerJoin (MapJoin)-ConstantExpr-Filter-TableRangeScan-ConstantExpr", "Operators": [ { "Limit": "1001", @@ -33,9 +33,17 @@ "TopSortBy": "" }, { + "Inputs": [ + 2, + 3 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.i)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan index f67ef4d282..106668e321 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join1.test_/query_5.plan @@ -25,7 +25,7 @@ "Plans": [ { "CTE Name": "precompute_1_0", - "Node Type": "TopSort-InnerJoin (MapJoin)-Filter-TableRangeScan-ConstantExpr", + "Node Type": "TopSort-InnerJoin (MapJoin)-ConstantExpr-Filter-TableRangeScan-ConstantExpr", "Operators": [ { "Limit": "1001", @@ -33,9 +33,17 @@ "TopSortBy": "" }, { + "Inputs": [ + 2, + 3 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.i)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan index 8894ea3b6f..f9ed7d31d7 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_2.plan @@ -25,7 +25,7 @@ "Plans": [ { "CTE Name": "precompute_1_0", - "Node Type": "TopSort-InnerJoin (MapJoin)-Filter-TableRangeScan-ConstantExpr", + "Node Type": "TopSort-InnerJoin (MapJoin)-ConstantExpr-Filter-TableRangeScan-ConstantExpr", "Operators": [ { "Limit": "1001", @@ -33,9 +33,17 @@ "TopSortBy": "argument.s2.name" }, { + "Inputs": [ + 2, + 3 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.name)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan index d1b3d119bf..7999245d97 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan @@ -25,16 +25,24 @@ "Plans": [ { "CTE Name": "precompute_4_0", - "Node Type": "Limit-InnerJoin (MapJoin)-Filter-TablePointLookup-ConstantExpr", + "Node Type": "Limit-InnerJoin (MapJoin)-ConstantExpr-Filter-TablePointLookup-ConstantExpr", "Operators": [ { "Limit": "1001", "Name": "Limit" }, { + "Inputs": [ + 2, + 3 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_3_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.k)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_7.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_7.plan index 9ccca22f5f..394687b6df 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_7.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_7.plan @@ -25,7 +25,7 @@ "Plans": [ { "CTE Name": "precompute_1_0", - "Node Type": "Limit-Filter-InnerJoin (MapJoin)-Filter-TableRangeScan-ConstantExpr", + "Node Type": "Limit-Filter-InnerJoin (MapJoin)-ConstantExpr-Filter-TableRangeScan-ConstantExpr", "Operators": [ { "Limit": "1001", @@ -36,9 +36,17 @@ "Predicate": "item.tt5.f1 == item.tt5.f2 - item.tt6.f2" }, { + "Inputs": [ + 3, + 4 + ], "Name": "InnerJoin (MapJoin)" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "Filter", "Predicate": "Exist(item.f1)" }, diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_125.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_125.plan index 0e04a17443..8150d020f0 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_125.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_125.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_15.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_15.plan index 62856b9a29..f50c4ad242 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_15.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_15.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_25.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_25.plan index 7755c69c14..8ffa5aef46 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_25.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_25.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_75.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_75.plan index ef46a5758e..32fc84f132 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_75.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-1.test_/query_75.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_24.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_24.plan index 40d62af965..13a8ae80ee 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_24.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_24.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_51.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_51.plan index ba1fe9ab09..7c9fe20166 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_51.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_51.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_85.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_85.plan index f9e76e2067..1ed71c9056 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_85.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-3.test_/query_85.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_120.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_120.plan index 783ff0f2e9..07b2dd3acd 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_120.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_120.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", diff --git a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_96.plan b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_96.plan index d05eaf86f8..4112b0b949 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_96.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_sql_logic.TestSQLLogic.test_sql_suite_plan-select2-4.test_/query_96.plan @@ -24,12 +24,13 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TopSort-Aggregate-TableRangeScan", + "CTE Name": "precompute_0_0", + "Node Type": "TopSort-Aggregate-ConstantExpr-TableRangeScan", "Operators": [ { "Inputs": [ 1, - 2 + 3 ], "Limit": "1001", "Name": "TopSort", @@ -39,6 +40,10 @@ "Name": "Aggregate" }, { + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { "Name": "TableRangeScan", "ReadColumns": [ "a", |