diff options
author | Pavel Velikhov <pavelvelikhov@ydb.tech> | 2024-07-08 12:38:17 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-08 12:38:17 +0300 |
commit | 57741e4c04902b615c634bc39592127bd50de1fe (patch) | |
tree | 9d5b1a1e2a9d967f9b5c752736455c8766e41855 | |
parent | cf80d1f6b9fd0d6165b1ea8d06a5effac2278340 (diff) | |
download | ydb-57741e4c04902b615c634bc39592127bd50de1fe.tar.gz |
Enabled CBO (#5780)
Co-authored-by: Pavel Ivanov <pudge1000-7@ydb.tech>
133 files changed, 1161 insertions, 11503 deletions
diff --git a/ydb/core/kqp/opt/kqp_statistics_transformer.cpp b/ydb/core/kqp/opt/kqp_statistics_transformer.cpp index 2b0a32aead..9cbbbce0b7 100644 --- a/ydb/core/kqp/opt/kqp_statistics_transformer.cpp +++ b/ydb/core/kqp/opt/kqp_statistics_transformer.cpp @@ -179,6 +179,34 @@ void InferStatisticsForIndexLookup(const TExprNode::TPtr& input, TTypeAnnotation typeCtx->SetStats(input.Get(), std::make_shared<TOptimizerStatistics>(EStatisticsType::BaseTable, 5, 5, 20, 0.0)); } +void InferStatisticsForReadTableIndexRanges(const TExprNode::TPtr& input, TTypeAnnotationContext* typeCtx) { + auto indexRanges = TKqlReadTableIndexRanges(input); + + auto inputStats = typeCtx->GetStats(indexRanges.Table().Raw()); + if (!inputStats) { + return; + } + + TVector<TString> indexColumns; + for (auto c : indexRanges.Columns()) { + indexColumns.push_back(c.StringValue()); + } + + auto indexColumnsPtr = TIntrusivePtr<TOptimizerStatistics::TKeyColumns>(new TOptimizerStatistics::TKeyColumns(indexColumns)); + auto stats = std::make_shared<TOptimizerStatistics>( + inputStats->Type, + inputStats->Nrows, + inputStats->Ncols, + inputStats->ByteSize, + inputStats->Cost, + indexColumnsPtr); + + typeCtx->SetStats(input.Get(), stats); + + YQL_CLOG(TRACE, CoreDq) << "Infer statistics for index: nrows: " << stats->Nrows << ", nattrs: " << stats->Ncols << ", nKeyColumns: " << stats->KeyColumns->Data.size(); + +} + /*** * Infer statistics for result binding of a stage */ @@ -273,7 +301,10 @@ bool TKqpStatisticsTransformer::BeforeLambdasSpecific(const TExprNode::TPtr& inp Y_UNUSED(ctx); bool matched = true; // KQP Matchers - if(TKqlReadTableBase::Match(input.Get()) || TKqlReadTableRangesBase::Match(input.Get())){ + if(TKqlReadTableIndexRanges::Match(input.Get())) { + InferStatisticsForReadTableIndexRanges(input, TypeCtx); + } + else if(TKqlReadTableBase::Match(input.Get()) || TKqlReadTableRangesBase::Match(input.Get())){ InferStatisticsForReadTable(input, TypeCtx, KqpCtx); } else if(TKqlLookupTableBase::Match(input.Get())) { diff --git a/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp b/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp index 9f3c13f2dc..079898bf9d 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp @@ -113,6 +113,7 @@ bool IsLookupJoinApplicable(std::shared_ptr<IBaseOptimizerNode> left, const TVector<TString>& rightJoinKeys, TKqpProviderContext& ctx) { + Y_UNUSED(joinConditions); Y_UNUSED(left); Y_UNUSED(leftJoinKeys); @@ -125,21 +126,13 @@ bool IsLookupJoinApplicable(std::shared_ptr<IBaseOptimizerNode> left, if (rightStats->Type != EStatisticsType::BaseTable) { return false; } - if (joinConditions.size() > rightStats->KeyColumns->Data.size()) { - return false; - } - for (auto [leftCol, rightCol] : joinConditions) { - // Fix for clang14, somehow structured binding does not create a variable in clang14 - auto r = rightCol; - if (find_if(rightStats->KeyColumns->Data.begin(), rightStats->KeyColumns->Data.end(), - [&r] (const TString& s) { - return r.AttributeName == s; - } ) == rightStats->KeyColumns->Data.end()) { + for (auto rightCol : rightJoinKeys) { + if (std::find(rightStats->KeyColumns->Data.begin(), rightStats->KeyColumns->Data.end(), rightCol) == rightStats->KeyColumns->Data.end()) { return false; } } - + return IsLookupJoinApplicableDetailed(std::static_pointer_cast<TRelOptimizerNode>(right), rightJoinKeys, ctx); } @@ -160,6 +153,15 @@ bool TKqpProviderContext::IsJoinApplicable(const std::shared_ptr<IBaseOptimizerN } return IsLookupJoinApplicable(left, right, joinConditions, leftJoinKeys, rightJoinKeys, *this); + case EJoinAlgoType::LookupJoinReverse: + if (joinKind != EJoinKind::LeftSemi) { + return false; + } + if ((OptLevel >= 2) && (right->Stats->Nrows > 1000)) { + return false; + } + return IsLookupJoinApplicable(right, left, joinConditions, rightJoinKeys, leftJoinKeys, *this); + case EJoinAlgoType::MapJoin: return joinKind != EJoinKind::OuterJoin && joinKind != EJoinKind::Exclusion && right->Stats->ByteSize < 5e8; case EJoinAlgoType::GraceJoin: @@ -178,6 +180,13 @@ double TKqpProviderContext::ComputeJoinCost(const TOptimizerStatistics& leftStat return -1; } return leftStats.Nrows + outputRows; + + case EJoinAlgoType::LookupJoinReverse: + if (OptLevel==1) { + return -1; + } + return rightStats.Nrows + outputRows; + case EJoinAlgoType::MapJoin: return leftStats.Nrows + 1.8 * rightStats.Nrows + outputRows; case EJoinAlgoType::GraceJoin: diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp index ac26425830..2309e97b67 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp @@ -926,8 +926,11 @@ TExprBase KqpJoinToIndexLookup(const TExprBase& node, TExprContext& ctx, const T } auto join = node.Cast<TDqJoin>(); - if (useCBO && FromString<EJoinAlgoType>(join.JoinAlgo().StringValue()) != EJoinAlgoType::LookupJoin) { - return node; + if (useCBO){ + auto algo = FromString<EJoinAlgoType>(join.JoinAlgo().StringValue()); + if (algo != EJoinAlgoType::LookupJoin && algo != EJoinAlgoType::LookupJoinReverse && algo != EJoinAlgoType::Undefined) { + return node; + } } DBG("-- Join: " << KqpExprToPrettyString(join, ctx)); diff --git a/ydb/core/kqp/ut/join/data/join_order/tpch2_1000s.json b/ydb/core/kqp/ut/join/data/join_order/tpch2_1000s.json index 61e524b69d..cb9d9de7d2 100644 --- a/ydb/core/kqp/ut/join/data/join_order/tpch2_1000s.json +++ b/ydb/core/kqp/ut/join/data/join_order/tpch2_1000s.json @@ -1 +1 @@ -{"op_name":"InnerJoin (Grace)","args":[{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"partsupp"},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"supplier"},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"nation"},{"op_name":"TableFullScan","table":"region"}]}]}]},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"partsupp"},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"supplier"},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"nation"},{"op_name":"TableFullScan","table":"region"}]}]}]},{"op_name":"TableFullScan","table":"part"}]}]} +{"op_name":"InnerJoin (Grace)","args":[{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"partsupp"},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"supplier"},{"op_name":"TableFullScan","table":"nation"}]}]},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"partsupp"},{"op_name":"InnerJoin (MapJoin)","args":[{"op_name":"TableFullScan","table":"supplier"},{"op_name":"TableFullScan","table":"nation"}]}]},{"op_name":"TableFullScan","table":"part"}]}]}
\ No newline at end of file diff --git a/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp b/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp index b1a5161044..9094f5fa31 100644 --- a/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp +++ b/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp @@ -5,6 +5,41 @@ namespace NKikimr::NKqp { using namespace NYdb; using namespace NYdb::NTable; +TKikimrRunner GetKikimrRunnerWithStats() { + static TString STATS = R"( + { + "/Root/FJ_Table_1": + { + "n_rows": 4 + }, + "/Root/FJ_Table_2": + { + "n_rows": 2 + }, + "/Root/FJ_Table_3": + { + "n_rows": 4 + }, + "/Root/FJ_Table_4": + { + "n_rows": 3 + } + } + )"; + + TVector<NKikimrKqp::TKqpSetting> settings; + + NKikimrKqp::TKqpSetting setting; + setting.SetName("OverrideStatistics"); + setting.SetValue(STATS); + settings.push_back(setting); + + TKikimrSettings serverSettings; + serverSettings.SetKqpSettings(settings); + + return TKikimrRunner(serverSettings); +} + static void CreateSampleTables(TSession session) { UNIT_ASSERT(session.ExecuteSchemeQuery(R"( CREATE TABLE `/Root/FJ_Table_1` ( @@ -52,7 +87,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // simple inner join, only 2 tables Y_UNIT_TEST(Inner_1) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -69,13 +104,15 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { auto result = ExecQueryAndTestResult(session, query, NoParams, R"([[["Value11"];["Value21"]];[["Value12"];["Value22"]]])"); - AssertTableReads(result, "/Root/FJ_Table_1", 4); + Cerr << result.GetQueryPlan() << Endl; + + AssertTableReads(result, "/Root/FJ_Table_1", 2); AssertTableReads(result, "/Root/FJ_Table_2", 2); } // hierarchy of joins, flip on the last layer Y_UNIT_TEST(Inner_2) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -93,13 +130,13 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { R"([[["Value31"];["Value21"];["Value4_101"]]])"); AssertTableReads(result, "/Root/FJ_Table_2", 2); - AssertTableReads(result, "/Root/FJ_Table_3", 4); + AssertTableReads(result, "/Root/FJ_Table_3", 1); AssertTableReads(result, "/Root/FJ_Table_4", 1); } // hierarchy of joins, flip on the top layer Y_UNIT_TEST(Inner_3) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -122,12 +159,12 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { AssertTableReads(result, "/Root/FJ_Table_1", 4); AssertTableReads(result, "/Root/FJ_Table_2", 2); - AssertTableReads(result, "/Root/FJ_Table_3", 4); + AssertTableReads(result, "/Root/FJ_Table_3", 2); } // simple left semi join, only 2 tables Y_UNIT_TEST(LeftSemi_1) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -149,7 +186,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // hierarchy of joins, flip on the last layer Y_UNIT_TEST(LeftSemi_2) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -173,7 +210,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // hierarchy of joins, flip on the top layer Y_UNIT_TEST(LeftSemi_3) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -201,7 +238,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // simple right semi join, only 2 tables Y_UNIT_TEST(RightSemi_1) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -222,7 +259,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // hierarchy of joins, flip on the last layer Y_UNIT_TEST(RightSemi_2) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -246,7 +283,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // hierarchy of joins, flip on the top layer Y_UNIT_TEST(RightSemi_3) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -274,7 +311,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // simple right join, only 2 tables Y_UNIT_TEST(Right_1) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -295,7 +332,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // hierarchy of joins, flip on the last layer Y_UNIT_TEST(Right_2) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -347,7 +384,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // simple right only join, only 2 tables Y_UNIT_TEST(RightOnly_1) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -368,7 +405,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // hierarchy of joins, flip on the last layer Y_UNIT_TEST(RightOnly_2) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -395,7 +432,7 @@ Y_UNIT_TEST_SUITE(KqpFlipJoin) { // hierarchy of joins, flip on the top layer Y_UNIT_TEST(RightOnly_3) { - TKikimrRunner kikimr; + auto kikimr = GetKikimrRunnerWithStats(); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); diff --git a/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp b/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp index 1ff3126cb0..55ff9b15d3 100644 --- a/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp +++ b/ydb/core/kqp/ut/join/kqp_index_lookup_join_ut.cpp @@ -1008,7 +1008,21 @@ Y_UNIT_TEST_TWIN(JoinByComplexKeyWithNullComponents, StreamLookupJoin) { Y_UNIT_TEST_TWIN(JoinWithComplexCondition, StreamLookupJoin) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnableKqpDataQueryStreamIdxLookupJoin(StreamLookupJoin); - auto settings = TKikimrSettings().SetAppConfig(appConfig); + + TString stats = R"( + {"/Root/Left":{"n_rows":3}, "/Root/Right":{"n_rows":3}} + )"; + + TVector<NKikimrKqp::TKqpSetting> settings; + + NKikimrKqp::TKqpSetting setting; + setting.SetName("OverrideStatistics"); + setting.SetValue(stats); + settings.push_back(setting); + + TKikimrSettings serverSettings = TKikimrSettings().SetAppConfig(appConfig);; + serverSettings.SetKqpSettings(settings); + TKikimrRunner kikimr(settings); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); @@ -1068,7 +1082,7 @@ Y_UNIT_TEST_TWIN(JoinWithComplexCondition, StreamLookupJoin) { [[1];[1];[1];[1]] ])", FormatResultSetYson(result.GetResultSet(0))); - const ui32 index = (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); + const ui32 index = (serverSettings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); auto& stats = NYdb::TProtoAccessor::GetProto(*result.GetStats()); for (const auto& tableStats : stats.query_phases(index).table_access()) { if (tableStats.name() == "/Root/Right") { @@ -1098,7 +1112,7 @@ Y_UNIT_TEST_TWIN(JoinWithComplexCondition, StreamLookupJoin) { [[2];[2];[20];#] ])", FormatResultSetYson(result.GetResultSet(0))); - const ui32 index = (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); + const ui32 index = (serverSettings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); auto& stats = NYdb::TProtoAccessor::GetProto(*result.GetStats()); for (const auto& tableStats : stats.query_phases(index).table_access()) { if (tableStats.name() == "/Root/Right") { @@ -1127,7 +1141,7 @@ Y_UNIT_TEST_TWIN(JoinWithComplexCondition, StreamLookupJoin) { [[2];[2];[2];["two"];["two"];["two"]] ])", FormatResultSetYson(result.GetResultSet(0))); - const ui32 index = (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); + const ui32 index = (serverSettings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); auto& stats = NYdb::TProtoAccessor::GetProto(*result.GetStats()); for (const auto& tableStats : stats.query_phases(index).table_access()) { if (tableStats.name() == "/Root/Right") { @@ -1158,7 +1172,7 @@ Y_UNIT_TEST_TWIN(JoinWithComplexCondition, StreamLookupJoin) { [[2];[2];[2];["two"];["two"];["two"]] ])", FormatResultSetYson(result.GetResultSet(0))); - const ui32 index = (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); + const ui32 index = (serverSettings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin() ? 0 : 1); auto& stats = NYdb::TProtoAccessor::GetProto(*result.GetStats()); for (const auto& tableStats : stats.query_phases(index).table_access()) { if (tableStats.name() == "/Root/Right") { diff --git a/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp b/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp index c0e8bd96ae..44657d1b7e 100644 --- a/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp +++ b/ydb/core/kqp/ut/join/kqp_join_order_ut.cpp @@ -286,19 +286,20 @@ Y_UNIT_TEST_SUITE(KqpJoinOrder) { /* join with parameters */ { const TString query = GetStatic(queryPath); + + auto result = session.ExplainDataQuery(query).ExtractValueSync(); - TStreamExecScanQuerySettings settings; - settings.Explain(true); - - auto it = kikimr.GetTableClient().StreamExecuteScanQuery(query, settings).ExtractValueSync(); - auto res = CollectStreamResult(it); + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SUCCESS); TString ref = GetStatic(correctJoinOrderPath); /* correct canonized join order in cout, change corresponding join_order/.json file */ - Cout << CanonizeJoinOrder(*res.PlanJson) << Endl; + Cout << CanonizeJoinOrder(result.GetPlan()) << Endl; - UNIT_ASSERT(JoinOrderAndAlgosMatch(*res.PlanJson, ref)); + /* Only check the plans if stream join is enabled*/ + if (useStreamLookupJoin) { + UNIT_ASSERT(JoinOrderAndAlgosMatch(result.GetPlan(), ref)); + } } } @@ -314,12 +315,14 @@ Y_UNIT_TEST_SUITE(KqpJoinOrder) { ); } + /* Y_UNIT_TEST_TWIN(OverrideStatsTPCDS64, StreamLookupJoin) { JoinOrderTestWithOverridenStats( "queries/tpcds64.sql", "stats/tpcds1000s.json", "join_order/tpcds64_1000s.json", StreamLookupJoin ); } - + */ + Y_UNIT_TEST_TWIN(OverrideStatsTPCDS78, StreamLookupJoin) { JoinOrderTestWithOverridenStats( "queries/tpcds78.sql", "stats/tpcds1000s.json", "join_order/tpcds78_1000s.json", StreamLookupJoin diff --git a/ydb/core/kqp/ut/join/kqp_join_ut.cpp b/ydb/core/kqp/ut/join/kqp_join_ut.cpp index fae91c918e..207d570e57 100644 --- a/ydb/core/kqp/ut/join/kqp_join_ut.cpp +++ b/ydb/core/kqp/ut/join/kqp_join_ut.cpp @@ -1506,31 +1506,6 @@ Y_UNIT_TEST_SUITE(KqpJoin) { CompareYson(R"([[2]])", FormatResultSetYson(result.GetResultSet(0))); } - Y_UNIT_TEST(JoinPragmaHashJoinMode) { - TKikimrRunner kikimr; - auto db = kikimr.GetTableClient(); - auto session = db.CreateSession().GetValueSync().GetSession(); - - CreateSampleTables(session); - - auto query = Q1_(R"( - PRAGMA ydb.HashJoinMode='grace'; - - SELECT t1.Value - FROM `/Root/Join1_1` AS t1 - INNER JOIN `/Root/Join1_2` AS t2 - ON t1.Value == t2.Value; - )"); - - auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx(), BuildPureTableParams(db)).GetValueSync(); - - UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); - CompareYson(R"([])", FormatResultSetYson(result.GetResultSet(0))); - - auto explain = session.ExplainDataQuery(query).GetValueSync(); - UNIT_ASSERT(explain.GetAst().Contains("GraceJoinCore")); - } - Y_UNIT_TEST(FullOuterJoinNotNullJoinKey) { TKikimrRunner kikimr; auto db = kikimr.GetTableClient(); diff --git a/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp b/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp index d92319c3f3..0c9361fef0 100644 --- a/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp +++ b/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp @@ -639,7 +639,7 @@ Y_UNIT_TEST_SUITE(KqpQueryPerf) { if (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamIdxLookupJoin()) { UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 1); } else if (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamLookup()) { - UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 3); + UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 2); } else { UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 5); } diff --git a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp index 9d5a82df2e..4528ab213e 100644 --- a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp @@ -85,10 +85,7 @@ Y_UNIT_TEST_SUITE(KqpExplain) { NJson::ReadJsonTree(*res.PlanJson, &plan, true); UNIT_ASSERT(ValidatePlanNodeIds(plan)); - auto join = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)-Filter"); - if (!join.IsDefined()) { - join = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)-Filter-TableFullScan"); - } + auto join = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)"); UNIT_ASSERT(join.IsDefined()); auto left = FindPlanNodeByKv(join, "Table", "EightShard"); UNIT_ASSERT(left.IsDefined()); @@ -115,10 +112,7 @@ Y_UNIT_TEST_SUITE(KqpExplain) { NJson::ReadJsonTree(*res.PlanJson, &plan, true); UNIT_ASSERT(ValidatePlanNodeIds(plan)); - auto join = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)-Filter"); - if (!join.IsDefined()) { - join = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)-Filter-TableFullScan"); - } + auto join = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)"); UNIT_ASSERT(join.IsDefined()); auto left = FindPlanNodeByKv(join, "Table", "EightShard"); UNIT_ASSERT(left.IsDefined()); @@ -208,15 +202,9 @@ Y_UNIT_TEST_SUITE(KqpExplain) { auto join = FindPlanNodeByKv( plan, "Node Type", - "Aggregate-InnerJoin (MapJoin)-Filter" + "Aggregate-InnerJoin (MapJoin)" ); - if (!join.IsDefined()) { - join = FindPlanNodeByKv( - plan, - "Node Type", - "Aggregate-InnerJoin (MapJoin)-Filter-TableFullScan" - ); - } + UNIT_ASSERT(join.IsDefined()); auto left = FindPlanNodeByKv(join, "Table", "EightShard"); UNIT_ASSERT(left.IsDefined()); @@ -377,9 +365,9 @@ Y_UNIT_TEST_SUITE(KqpExplain) { NJson::ReadJsonTree(*res.PlanJson, &plan, true); UNIT_ASSERT(ValidatePlanNodeIds(plan)); - auto join1 = FindPlanNodeByKv(plan, "Node Type", "Sort-InnerJoin (MapJoin)-Filter"); + auto join1 = FindPlanNodeByKv(plan, "Node Type", "Sort-InnerJoin (MapJoin)"); UNIT_ASSERT(join1.IsDefined()); - auto join2 = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)-Filter"); + auto join2 = FindPlanNodeByKv(plan, "Node Type", "Aggregate-InnerJoin (MapJoin)"); UNIT_ASSERT(join2.IsDefined()); } @@ -603,7 +591,7 @@ Y_UNIT_TEST_SUITE(KqpExplain) { NJson::ReadJsonTree(*res.PlanJson, &plan, true); UNIT_ASSERT(ValidatePlanNodeIds(plan)); - auto join = FindPlanNodeByKv(plan, "Node Type", "FullJoin (JoinDict)"); + auto join = FindPlanNodeByKv(plan, "Node Type", "FullJoin (Grace)"); UNIT_ASSERT(join.IsDefined()); auto left = FindPlanNodeByKv(join, "Table", "EightShard"); UNIT_ASSERT(left.IsDefined()); diff --git a/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp b/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp index 1ed26d6de1..91c0f3b761 100644 --- a/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp +++ b/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp @@ -60,6 +60,7 @@ Y_UNIT_TEST(SelfJoinQueryService) { auto query = R"( --!syntax_v1 + PRAGMA ydb.CostBasedOptimizationLevel='0'; select t1.Key, t1.Value, t2.Key, t2.Value from `/Root/KeyValue` as t1 join `/Root/KeyValue` as t2 on t1.Value = t2.Value order by t1.Key @@ -120,6 +121,7 @@ Y_UNIT_TEST(SelfJoin) { auto query = R"( --!syntax_v1 + PRAGMA ydb.CostBasedOptimizationLevel='0'; select t1.Key, t1.Value, t2.Key, t2.Value from `/Root/KeyValue` as t1 join `/Root/KeyValue` as t2 on t1.Key = t2.Key order by t1.Key diff --git a/ydb/core/protos/feature_flags.proto b/ydb/core/protos/feature_flags.proto index eaf0172f27..2ebd8c89a2 100644 --- a/ydb/core/protos/feature_flags.proto +++ b/ydb/core/protos/feature_flags.proto @@ -118,7 +118,7 @@ message TFeatureFlags { optional bool SuppressCompatibilityCheck = 103 [default = false]; optional bool EnableUniqConstraint = 104 [default = false]; optional bool EnableChangefeedDebeziumJsonFormat = 105 [default = false]; - optional bool EnableStatistics = 106 [default = false]; + optional bool EnableStatistics = 106 [default = true]; optional bool EnableUuidAsPrimaryKey = 107 [default = false]; optional bool EnableTablePgTypes = 108 [default = false]; optional bool EnableLocalDBBtreeIndex = 109 [default = true]; diff --git a/ydb/library/yql/core/yql_cost_function.h b/ydb/library/yql/core/yql_cost_function.h index 778ee6276a..cb12f37238 100644 --- a/ydb/library/yql/core/yql_cost_function.h +++ b/ydb/library/yql/core/yql_cost_function.h @@ -19,6 +19,7 @@ struct IProviderContext; enum class EJoinAlgoType { Undefined, LookupJoin, + LookupJoinReverse, MapJoin, GraceJoin, StreamLookupJoin, //Right part can be updated during an operation. Used mainly for joining streams with lookup tables. Currently impplemented in Dq by LookupInputTransform @@ -26,7 +27,7 @@ enum class EJoinAlgoType { }; //StreamLookupJoin is not a subject for CBO and not not included here -static constexpr auto AllJoinAlgos = { EJoinAlgoType::MapJoin, EJoinAlgoType::GraceJoin, EJoinAlgoType::LookupJoin, EJoinAlgoType::MergeJoin }; +static constexpr auto AllJoinAlgos = { EJoinAlgoType::LookupJoin, EJoinAlgoType::LookupJoinReverse, EJoinAlgoType::MapJoin, EJoinAlgoType::GraceJoin, EJoinAlgoType::MergeJoin }; namespace NDq { diff --git a/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp b/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp index 9b4267eee8..3b1d63d1ce 100644 --- a/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp +++ b/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp @@ -240,6 +240,7 @@ private: TDPHypSolver<TNodeSet> solver(hypergraph, this->Pctx); if (solver.CountCC(MaxDPhypTableSize_) >= MaxDPhypTableSize_) { + YQL_CLOG(TRACE, CoreDq) << "Maximum DPhyp threshold exceeded\n"; ComputeStatistics(joinTree, this->Pctx); return joinTree; } diff --git a/ydb/library/yql/dq/opt/dq_opt_stat.cpp b/ydb/library/yql/dq/opt/dq_opt_stat.cpp index 170cc3ea7c..4e3385fdc4 100644 --- a/ydb/library/yql/dq/opt/dq_opt_stat.cpp +++ b/ydb/library/yql/dq/opt/dq_opt_stat.cpp @@ -392,6 +392,22 @@ void InferStatisticsForAsList(const TExprNode::TPtr& input, TTypeAnnotationConte } /*** + * Infer statistics for a list of structs + */ +void InferStatisticsForListParam(const TExprNode::TPtr& input, TTypeAnnotationContext* typeCtx) { + auto param = TCoParameter(input); + if (auto maybeListType = param.Type().Maybe<TCoListType>()) { + auto itemType = maybeListType.Cast().ItemType(); + if (auto maybeStructType = itemType.Maybe<TCoStructType>()) { + int nRows = 100; + int nAttrs = maybeStructType.Cast().Ptr()->ChildrenSize(); + typeCtx->SetStats(input.Get(), std::make_shared<TOptimizerStatistics>( + EStatisticsType::BaseTable, nRows, nAttrs, nRows*nAttrs, 0.0)); + } + } +} + +/*** * For callables that include lambdas, we want to propagate the statistics from lambda's input to its argument, so * that the operators inside lambda receive the correct statistics */ diff --git a/ydb/library/yql/dq/opt/dq_opt_stat.h b/ydb/library/yql/dq/opt/dq_opt_stat.h index 1505f383d9..dd5d628c44 100644 --- a/ydb/library/yql/dq/opt/dq_opt_stat.h +++ b/ydb/library/yql/dq/opt/dq_opt_stat.h @@ -20,6 +20,7 @@ void InferStatisticsForDqSource(const TExprNode::TPtr& input, TTypeAnnotationCon void InferStatisticsForGraceJoin(const TExprNode::TPtr& input, TTypeAnnotationContext* typeCtx, const IProviderContext& ctx); void InferStatisticsForMapJoin(const TExprNode::TPtr& input, TTypeAnnotationContext* typeCtx, const IProviderContext& ctx); void InferStatisticsForAsList(const TExprNode::TPtr& input, TTypeAnnotationContext* typeCtx); +void InferStatisticsForListParam(const TExprNode::TPtr& input, TTypeAnnotationContext* typeCtx); double ComputePredicateSelectivity(const NNodes::TExprBase& input, const std::shared_ptr<TOptimizerStatistics>& stats); bool NeedCalc(NNodes::TExprBase node); bool IsConstantExpr(const TExprNode::TPtr& input); diff --git a/ydb/library/yql/dq/opt/dq_opt_stat_transformer_base.cpp b/ydb/library/yql/dq/opt/dq_opt_stat_transformer_base.cpp index ee0e7d6773..a19e53aac5 100644 --- a/ydb/library/yql/dq/opt/dq_opt_stat_transformer_base.cpp +++ b/ydb/library/yql/dq/opt/dq_opt_stat_transformer_base.cpp @@ -55,6 +55,9 @@ bool TDqStatisticsTransformerBase::BeforeLambdas(const TExprNode::TPtr& input, T else if (TCoAsList::Match(input.Get())){ InferStatisticsForAsList(input, TypeCtx); } + else if (TCoParameter::Match(input.Get())) { + InferStatisticsForListParam(input, TypeCtx); + } // Join matchers else if(TCoMapJoinCore::Match(input.Get())) { diff --git a/ydb/library/yql/providers/dq/common/yql_dq_settings.h b/ydb/library/yql/providers/dq/common/yql_dq_settings.h index 03adbdc8a5..67b5c51d64 100644 --- a/ydb/library/yql/providers/dq/common/yql_dq_settings.h +++ b/ydb/library/yql/providers/dq/common/yql_dq_settings.h @@ -61,8 +61,8 @@ struct TDqSettings { static constexpr bool ExportStats = false; static constexpr ETaskRunnerStats TaskRunnerStats = ETaskRunnerStats::Basic; static constexpr ESpillingEngine SpillingEngine = ESpillingEngine::Disable; - static constexpr ui32 CostBasedOptimizationLevel = 0; - static constexpr ui32 MaxDPccpDPTableSize = 16400U; + static constexpr ui32 CostBasedOptimizationLevel = 3; + static constexpr ui32 MaxDPccpDPTableSize = 40000U; static constexpr ui64 MaxAttachmentsSize = 2_GB; static constexpr bool SplitStageOnDqReplicate = true; static constexpr ui64 EnableSpillingNodes = 0; diff --git a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup.sql b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup.sql index 28ee29e0be..bb3eaddf43 100644 --- a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup.sql +++ b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup.sql @@ -1,4 +1,4 @@ - +PRAGMA ydb.OverrideStatistics='{"/local/base_join_join_to_idx_lookup_sql_plan/InputJoin1":{"n_rows":7},"/local/base_join_join_to_idx_lookup_sql_plan/InputJoin2":{"n_rows":9},"/local/base_join_join_to_idx_lookup_sql_plan/InputJoin3":{"n_rows":3}}'; SELECT t3.Value FROM InputJoin1 AS t1 LEFT JOIN InputJoin2 AS t2 diff --git a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_equi.sql b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_equi.sql index c5161f1b0d..30b641068f 100644 --- a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_equi.sql +++ b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_equi.sql @@ -1,4 +1,4 @@ - +PRAGMA ydb.OverrideStatistics='{"/local/base_join_join_to_idx_lookup_equi_sql_plan/InputJoin1":{"n_rows":7},"/local/base_join_join_to_idx_lookup_equi_sql_plan/InputJoin2":{"n_rows":9},"/local/base_join_join_to_idx_lookup_equi_sql_plan/InputJoin3":{"n_rows":3}}'; PRAGMA DisableSimpleColumns; SELECT * diff --git a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_inner.sql b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_inner.sql index dfff110a27..05ccb58780 100644 --- a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_inner.sql +++ b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_inner.sql @@ -1,4 +1,4 @@ - +PRAGMA ydb.OverrideStatistics='{"/local/base_join_join_to_idx_lookup_inner_sql_plan/InputJoin1":{"n_rows":7},"/local/base_join_join_to_idx_lookup_inner_sql_plan/InputJoin2":{"n_rows":9},"/local/base_join_join_to_idx_lookup_inner_sql_plan/InputJoin3":{"n_rows":3}}'; SELECT t1.Value AS Value1, t3.Value AS Value3 FROM InputJoin1 AS t1 diff --git a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_inner.sql b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_inner.sql index f5d83fcce1..9410874b47 100644 --- a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_inner.sql +++ b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_inner.sql @@ -1,4 +1,4 @@ - +PRAGMA ydb.OverrideStatistics='{"/local/base_join_join_to_idx_lookup_partial_inner_sql_plan/InputJoin1":{"n_rows":7},"/local/base_join_join_to_idx_lookup_partial_inner_sql_plan/InputJoin2":{"n_rows":9},"/local/base_join_join_to_idx_lookup_partial_inner_sql_plan/InputJoin3":{"n_rows":3}}'; SELECT t1.Value AS Value1, t2.Value AS Value2, t3.Value AS Value3 FROM InputJoin1 AS t1 diff --git a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_left.sql b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_left.sql index 5f4ebfbceb..eaf8e68a41 100644 --- a/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_left.sql +++ b/ydb/tests/functional/canonical/sql/join/join_to_idx_lookup_partial_left.sql @@ -1,4 +1,4 @@ - +PRAGMA ydb.OverrideStatistics='{"/local/base_join_join_to_idx_lookup_partial_left_sql_plan/InputJoin1":{"n_rows":7},"/local/base_join_join_to_idx_lookup_partial_left_sql_plan/InputJoin2":{"n_rows":9},"/local/base_join_join_to_idx_lookup_partial_left_sql_plan/InputJoin3":{"n_rows":3}}'; SELECT t1.Value AS Value1, t2.Value AS Value2, t3.Value AS Value3 FROM InputJoin1 AS t1 diff --git a/ydb/tests/functional/canonical/test_sql.py b/ydb/tests/functional/canonical/test_sql.py index 7863bdfe3e..72ac67c738 100644 --- a/ydb/tests/functional/canonical/test_sql.py +++ b/ydb/tests/functional/canonical/test_sql.py @@ -449,6 +449,16 @@ class BaseCanonicalTest(object): ) ) + def remove_optimizer_estimates(self, query_plan): + if 'Plans' in query_plan: + for p in query_plan['Plans']: + self.remove_optimizer_estimates(p) + if 'Operators' in query_plan: + for op in query_plan['Operators']: + for key in ['A-Cpu', 'A-Rows', 'E-Cost', 'E-Rows', 'E-Size']: + if key in op: + del op[key] + def run_test_case(self, query_name, kind): self.initialize_common(query_name, kind) query = self.format_query(self.read_query_text(query_name)) @@ -465,6 +475,8 @@ class BaseCanonicalTest(object): for q in plan['queries']: if 'SimplifiedPlan' in q: del q['SimplifiedPlan'] + if 'Plan' in q: + self.remove_optimizer_estimates(q['Plan']) canons['script_plan'] = self.canonical_plan(query_name, self.pretty_json(plan)) self.compare_tables_test(canons, config, query_name) elif kind == 'plan': diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0 index 46ff82f75c..c408c970dc 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-0 @@ -122,90 +122,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": null, - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "GroupBy": { - "Aggregates": [ - { - "Column": { - "Id": 106 - }, - "Function": { - "Id": 2 - } - } - ] - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 106 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1 index 3913b96d05..8d8d8a3989 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-1 @@ -161,129 +161,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 41 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "GroupBy": { - "Aggregates": [ - { - "Column": { - "Id": 108 - }, - "Function": { - "Id": 2 - } - } - ] - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 108 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 index aa15cbd14f..4e1b3a035b 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-10 @@ -192,147 +192,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", - "GroupBy": "item.MobilePhoneModel", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "MobilePhoneModel", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 35 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 35 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 index 3d4c586f99..b6407bb6ae 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-11 @@ -198,151 +198,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "MobilePhone", - "MobilePhoneModel", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 35 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 34 - }, - { - "Id": 35 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 index 06503a06c4..1b83c666c8 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-12 @@ -159,130 +159,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 40 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 index 8feefc633c..9406d139a2 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-13 @@ -192,147 +192,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 40 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 index bfd4f3272c..e2dd6fcc2e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-14 @@ -164,134 +164,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchEngineID", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 39 - }, - { - "Id": 40 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 index 534fdd410c..1051e5397e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-15 @@ -122,93 +122,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.UserID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 index 8f33c6dee2..7caab1536e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-16 @@ -127,97 +127,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 40 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 index 78683ee80f..e3992a9adf 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-17 @@ -123,96 +123,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 40 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 index 571add1f0c..4f1de59f4f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-18 @@ -132,101 +132,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventTime", - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 5 - }, - { - "Id": 40 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19 index 10ab24edc1..b28a4451dd 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-19 @@ -128,117 +128,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1001", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1001", - "Name": "Limit" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadLimit": "1001", - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Sequential", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int64": 435090932899640449 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 10 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 5 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2 index 7337a23bd3..7b053786fe 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-2 @@ -182,141 +182,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "ResolutionWidth" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "GroupBy": { - "Aggregates": [ - { - "Column": { - "Id": 106 - }, - "Function": { - "Arguments": [ - { - "Id": 21 - } - ], - "Id": 5 - } - }, - { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 21 - } - ], - "Id": 2 - } - }, - { - "Column": { - "Id": 108 - }, - "Function": { - "Id": 2 - } - }, - { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 41 - } - ], - "Id": 5 - } - } - ] - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 107 - }, - { - "Id": 106 - }, - { - "Id": 108 - }, - { - "Id": 109 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20 index 109653e055..35a64db0b3 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-20 @@ -161,129 +161,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "URL" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "google" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 14 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 10 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "GroupBy": { - "Aggregates": [ - { - "Column": { - "Id": 108 - }, - "Function": { - "Id": 2 - } - } - ] - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 108 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 index c8b56cec8e..e367dbb5d5 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-21 @@ -203,174 +203,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_1: MIN(item.URL,state._yql_agg_1)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "URL" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": {} - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Bytes": "google" - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 14 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 10 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 109 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 40 - }, - { - "Id": 14 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 index 0826a49f14..6546c5c5f1 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-22 @@ -546,475 +546,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Union", - "Operators": [ - { - "Name": "Union" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_2: MIN(item.URL,state._yql_agg_2),_yql_agg_3: MIN(item.Title,state._yql_agg_3)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "Title", - "URL", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": {} - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Bytes": "Google" - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 3 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 10 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Constant": { - "Bytes": ".google." - } - } - }, - { - "Assign": { - "Column": { - "Id": 111 - }, - "Function": { - "Arguments": [ - { - "Id": 14 - }, - { - "Id": 110 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 10 - } - } - }, - { - "Assign": { - "Column": { - "Id": 112 - }, - "Function": { - "Arguments": [ - { - "Id": 111 - } - ], - "FunctionType": 2, - "KernelIdx": 3 - } - } - }, - { - "Assign": { - "Column": { - "Id": 113 - }, - "Function": { - "Arguments": [ - { - "Id": 109 - }, - { - "Id": 112 - } - ], - "FunctionType": 2, - "KernelIdx": 4, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 113 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 40 - }, - { - "Id": 3 - }, - { - "Id": 14 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 9 - } - ] - }, - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: Inc(state._yql_agg_1)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 11, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 13, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "Title", - "URL", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": {} - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Bytes": "Google" - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 3 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 10 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Constant": { - "Bytes": ".google." - } - } - }, - { - "Assign": { - "Column": { - "Id": 111 - }, - "Function": { - "Arguments": [ - { - "Id": 14 - }, - { - "Id": 110 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 10 - } - } - }, - { - "Assign": { - "Column": { - "Id": 112 - }, - "Function": { - "Arguments": [ - { - "Id": 111 - } - ], - "FunctionType": 2, - "KernelIdx": 3 - } - } - }, - { - "Assign": { - "Column": { - "Id": 113 - }, - "Function": { - "Arguments": [ - { - "Id": 109 - }, - { - "Id": 112 - } - ], - "FunctionType": 2, - "KernelIdx": 4, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 113 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 40 - }, - { - "Id": 3 - }, - { - "Id": 14 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 14 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23 index 852b091755..f2f0c768b0 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-23 @@ -547,533 +547,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "$4.EventTime" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "Age", - "BrowserCountry", - "BrowserLanguage", - "CLID", - "ClientEventTime", - "ClientIP", - "ClientTimeZone", - "CodeVersion", - "ConnectTiming", - "CookieEnable", - "CounterClass", - "CounterID", - "DNSTiming", - "DontCountHits", - "EventDate", - "EventTime", - "FUniqID", - "FetchTiming", - "FlashMajor", - "FlashMinor", - "FlashMinor2", - "FromTag", - "GoodEvent", - "HID", - "HTTPError", - "HasGCLID", - "HistoryLength", - "HitColor", - "IPNetworkID", - "Income", - "Interests", - "IsArtifical", - "IsDownload", - "IsEvent", - "IsLink", - "IsMobile", - "IsNotBounce", - "IsOldCounter", - "IsParameter", - "IsRefresh", - "JavaEnable", - "JavascriptEnable", - "LocalEventTime", - "MobilePhone", - "MobilePhoneModel", - "NetMajor", - "NetMinor", - "OS", - "OpenerName", - "OpenstatAdID", - "OpenstatCampaignID", - "OpenstatServiceName", - "OpenstatSourceID", - "OriginalURL", - "PageCharset", - "ParamCurrency", - "ParamCurrencyID", - "ParamOrderID", - "ParamPrice", - "Params", - "Referer", - "RefererCategoryID", - "RefererHash", - "RefererRegionID", - "RegionID", - "RemoteIP", - "ResolutionDepth", - "ResolutionHeight", - "ResolutionWidth", - "ResponseEndTiming", - "ResponseStartTiming", - "Robotness", - "SearchEngineID", - "SearchPhrase", - "SendTiming", - "Sex", - "SilverlightVersion1", - "SilverlightVersion2", - "SilverlightVersion3", - "SilverlightVersion4", - "SocialAction", - "SocialNetwork", - "SocialSourceNetworkID", - "SocialSourcePage", - "Title", - "TraficSourceID", - "URL", - "URLCategoryID", - "URLHash", - "URLRegionID", - "UTMCampaign", - "UTMContent", - "UTMMedium", - "UTMSource", - "UTMTerm", - "UserAgent", - "UserAgentMajor", - "UserAgentMinor", - "UserID", - "WatchID", - "WindowClientHeight", - "WindowClientWidth", - "WindowName", - "WithHash" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "google" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 14 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 10 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 41 - }, - { - "Id": 66 - }, - { - "Id": 76 - }, - { - "Id": 75 - }, - { - "Id": 105 - }, - { - "Id": 46 - }, - { - "Id": 8 - }, - { - "Id": 45 - }, - { - "Id": 52 - }, - { - "Id": 82 - }, - { - "Id": 31 - }, - { - "Id": 11 - }, - { - "Id": 7 - }, - { - "Id": 81 - }, - { - "Id": 62 - }, - { - "Id": 6 - }, - { - "Id": 5 - }, - { - "Id": 56 - }, - { - "Id": 85 - }, - { - "Id": 24 - }, - { - "Id": 25 - }, - { - "Id": 26 - }, - { - "Id": 101 - }, - { - "Id": 4 - }, - { - "Id": 58 - }, - { - "Id": 79 - }, - { - "Id": 102 - }, - { - "Id": 74 - }, - { - "Id": 64 - }, - { - "Id": 37 - }, - { - "Id": 68 - }, - { - "Id": 69 - }, - { - "Id": 42 - }, - { - "Id": 54 - }, - { - "Id": 60 - }, - { - "Id": 53 - }, - { - "Id": 33 - }, - { - "Id": 55 - }, - { - "Id": 59 - }, - { - "Id": 61 - }, - { - "Id": 16 - }, - { - "Id": 2 - }, - { - "Id": 32 - }, - { - "Id": 65 - }, - { - "Id": 34 - }, - { - "Id": 35 - }, - { - "Id": 27 - }, - { - "Id": 28 - }, - { - "Id": 12 - }, - { - "Id": 73 - }, - { - "Id": 94 - }, - { - "Id": 93 - }, - { - "Id": 92 - }, - { - "Id": 95 - }, - { - "Id": 57 - }, - { - "Id": 51 - }, - { - "Id": 90 - }, - { - "Id": 91 - }, - { - "Id": 89 - }, - { - "Id": 88 - }, - { - "Id": 36 - }, - { - "Id": 15 - }, - { - "Id": 17 - }, - { - "Id": 103 - }, - { - "Id": 18 - }, - { - "Id": 9 - }, - { - "Id": 71 - }, - { - "Id": 23 - }, - { - "Id": 22 - }, - { - "Id": 21 - }, - { - "Id": 84 - }, - { - "Id": 83 - }, - { - "Id": 70 - }, - { - "Id": 39 - }, - { - "Id": 40 - }, - { - "Id": 80 - }, - { - "Id": 67 - }, - { - "Id": 47 - }, - { - "Id": 48 - }, - { - "Id": 49 - }, - { - "Id": 50 - }, - { - "Id": 78 - }, - { - "Id": 77 - }, - { - "Id": 86 - }, - { - "Id": 87 - }, - { - "Id": 3 - }, - { - "Id": 38 - }, - { - "Id": 14 - }, - { - "Id": 19 - }, - { - "Id": 104 - }, - { - "Id": 20 - }, - { - "Id": 98 - }, - { - "Id": 99 - }, - { - "Id": 97 - }, - { - "Id": 96 - }, - { - "Id": 100 - }, - { - "Id": 13 - }, - { - "Id": 29 - }, - { - "Id": 30 - }, - { - "Id": 10 - }, - { - "Id": 1 - }, - { - "Id": 44 - }, - { - "Id": 43 - }, - { - "Id": 72 - }, - { - "Id": 63 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 5 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24 index 9aaace15b9..29ed16bf72 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-24 @@ -135,121 +135,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "$4.EventTime" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventTime", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 5 - }, - { - "Id": 40 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 5 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25 index a4942dd1cc..b108e7fda2 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-25 @@ -131,117 +131,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "$5.SearchPhrase" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 40 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 5 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26 index 892d0cd1e9..411750de30 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-26 @@ -136,121 +136,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventTime", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 5 - }, - { - "Id": 40 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 5 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 index aff9001a35..eb26c97815 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-27 @@ -178,146 +178,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "25", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "25", - "Name": "TopSort", - "TopSortBy": "$13.l" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.Count0 > 100000" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1)}", - "GroupBy": "item.CounterID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "CounterID", - "URL" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 14 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 7 - }, - { - "Id": 14 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 index 5f557097b8..599f801a41 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-28 @@ -177,142 +177,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "25", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "25", - "Name": "TopSort", - "TopSortBy": "$23.l" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.Count0 > 100000" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: MIN(item.Referer,state._yql_agg_2)}", - "GroupBy": "item.key", - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "Referer" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 15 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 15 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29 index 11099da50e..47f6a89efc 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-29 @@ -127,89 +127,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ResolutionWidth" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 21 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3 index cbcb25e212..bb11bb97e4 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-3 @@ -145,113 +145,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "GroupBy": { - "Aggregates": [ - { - "Column": { - "Id": 106 - }, - "Function": { - "Arguments": [ - { - "Id": 10 - } - ], - "Id": 5 - } - }, - { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 10 - } - ], - "Id": 2 - } - } - ] - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 107 - }, - { - "Id": 106 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 index c5881d8b22..55bab9f99f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-30 @@ -173,143 +173,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP", - "IsRefresh", - "ResolutionWidth", - "SearchEngineID", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 8 - }, - { - "Id": 16 - }, - { - "Id": 21 - }, - { - "Id": 39 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 index 5138e79898..99e73b2f67 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-31 @@ -173,143 +173,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP", - "IsRefresh", - "ResolutionWidth", - "SearchPhrase", - "WatchID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 40 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 8 - }, - { - "Id": 16 - }, - { - "Id": 21 - }, - { - "Id": 1 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 index 693905cb42..254dd16afc 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-32 @@ -135,105 +135,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP", - "IsRefresh", - "ResolutionWidth", - "WatchID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 8 - }, - { - "Id": 16 - }, - { - "Id": 21 - }, - { - "Id": 1 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 index 535e4f1427..c812713614 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-33 @@ -122,93 +122,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.URL", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "URL" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 14 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 index 024e00aff4..0e4755c811 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-34 @@ -127,97 +127,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "URL", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 14 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 index f2b6c6e316..71c0ff1950 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-35 @@ -125,93 +125,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 8 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 index 1a29ad72fc..189bb77a75 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-36 @@ -263,234 +263,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.URL", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "IsRefresh", - "URL" - ], - "ReadRanges": [ - "CounterID [62, 62]", - "EventDate [15887, 15917]" - ], - "ReadRangesExpectedSize": 1, - "ReadRangesKeys": [ - "CounterID", - "EventDate" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 62 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 16 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 111 - }, - "Function": { - "Arguments": [ - { - "Id": 14 - }, - { - "Id": 110 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 12 - } - } - }, - { - "Assign": { - "Column": { - "Id": 112 - }, - "Function": { - "Arguments": [ - { - "Id": 109 - }, - { - "Id": 111 - } - ], - "FunctionType": 2, - "KernelIdx": 3, - "YqlOperationId": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 113 - }, - "Function": { - "Arguments": [ - { - "Id": 107 - }, - { - "Id": 112 - } - ], - "FunctionType": 2, - "KernelIdx": 4, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 113 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 14 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 index 6bd71b14d4..d5ed163776 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-37 @@ -263,234 +263,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.Title", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "IsRefresh", - "Title" - ], - "ReadRanges": [ - "CounterID [62, 62]", - "EventDate [15887, 15917]" - ], - "ReadRangesExpectedSize": 1, - "ReadRangesKeys": [ - "CounterID", - "EventDate" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 62 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 16 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Constant": { - "Bytes": "" - } - } - }, - { - "Assign": { - "Column": { - "Id": 111 - }, - "Function": { - "Arguments": [ - { - "Id": 3 - }, - { - "Id": 110 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 12 - } - } - }, - { - "Assign": { - "Column": { - "Id": 112 - }, - "Function": { - "Arguments": [ - { - "Id": 109 - }, - { - "Id": 111 - } - ], - "FunctionType": 2, - "KernelIdx": 3, - "YqlOperationId": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 113 - }, - "Function": { - "Arguments": [ - { - "Id": 107 - }, - { - "Id": 112 - } - ], - "FunctionType": 2, - "KernelIdx": 4, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 113 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 3 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 index a07374f311..80435d3c8e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-38 @@ -297,259 +297,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "1000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.URL", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "IsDownload", - "IsLink", - "IsRefresh", - "URL" - ], - "ReadRanges": [ - "CounterID [62, 62]", - "EventDate [15887, 15917]" - ], - "ReadRangesExpectedSize": 1, - "ReadRangesKeys": [ - "CounterID", - "EventDate" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 16 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 53 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 12 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 111 - }, - "Function": { - "Arguments": [ - { - "Id": 54 - }, - { - "Id": 110 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 112 - }, - "Function": { - "Arguments": [ - { - "Id": 109 - }, - { - "Id": 111 - } - ], - "FunctionType": 2, - "KernelIdx": 3, - "YqlOperationId": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 113 - }, - "Function": { - "Arguments": [ - { - "Id": 107 - }, - { - "Id": 112 - } - ], - "FunctionType": 2, - "KernelIdx": 4, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 113 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 14 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 index f9b8d6fa95..55b7d8ba76 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-39 @@ -215,173 +215,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "1000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "AdvEngineID", - "IsRefresh", - "Referer", - "SearchEngineID", - "TraficSourceID", - "URL" - ], - "ReadRanges": [ - "CounterID [62, 62]", - "EventDate [15887, 15917]" - ], - "ReadRangesExpectedSize": 1, - "ReadRangesKeys": [ - "CounterID", - "EventDate" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 16 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 41 - }, - { - "Id": 15 - }, - { - "Id": 39 - }, - { - "Id": 38 - }, - { - "Id": 14 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 index e78341014e..3a84b5751e 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-4 @@ -146,102 +146,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "item.UserID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 index be78dd3cd1..3326db817b 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-40 @@ -352,313 +352,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "100" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,100)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,100)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "EventDate", - "IsRefresh", - "RefererHash", - "TraficSourceID", - "URLHash" - ], - "ReadRanges": [ - "CounterID [62, 62]", - "EventDate [15887, 15917]" - ], - "ReadRangesExpectedSize": 1, - "ReadRangesKeys": [ - "CounterID", - "EventDate" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 16 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Int32": -1 - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 38 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Constant": { - "Int32": 6 - } - } - }, - { - "Assign": { - "Column": { - "Id": 111 - }, - "Function": { - "Arguments": [ - { - "Id": 38 - }, - { - "Id": 110 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 112 - }, - "Function": { - "Arguments": [ - { - "Id": 109 - }, - { - "Id": 111 - } - ], - "FunctionType": 2, - "KernelIdx": 3, - "YqlOperationId": 1 - } - } - }, - { - "Assign": { - "Column": { - "Id": 113 - }, - "Constant": { - "Int64": 3594120000172545465 - } - } - }, - { - "Assign": { - "Column": { - "Id": 114 - }, - "Function": { - "Arguments": [ - { - "Id": 103 - }, - { - "Id": 113 - } - ], - "FunctionType": 2, - "KernelIdx": 4, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 115 - }, - "Function": { - "Arguments": [ - { - "Id": 112 - }, - { - "Id": 114 - } - ], - "FunctionType": 2, - "KernelIdx": 5, - "YqlOperationId": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 116 - }, - "Function": { - "Arguments": [ - { - "Id": 107 - }, - { - "Id": 115 - } - ], - "FunctionType": 2, - "KernelIdx": 6, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 116 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 6 - }, - { - "Id": 104 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 index 1e24a0f711..b1ad523745 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-41 @@ -302,263 +302,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "10000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,10000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,10000)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "IsRefresh", - "URLHash", - "WindowClientHeight", - "WindowClientWidth" - ], - "ReadRanges": [ - "CounterID [62, 62]", - "EventDate [15887, 15917]" - ], - "ReadRangesExpectedSize": 1, - "ReadRangesKeys": [ - "CounterID", - "EventDate" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 16 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 62 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Constant": { - "Int64": 2868770270353813622 - } - } - }, - { - "Assign": { - "Column": { - "Id": 111 - }, - "Function": { - "Arguments": [ - { - "Id": 104 - }, - { - "Id": 110 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 112 - }, - "Function": { - "Arguments": [ - { - "Id": 109 - }, - { - "Id": 111 - } - ], - "FunctionType": 2, - "KernelIdx": 3, - "YqlOperationId": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 113 - }, - "Function": { - "Arguments": [ - { - "Id": 107 - }, - { - "Id": 112 - } - ], - "FunctionType": 2, - "KernelIdx": 4, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 113 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 44 - }, - { - "Id": 43 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 index ab5ea784d9..ad2c69a058 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-42 @@ -246,208 +246,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "1000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "TopSort", - "TopSortBy": "argument.Minute" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.Minute", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "EventTime", - "IsRefresh" - ], - "ReadRanges": [ - "CounterID [62, 62]", - "EventDate [15900, 15901]" - ], - "ReadRangesExpectedSize": 1, - "ReadRangesKeys": [ - "CounterID", - "EventDate" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 16 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 108 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 109 - }, - "Function": { - "Arguments": [ - { - "Id": 62 - }, - { - "Id": 108 - } - ], - "FunctionType": 2, - "KernelIdx": 1, - "YqlOperationId": 11 - } - } - }, - { - "Assign": { - "Column": { - "Id": 110 - }, - "Function": { - "Arguments": [ - { - "Id": 107 - }, - { - "Id": 109 - } - ], - "FunctionType": 2, - "KernelIdx": 2, - "YqlOperationId": 0 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 110 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 5 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 index 5c6c8063c5..a5dd27ec40 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-5 @@ -146,102 +146,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 40 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6 index 0081b7dccc..6b5865ae6f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-6 @@ -154,113 +154,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventDate" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "GroupBy": { - "Aggregates": [ - { - "Column": { - "Id": 106 - }, - "Function": { - "Arguments": [ - { - "Id": 6 - } - ], - "Id": 4 - } - }, - { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 6 - } - ], - "Id": 3 - } - } - ] - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 106 - }, - { - "Id": 107 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 index 7d6be21392..48e36c8dc4 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-7 @@ -159,130 +159,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1001", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "1001", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.AdvEngineID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Assign": { - "Column": { - "Id": 106 - }, - "Constant": { - "Int32": 0 - } - } - }, - { - "Assign": { - "Column": { - "Id": 107 - }, - "Function": { - "Arguments": [ - { - "Id": 41 - }, - { - "Id": 106 - } - ], - "FunctionType": 2, - "KernelIdx": 0, - "YqlOperationId": 12 - } - } - }, - { - "Filter": { - "Predicate": { - "Id": 107 - } - } - }, - { - "Projection": { - "Columns": [ - { - "Id": 41 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 index 62dec1f807..cd8daa36da 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-8 @@ -155,110 +155,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", - "GroupBy": "item.RegionID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "RegionID", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 9 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 index 3dfbae5ef8..070b454c9b 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_column_/queries-original-plan-column-9 @@ -260,189 +260,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Union", - "Operators": [ - { - "Name": "Union" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_3: SUM(item.AdvEngineID,state._yql_agg_3)}", - "GroupBy": "item.RegionID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "RegionID", - "ResolutionWidth", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 41 - }, - { - "Id": 9 - }, - { - "Id": 21 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 9 - } - ] - }, - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_2: Inc(state._yql_agg_2)}", - "GroupBy": "item.RegionID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 11, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 13, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "RegionID", - "ResolutionWidth", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "SsaProgram": { - "Command": [ - { - "Projection": { - "Columns": [ - { - "Id": 41 - }, - { - "Id": 9 - }, - { - "Id": 21 - }, - { - "Id": 10 - } - ] - } - } - ], - "Version": 5 - }, - "Table": "clickbench/plans/column/hits" - } - ], - "PlanNodeId": 14 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 index d497241266..0d554044e6 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 @@ -102,73 +102,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": null, - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 index 8b1f95c2cc..1ab5d4a33d 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 @@ -109,52 +109,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 index 6a0493e0f7..a20e59a433 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-10 @@ -147,105 +147,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", - "GroupBy": "item.MobilePhoneModel", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.MobilePhoneModel != \"\"" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "MobilePhoneModel", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 index 7713d0fe0a..5bddeb2445 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-11 @@ -150,106 +150,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.MobilePhoneModel != \"\"" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "MobilePhone", - "MobilePhoneModel", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 index d4dc14a30c..bb6ecb0a37 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-12 @@ -117,91 +117,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 index e92d612844..95eec3bd26 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-13 @@ -147,105 +147,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 index 2082d69f91..7de87cf3ba 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-14 @@ -119,92 +119,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchEngineID", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 index bb3eb7026c..9007489216 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-15 @@ -108,79 +108,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.UserID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 index 1932923ad8..7632662797 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-16 @@ -110,80 +110,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 index adc4755f10..49706d2852 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 @@ -106,79 +106,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 index 612038d642..929654b1ef 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-18 @@ -112,81 +112,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventTime", - "SearchPhrase", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 index 28b6df823a..2832c364f6 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 @@ -85,77 +85,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1001", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1001", - "Name": "Limit" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.UserID == 435090932899640449" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 6 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 index ad8b7ce26a..27a3341cbd 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 @@ -114,76 +114,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "ResolutionWidth" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 index 0b0f35388f..872cfd35ea 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 @@ -109,52 +109,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 index 1f0ca8c521..9138f873eb 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-21 @@ -118,92 +118,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_1: MIN(item.URL,state._yql_agg_1)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.URL StringContains \"google\" And item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "URL" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 index dad70f4082..8d26b6cec0 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-22 @@ -235,167 +235,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Union", - "Operators": [ - { - "Name": "Union" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_2: MIN(item.URL,state._yql_agg_2),_yql_agg_3: MIN(item.Title,state._yql_agg_3)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.Title StringContains \"Google\" And Not item.URL StringContains \".google.\" And item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "Title", - "URL", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - }, - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: COUNT(item.UserID,state._yql_agg_1)}", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 12, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 14, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.Title StringContains \"Google\" And Not item.URL StringContains \".google.\" And item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 15, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase", - "Title", - "URL", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 16 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 index e8ca23eff6..fd77097b90 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 @@ -193,182 +193,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "$4.EventTime" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.URL StringContains \"google\"" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "Age", - "BrowserCountry", - "BrowserLanguage", - "CLID", - "ClientEventTime", - "ClientIP", - "ClientTimeZone", - "CodeVersion", - "ConnectTiming", - "CookieEnable", - "CounterClass", - "CounterID", - "DNSTiming", - "DontCountHits", - "EventDate", - "EventTime", - "FUniqID", - "FetchTiming", - "FlashMajor", - "FlashMinor", - "FlashMinor2", - "FromTag", - "GoodEvent", - "HID", - "HTTPError", - "HasGCLID", - "HistoryLength", - "HitColor", - "IPNetworkID", - "Income", - "Interests", - "IsArtifical", - "IsDownload", - "IsEvent", - "IsLink", - "IsMobile", - "IsNotBounce", - "IsOldCounter", - "IsParameter", - "IsRefresh", - "JavaEnable", - "JavascriptEnable", - "LocalEventTime", - "MobilePhone", - "MobilePhoneModel", - "NetMajor", - "NetMinor", - "OS", - "OpenerName", - "OpenstatAdID", - "OpenstatCampaignID", - "OpenstatServiceName", - "OpenstatSourceID", - "OriginalURL", - "PageCharset", - "ParamCurrency", - "ParamCurrencyID", - "ParamOrderID", - "ParamPrice", - "Params", - "Referer", - "RefererCategoryID", - "RefererHash", - "RefererRegionID", - "RegionID", - "RemoteIP", - "ResolutionDepth", - "ResolutionHeight", - "ResolutionWidth", - "ResponseEndTiming", - "ResponseStartTiming", - "Robotness", - "SearchEngineID", - "SearchPhrase", - "SendTiming", - "Sex", - "SilverlightVersion1", - "SilverlightVersion2", - "SilverlightVersion3", - "SilverlightVersion4", - "SocialAction", - "SocialNetwork", - "SocialSourceNetworkID", - "SocialSourcePage", - "Title", - "TraficSourceID", - "URL", - "URLCategoryID", - "URLHash", - "URLRegionID", - "UTMCampaign", - "UTMContent", - "UTMMedium", - "UTMSource", - "UTMTerm", - "UserAgent", - "UserAgentMajor", - "UserAgentMinor", - "UserID", - "WatchID", - "WindowClientHeight", - "WindowClientWidth", - "WindowName", - "WithHash" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 6 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 index 263f06ad00..e82dbd3200 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 @@ -90,79 +90,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "$4.EventTime" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventTime", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 6 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 index 0cd4a4821f..65c9702db6 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 @@ -89,78 +89,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "$5.SearchPhrase" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 6 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 index 7a1c914430..52361ea449 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 @@ -91,79 +91,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventTime", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 6 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 index aff7d87c4f..9a63c2e4fa 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 @@ -133,104 +133,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "25", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "25", - "Name": "TopSort", - "TopSortBy": "$14.l" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.Count0 > 100000" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1)}", - "GroupBy": "item.CounterID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.URL != \"\"" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "CounterID", - "URL" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 index 03d19e2559..fbfb89f4ff 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 @@ -138,103 +138,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "25", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "25", - "Name": "TopSort", - "TopSortBy": "$25.l" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.Count0 > 100000" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: MIN(item.Referer,state._yql_agg_2)}", - "GroupBy": "item.key", - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.Referer != \"\"" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "Referer" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 index b8c3475d70..169d6ded38 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 @@ -113,75 +113,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ResolutionWidth" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 index a12596aa5e..21f547c65f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 @@ -104,75 +104,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 index f6e5e458ae..10acea32a1 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-30 @@ -131,95 +131,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP", - "IsRefresh", - "ResolutionWidth", - "SearchEngineID", - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 index 0a581e3a38..0fd278f6af 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-31 @@ -131,95 +131,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.SearchPhrase != \"\"" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP", - "IsRefresh", - "ResolutionWidth", - "SearchPhrase", - "WatchID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 index 393b3a30d1..bdb1d70195 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-32 @@ -112,82 +112,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP", - "IsRefresh", - "ResolutionWidth", - "WatchID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 index 95c913261d..29379fb1a8 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-33 @@ -108,79 +108,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.URL", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "URL" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 index 05cd0fb09a..16c75dc466 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-34 @@ -110,80 +110,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "URL", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 index d00281c26f..23bc26146b 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 @@ -111,79 +111,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "ClientIP" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 7 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 index 7e4961219e..9a5a205fe5 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-36 @@ -119,93 +119,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.URL", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.DontCountHits == 0 And item.IsRefresh == 0 And item.URL != \"\"" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "IsRefresh", - "URL" - ], - "ReadRange": [ - "CounterID (62)", - "EventDate [15887, 15917]", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 index 3bab4cc8fd..45c9b8a5b7 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-37 @@ -119,93 +119,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.Title", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.DontCountHits == 0 And item.IsRefresh == 0 And item.Title != \"\"" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "IsRefresh", - "Title" - ], - "ReadRange": [ - "CounterID (62)", - "EventDate [15887, 15917]", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 index f292a7b006..bcabeec4e5 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-38 @@ -153,118 +153,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "1000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.URL", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.IsRefresh == 0 And item.IsLink != 0 And item.IsDownload == 0" - } - ], - "PlanNodeId": 10, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "IsDownload", - "IsLink", - "IsRefresh", - "URL" - ], - "ReadRange": [ - "CounterID (62)", - "EventDate [15887, 15917]", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 11 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 index cbc99e925c..187fac1771 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-39 @@ -177,120 +177,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "1000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.IsRefresh == 0" - } - ], - "PlanNodeId": 10, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "AdvEngineID", - "IsRefresh", - "Referer", - "SearchEngineID", - "TraficSourceID", - "URL" - ], - "ReadRange": [ - "CounterID (62)", - "EventDate [15887, 15917]", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 11 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 index 6bdca171b1..3519570060 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 @@ -132,88 +132,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "item.UserID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 index 278ee0c312..760d0da8e8 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-40 @@ -158,119 +158,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "100" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,100)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,100)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.IsRefresh == 0 And If And item.RefererHash == 3594120000172545465" - } - ], - "PlanNodeId": 10, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "EventDate", - "IsRefresh", - "RefererHash", - "TraficSourceID", - "URLHash" - ], - "ReadRange": [ - "CounterID (62)", - "EventDate [15887, 15917]", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 11 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 index c64f0cb391..235cd6952f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-41 @@ -158,119 +158,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "10000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,10000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,10000)", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.IsRefresh == 0 And item.DontCountHits == 0 And item.URLHash == 2868770270353813622" - } - ], - "PlanNodeId": 10, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "IsRefresh", - "URLHash", - "WindowClientHeight", - "WindowClientWidth" - ], - "ReadRange": [ - "CounterID (62)", - "EventDate [15887, 15917]", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 11 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 index d2d510f873..192386f675 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-42 @@ -152,117 +152,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "Offset", - "Operators": [ - { - "Name": "Offset", - "Offset": "1000" - } - ], - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "SUM(10,1000)", - "Name": "TopSort", - "TopSortBy": "argument.Minute" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.Minute", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.IsRefresh == 0 And item.DontCountHits == 0" - } - ], - "PlanNodeId": 10, - "Plans": [ - { - "Node Type": "TableRangeScan", - "Operators": [ - { - "Name": "TableRangeScan", - "ReadColumns": [ - "DontCountHits", - "EventTime", - "IsRefresh" - ], - "ReadRange": [ - "CounterID (62)", - "EventDate [15900, 15901]", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 11 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 index c408dd91fa..adb29ce08b 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 @@ -132,88 +132,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "item.SearchPhrase", - "Name": "Aggregate" - } - ], - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "SearchPhrase" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 10 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 index 9ea180ce22..db7bdc28a5 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 @@ -113,75 +113,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet_1", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 5, - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1", - "Name": "Limit" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "EventDate" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 index 236280d0c2..d6146c4d26 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-7 @@ -117,91 +117,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "1001", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "1001", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", - "GroupBy": "item.AdvEngineID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Filter", - "Operators": [ - { - "Name": "Filter", - "Predicate": "item.AdvEngineID != 0" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 8 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 index 015c543034..d0277f70b3 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-8 @@ -138,93 +138,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", - "GroupBy": "item.RegionID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "RegionID", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 9 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 index 497314053d..d79ac25c21 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-9 @@ -214,143 +214,6 @@ } ] }, - "SimplifiedPlan": { - "Node Type": "Query", - "PlanNodeId": 0, - "PlanNodeType": "Query", - "Plans": [ - { - "Node Type": "ResultSet", - "PlanNodeId": 1, - "PlanNodeType": "ResultSet", - "Plans": [ - { - "Node Type": "Limit", - "Operators": [ - { - "Limit": "10", - "Name": "Limit" - } - ], - "PlanNodeId": 2, - "Plans": [ - { - "Node Type": "TopSort", - "Operators": [ - { - "Limit": "10", - "Name": "TopSort", - "TopSortBy": "argument.Count0" - } - ], - "PlanNodeId": 4, - "Plans": [ - { - "Node Type": "Union", - "Operators": [ - { - "Name": "Union" - } - ], - "PlanNodeId": 6, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_3: SUM(item.AdvEngineID,state._yql_agg_3)}", - "GroupBy": "item.RegionID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 8, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "RegionID", - "ResolutionWidth", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 9 - } - ] - }, - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "{_yql_agg_2: COUNT(item.UserID,state._yql_agg_2)}", - "GroupBy": "item.RegionID", - "Name": "Aggregate" - } - ], - "PlanNodeId": 11, - "Plans": [ - { - "Node Type": "Aggregate", - "Operators": [ - { - "Aggregation": "state", - "GroupBy": "", - "Name": "Aggregate" - } - ], - "PlanNodeId": 13, - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Name": "TableFullScan", - "ReadColumns": [ - "AdvEngineID", - "RegionID", - "ResolutionWidth", - "UserID" - ], - "ReadRanges": [ - "CounterID (-\u221e, +\u221e)", - "EventDate (-\u221e, +\u221e)", - "UserID (-\u221e, +\u221e)", - "EventTime (-\u221e, +\u221e)", - "WatchID (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "clickbench/plans/row/hits" - } - ], - "PlanNodeId": 14 - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/test.py b/ydb/tests/functional/clickbench/test.py index 7c2a517bd3..96be9c1294 100644 --- a/ydb/tests/functional/clickbench/test.py +++ b/ydb/tests/functional/clickbench/test.py @@ -74,6 +74,27 @@ def execute_scan_query(driver, yql_text, table_path): break +def remove_optimizer_estimates(query_plan): + if 'Plans' in query_plan: + for p in query_plan['Plans']: + remove_optimizer_estimates(p) + if 'Operators' in query_plan: + for op in query_plan['Operators']: + for key in ['A-Cpu', 'A-Rows', 'E-Cost', 'E-Rows', 'E-Size']: + if key in op: + del op[key] + + +def sanitize_plan(query_plan): + if 'queries' not in query_plan: + return + for q in query_plan['queries']: + if 'SimplifiedPlan' in q: + del q['SimplifiedPlan'] + if 'Plan' in q: + remove_optimizer_estimates(q['Plan']) + + def explain_scan_query(driver, yql_text, table_path): yql_text = yql_text.replace("$data", table_path) client = ydb.ScriptingClient(driver) @@ -81,7 +102,10 @@ def explain_scan_query(driver, yql_text, table_path): yql_text, ydb.ExplainYqlScriptSettings().with_mode(ydb.ExplainYqlScriptSettings.MODE_EXPLAIN) ) - return json.loads(result.plan) + res = json.loads(result.plan) + sanitize_plan(res) + print(json.dumps(res)) + return res def save_canonical_data(data, fname): diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_5.plan index 3097345881..0bc807971f 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_coalesce-and-join.test_/query_5.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 10, + "PlanNodeId": 8, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,22 +14,22 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 7, "Plans": [ { - "Node Type": "UnionAll", - "PlanNodeId": 8, + "Node Type": "Merge", + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-LeftJoin (MapJoin)", + "Node Type": "TopSort-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ @@ -38,68 +38,62 @@ } ], "Limit": "1001", - "Name": "Limit" + "Name": "TopSort", + "TopSortBy": "argument.xx.pkxx" }, { "Condition": "pkxx = _equijoin_column_0", "Inputs": [ { - "ExternalPlanNodeId": 6 + "ExternalPlanNodeId": 4 }, { - "ExternalPlanNodeId": 4 + "ExternalPlanNodeId": 2 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, + "KeyColumns": [ + "_yql_dq_key_right_0" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ + "Node Type": "TableFullScan", + "Operators": [ { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "pkxx" - ], - "ReadRanges": [ - "pkxx (-\u221e, +\u221e)", - "pkyy (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/coalesce-and-join.test_plan/yy" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/coalesce-and-join.test_plan/yy" - ] - } - ] + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "pkxx" + ], + "ReadRanges": [ + "pkxx (-\u221e, +\u221e)", + "pkyy (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/coalesce-and-join.test_plan/yy" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/coalesce-and-join.test_plan/yy" ] } ] }, { - "Node Type": "Map", - "PlanNodeId": 6, + "KeyColumns": [ + "pkxx" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 4, "PlanNodeType": "Connection", "Plans": [ { @@ -118,7 +112,7 @@ "Table": "postgres_jointest/coalesce-and-join.test_plan/xx" } ], - "PlanNodeId": 5, + "PlanNodeId": 3, "Tables": [ "postgres_jointest/coalesce-and-join.test_plan/xx" ] @@ -127,6 +121,9 @@ } ] } + ], + "SortColumns": [ + "xx.pkxx (Asc)" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan index 5147d7df93..35350c6f24 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_1.plan @@ -4,8 +4,8 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "ResultSet", - "PlanNodeId": 10, + "Node Type": "ResultSet_2", + "PlanNodeId": 8, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 7, "Plans": [ { "Node Type": "Merge", - "PlanNodeId": 8, + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { @@ -42,87 +42,90 @@ "TopSortBy": "" }, { - "Condition": "q2 = i2_1.q2", + "Condition": "q2 = q2", "Inputs": [ { - "ExternalPlanNodeId": 6 + "ExternalPlanNodeId": 4 }, { - "ExternalPlanNodeId": 4 + "ExternalPlanNodeId": 2 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, + "KeyColumns": [ + "i2_1.q2" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ + "CTE Name": "precompute_1_0", + "Node Type": "InnerJoin (MapJoin)-ConstantExpr-Filter-TableRangeScan-ConstantExpr", + "Operators": [ + { + "Condition": "q1 = x", + "Inputs": [ + { + "InternalOperatorId": 2 + }, + { + "InternalOperatorId": 1 + } + ], + "Name": "InnerJoin (MapJoin)" + }, { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ + "Inputs": [], + "Name": "ToFlow", + "ToFlow": "precompute_0_0" + }, + { + "Inputs": [ { - "Node Type": "InnerJoin (MapJoin)-Filter-TableFullScan", - "Operators": [ - { - "Condition": "q1 = x", - "Inputs": [ - { - "InternalOperatorId": 1 - }, - { - "Other": "ConstantExpression" - } - ], - "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [ - { - "InternalOperatorId": 2 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.q1)" - }, - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "q1", - "q2" - ], - "ReadRanges": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/int8_tbl" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join0.test_plan/int8_tbl" - ] + "InternalOperatorId": 3 } - ] + ], + "Name": "Filter", + "Predicate": "Exist(item.q1)" + }, + { + "Inputs": [ + { + "InternalOperatorId": 4 + } + ], + "Name": "TableRangeScan", + "ReadColumns": [ + "q1", + "q2" + ], + "Table": "postgres_jointest/join0.test_plan/int8_tbl" + }, + { + "Inputs": [], + "Iterator": "precompute_1_0", + "Name": "Iterator" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join0.test_plan/int8_tbl" ] } ] }, { - "Node Type": "Map", - "PlanNodeId": 6, + "KeyColumns": [ + "q2" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 4, "PlanNodeType": "Connection", "Plans": [ { @@ -143,7 +146,7 @@ "Table": "postgres_jointest/join0.test_plan/int8_tbl" } ], - "PlanNodeId": 5, + "PlanNodeId": 3, "Tables": [ "postgres_jointest/join0.test_plan/int8_tbl" ] @@ -188,11 +191,7 @@ "q1", "q2" ], - "scan_by": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "type": "FullScan" + "type": "Scan" } ] } diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_12.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_12.plan index bf2ed05261..30266f2f2b 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_12.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_12.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 16, + "PlanNodeId": 14, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 14 + "ExternalPlanNodeId": 12 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 15, + "PlanNodeId": 13, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 14, + "PlanNodeId": 12, "PlanNodeType": "Connection", "Plans": [ { @@ -44,7 +44,7 @@ "Condition": "_equijoin_column_0 = unique2", "Inputs": [ { - "ExternalPlanNodeId": 12 + "ExternalPlanNodeId": 10 }, { "ExternalPlanNodeId": 4 @@ -53,7 +53,7 @@ "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 13, + "PlanNodeId": 11, "Plans": [ { "Node Type": "Broadcast", @@ -102,7 +102,7 @@ }, { "Node Type": "Map", - "PlanNodeId": 12, + "PlanNodeId": 10, "PlanNodeType": "Connection", "Plans": [ { @@ -112,20 +112,23 @@ "Condition": "unique1 = thousand", "Inputs": [ { - "ExternalPlanNodeId": 10 + "ExternalPlanNodeId": 8 }, { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 11, + "PlanNodeId": 9, "Plans": [ { - "Node Type": "Map", - "PlanNodeId": 10, + "KeyColumns": [ + "unique1" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { @@ -157,7 +160,7 @@ "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 9, + "PlanNodeId": 7, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] @@ -165,46 +168,36 @@ ] }, { - "Node Type": "Broadcast", - "PlanNodeId": 8, + "KeyColumns": [ + "thousand" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 7, - "Plans": [ + "Node Type": "TableFullScan", + "Operators": [ { - "Node Type": "UnionAll", - "PlanNodeId": 6, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "thousand", - "twothousand", - "unique1", - "unique2" - ], - "ReadRanges": [ - "unique1 (-\u221e, +\u221e)", - "unique2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/tenk1" - } - ], - "PlanNodeId": 5, - "Tables": [ - "postgres_jointest/join0.test_plan/tenk1" - ] - } - ] + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "thousand", + "twothousand", + "unique1", + "unique2" + ], + "ReadRanges": [ + "unique1 (-\u221e, +\u221e)", + "unique2 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/join0.test_plan/tenk1" } + ], + "PlanNodeId": 5, + "Tables": [ + "postgres_jointest/join0.test_plan/tenk1" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan index 6305b2aacd..311ea09b1a 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_14.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 14, + "PlanNodeId": 12, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 12 + "ExternalPlanNodeId": 10 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 13, + "PlanNodeId": 11, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 12, + "PlanNodeId": 10, "PlanNodeType": "Connection", "Plans": [ { @@ -41,107 +41,97 @@ "Name": "Limit" }, { - "Condition": "id = yy_1.id", + "Condition": "id = id", "Inputs": [ { - "ExternalPlanNodeId": 10 + "ExternalPlanNodeId": 8 }, { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 11, + "PlanNodeId": 9, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 8, + "KeyColumns": [ + "_yql_dq_key_right_0" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 7, + "Node Type": "FullJoin (JoinDict)", + "Operators": [ + { + "Inputs": [ + { + "ExternalPlanNodeId": 4 + }, + { + "Other": "ConstantExpression" + } + ], + "Name": "FullJoin (JoinDict)" + } + ], + "PlanNodeId": 5, "Plans": [ { - "Node Type": "UnionAll", - "PlanNodeId": 6, + "KeyColumns": [ + "unique1" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 4, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "FullJoin (JoinDict)", - "Operators": [ - { - "Inputs": [ - { - "ExternalPlanNodeId": 4 - }, - { - "Other": "ConstantExpression" - } - ], - "Name": "FullJoin (JoinDict)" - } - ], - "PlanNodeId": 5, + "Node Type": "Collect", + "PlanNodeId": 3, "Plans": [ { - "KeyColumns": [ - "unique1" - ], - "Node Type": "HashShuffle", - "PlanNodeId": 4, + "Node Type": "UnionAll", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ + "Node Type": "TableFullScan", + "Operators": [ { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "even", - "fivethous", - "four", - "hundred", - "odd", - "string4", - "stringu1", - "stringu2", - "ten", - "tenthous", - "thousand", - "twenty", - "two", - "twothousand", - "unique1", - "unique2" - ], - "ReadRanges": [ - "unique1 (-\u221e, +\u221e)", - "unique2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/tenk1" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join0.test_plan/tenk1" - ] - } - ] + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "even", + "fivethous", + "four", + "hundred", + "odd", + "string4", + "stringu1", + "stringu2", + "ten", + "tenthous", + "thousand", + "twenty", + "two", + "twothousand", + "unique1", + "unique2" + ], + "ReadRanges": [ + "unique1 (-\u221e, +\u221e)", + "unique2 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/join0.test_plan/tenk1" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join0.test_plan/tenk1" ] } ] @@ -155,8 +145,11 @@ ] }, { - "Node Type": "Map", - "PlanNodeId": 10, + "KeyColumns": [ + "id" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { @@ -168,7 +161,7 @@ "Name": "Iterator" } ], - "PlanNodeId": 9 + "PlanNodeId": 7 } ] } diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_3.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_3.plan index 79c087524e..d24cc0bc38 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_3.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_3.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 10, + "PlanNodeId": 8, "PlanNodeType": "ResultSet", "Plans": [ { @@ -22,22 +22,22 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Limit": "1", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 7, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 8, + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Aggregate-InnerJoin (MapJoin)-Filter", + "Node Type": "Aggregate-InnerJoin (MapJoin)", "Operators": [ { "Inputs": [ @@ -51,88 +51,81 @@ "Condition": "hundred = thousand", "Inputs": [ { - "InternalOperatorId": 2 + "ExternalPlanNodeId": 4 }, { - "ExternalPlanNodeId": 4 + "ExternalPlanNodeId": 2 } ], "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 6 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.hundred)" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, + "KeyColumns": [ + "_yql_dq_key_right_0" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ + "Node Type": "Filter-TableFullScan", + "Operators": [ { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ + "Inputs": [ { - "Node Type": "Filter-TableFullScan", - "Operators": [ - { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.thousand) And item.fivethous % 10 < 10" - }, - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "fivethous", - "hundred", - "thousand" - ], - "ReadRanges": [ - "unique1 (-\u221e, +\u221e)", - "unique2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/tenk1" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join0.test_plan/tenk1" - ] + "InternalOperatorId": 1 } - ] + ], + "Name": "Filter", + "Predicate": "Exist(item.thousand) And item.fivethous % 10 < 10" + }, + { + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "fivethous", + "hundred", + "thousand" + ], + "ReadRanges": [ + "unique1 (-\u221e, +\u221e)", + "unique2 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/join0.test_plan/tenk1" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join0.test_plan/tenk1" ] } ] }, { - "Node Type": "Map", - "PlanNodeId": 6, + "KeyColumns": [ + "_yql_dq_key_left_0" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 4, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TableFullScan", + "Node Type": "Filter-TableFullScan", "Operators": [ { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Filter", + "Predicate": "Exist(item.hundred)" + }, + { "Inputs": [], "Name": "TableFullScan", "ReadColumns": [ @@ -148,7 +141,7 @@ "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 5, + "PlanNodeId": 3, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_4.plan index b44e5f273d..b7c80c87a5 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_4.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_4.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 10, + "PlanNodeId": 8, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 7, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 8, + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { @@ -65,64 +65,57 @@ "Condition": "unique2 = tenthous", "Inputs": [ { - "ExternalPlanNodeId": 6 + "ExternalPlanNodeId": 4 }, { - "ExternalPlanNodeId": 4 + "ExternalPlanNodeId": 2 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, + "KeyColumns": [ + "tenthous" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ + "Node Type": "TableFullScan", + "Operators": [ { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "hundred", - "tenthous", - "unique2" - ], - "ReadRanges": [ - "unique1 (-\u221e, +\u221e)", - "unique2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/tenk1" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join0.test_plan/tenk1" - ] - } - ] + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "hundred", + "tenthous", + "unique2" + ], + "ReadRanges": [ + "unique1 (-\u221e, +\u221e)", + "unique2 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/join0.test_plan/tenk1" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join0.test_plan/tenk1" ] } ] }, { - "Node Type": "Map", - "PlanNodeId": 6, + "KeyColumns": [ + "unique2" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 4, "PlanNodeType": "Connection", "Plans": [ { @@ -143,7 +136,7 @@ "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 5, + "PlanNodeId": 3, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_6.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_6.plan index 562e6a8160..c40e361b8b 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_6.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_6.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet_2", - "PlanNodeId": 36, + "PlanNodeId": 34, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,22 +14,22 @@ { "Inputs": [ { - "ExternalPlanNodeId": 34 + "ExternalPlanNodeId": 32 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 35, + "PlanNodeId": 33, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 34, + "PlanNodeId": 32, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-Filter-LeftJoin (MapJoin)", + "Node Type": "Limit-Filter-InnerJoin (MapJoin)-Filter", "Operators": [ { "Inputs": [ @@ -59,56 +59,148 @@ "Predicate": "item.t1.stringu1 > item.t2.stringu2" }, { - "Condition": "subq1.y1 = unique1", + "Condition": "subq1.d1 = unique2", "Inputs": [ { - "ExternalPlanNodeId": 32 + "InternalOperatorId": 3 }, { + "ExternalPlanNodeId": 22 + } + ], + "Name": "InnerJoin (MapJoin)" + }, + { + "Inputs": [ + { "ExternalPlanNodeId": 30 } ], - "Name": "LeftJoin (MapJoin)" + "Name": "Filter", + "Predicate": "Exist(item.subq1.d1)" } ], - "PlanNodeId": 33, + "PlanNodeId": 31, "Plans": [ { "Node Type": "Map", - "PlanNodeId": 32, + "PlanNodeId": 30, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", + "Node Type": "LeftJoin (MapJoin)", "Operators": [ { - "Inputs": [], - "Iterator": "precompute_0_0", - "Name": "Iterator" + "Condition": "y1 = unique1", + "Inputs": [ + { + "ExternalPlanNodeId": 28 + }, + { + "ExternalPlanNodeId": 26 + } + ], + "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 31 + "PlanNodeId": 29, + "Plans": [ + { + "Node Type": "Broadcast", + "PlanNodeId": 26, + "PlanNodeType": "Connection", + "Plans": [ + { + "Node Type": "Collect", + "PlanNodeId": 25, + "Plans": [ + { + "Node Type": "UnionAll", + "PlanNodeId": 24, + "PlanNodeType": "Connection", + "Plans": [ + { + "CTE Name": "precompute_1_0", + "Node Type": "Filter-TableRangeScan-ConstantExpr", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Filter", + "Predicate": "Exist(item.unique1)" + }, + { + "Inputs": [ + { + "InternalOperatorId": 2 + } + ], + "Name": "TableRangeScan", + "ReadColumns": [ + "stringu2", + "unique1" + ], + "Table": "postgres_jointest/join0.test_plan/tenk1" + }, + { + "Inputs": [], + "Iterator": "precompute_1_0", + "Name": "Iterator" + } + ], + "PlanNodeId": 23, + "Tables": [ + "postgres_jointest/join0.test_plan/tenk1" + ] + } + ] + } + ] + } + ] + }, + { + "Node Type": "Map", + "PlanNodeId": 28, + "PlanNodeType": "Connection", + "Plans": [ + { + "CTE Name": "precompute_0_0", + "Node Type": "ConstantExpr", + "Operators": [ + { + "Inputs": [], + "Iterator": "precompute_0_0", + "Name": "Iterator" + } + ], + "PlanNodeId": 27 + } + ] + } + ] } ] }, { "Node Type": "Broadcast", - "PlanNodeId": 30, + "PlanNodeId": 22, "PlanNodeType": "Connection", "Plans": [ { "Node Type": "Collect", - "PlanNodeId": 29, + "PlanNodeId": 21, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 28, + "PlanNodeId": 20, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_1_0", - "Node Type": "Filter-TableRangeScan-ConstantExpr", + "Node Type": "Filter-TableFullScan", "Operators": [ { "Inputs": [ @@ -117,28 +209,24 @@ } ], "Name": "Filter", - "Predicate": "Exist(item.unique1)" + "Predicate": "Exist(item.unique2) And item.unique2 < 42" }, { - "Inputs": [ - { - "InternalOperatorId": 2 - } - ], - "Name": "TableRangeScan", + "Inputs": [], + "Name": "TableFullScan", "ReadColumns": [ - "stringu2", - "unique1" + "stringu1", + "unique2" ], + "ReadRanges": [ + "unique1 (-\u221e, +\u221e)", + "unique2 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", "Table": "postgres_jointest/join0.test_plan/tenk1" - }, - { - "Inputs": [], - "Iterator": "precompute_1_0", - "Name": "Iterator" } ], - "PlanNodeId": 27, + "PlanNodeId": 19, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] @@ -160,7 +248,7 @@ { "Node Type": "Precompute_1", "Parent Relationship": "InitPlan", - "PlanNodeId": 25, + "PlanNodeId": 17, "PlanNodeType": "Materialize", "Plans": [ { @@ -173,7 +261,7 @@ "Name": "PartitionByKey" } ], - "PlanNodeId": 24 + "PlanNodeId": 16 } ], "Subplan Name": "CTE precompute_1_0" @@ -181,193 +269,104 @@ { "Node Type": "Precompute_0", "Parent Relationship": "InitPlan", - "PlanNodeId": 22, + "PlanNodeId": 14, "PlanNodeType": "Materialize", "Plans": [ { "Node Type": "Collect", - "PlanNodeId": 21, + "PlanNodeId": 13, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 20, + "PlanNodeId": 12, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "InnerJoin (MapJoin)-Filter", + "Node Type": "LeftJoin (MapJoin)", "Operators": [ { - "Condition": "unique2 = d1", + "Condition": "f1 = v1.x2", "Inputs": [ { - "InternalOperatorId": 1 + "ExternalPlanNodeId": 10 }, { - "ExternalPlanNodeId": 16 - } - ], - "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 18 + "ExternalPlanNodeId": 8 } ], - "Name": "Filter", - "Predicate": "Exist(item.unique2)" + "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 19, + "PlanNodeId": 11, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 16, + "KeyColumns": [ + "v1.x2" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 15, + "Node Type": "LeftJoin (MapJoin)", + "Operators": [ + { + "Condition": "x1 = y2", + "Inputs": [ + { + "ExternalPlanNodeId": 6 + }, + { + "ExternalPlanNodeId": 4 + } + ], + "Name": "LeftJoin (MapJoin)" + } + ], + "PlanNodeId": 7, "Plans": [ { - "Node Type": "UnionAll", - "PlanNodeId": 14, + "Node Type": "Map", + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "LeftJoin (MapJoin)", + "Node Type": "TableFullScan", "Operators": [ { - "Condition": "f1 = v1.x2", - "Inputs": [ - { - "ExternalPlanNodeId": 12 - }, - { - "ExternalPlanNodeId": 10 - } + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "x1", + "x2" + ], + "ReadRanges": [ + "x1 (-\u221e, +\u221e)", + "x2 (-\u221e, +\u221e)" ], - "Name": "LeftJoin (MapJoin)" + "Scan": "Parallel", + "Table": "postgres_jointest/join0.test_plan/ononequery1" } ], - "PlanNodeId": 13, + "PlanNodeId": 5, + "Tables": [ + "postgres_jointest/join0.test_plan/ononequery1" + ] + } + ] + }, + { + "Node Type": "Broadcast", + "PlanNodeId": 4, + "PlanNodeType": "Connection", + "Plans": [ + { + "Node Type": "Collect", + "PlanNodeId": 3, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 10, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 9, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 8, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "LeftJoin (MapJoin)", - "Operators": [ - { - "Condition": "x1 = y2", - "Inputs": [ - { - "ExternalPlanNodeId": 6 - }, - { - "ExternalPlanNodeId": 4 - } - ], - "Name": "LeftJoin (MapJoin)" - } - ], - "PlanNodeId": 7, - "Plans": [ - { - "Node Type": "Map", - "PlanNodeId": 6, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "x1", - "x2" - ], - "ReadRanges": [ - "x1 (-\u221e, +\u221e)", - "x2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/ononequery1" - } - ], - "PlanNodeId": 5, - "Tables": [ - "postgres_jointest/join0.test_plan/ononequery1" - ] - } - ] - }, - { - "Node Type": "Broadcast", - "PlanNodeId": 4, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "y1", - "y2" - ], - "ReadRanges": [ - "y1 (-\u221e, +\u221e)", - "y2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/ononequery2" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join0.test_plan/ononequery2" - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "Node Type": "Map", - "PlanNodeId": 12, + "Node Type": "UnionAll", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { @@ -377,18 +376,20 @@ "Inputs": [], "Name": "TableFullScan", "ReadColumns": [ - "f1" + "y1", + "y2" ], "ReadRanges": [ - "f1 (-\u221e, +\u221e)" + "y1 (-\u221e, +\u221e)", + "y2 (-\u221e, +\u221e)" ], "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/int4_tbl" + "Table": "postgres_jointest/join0.test_plan/ononequery2" } ], - "PlanNodeId": 11, + "PlanNodeId": 1, "Tables": [ - "postgres_jointest/join0.test_plan/int4_tbl" + "postgres_jointest/join0.test_plan/ononequery2" ] } ] @@ -402,40 +403,32 @@ ] }, { - "Node Type": "Map", - "PlanNodeId": 18, + "KeyColumns": [ + "f1" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 10, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Filter-TableFullScan", + "Node Type": "TableFullScan", "Operators": [ { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.unique2) And item.unique2 < 42" - }, - { "Inputs": [], "Name": "TableFullScan", "ReadColumns": [ - "stringu1", - "unique2" + "f1" ], "ReadRanges": [ - "unique1 (-\u221e, +\u221e)", - "unique2 (-\u221e, +\u221e)" + "f1 (-\u221e, +\u221e)" ], "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/tenk1" + "Table": "postgres_jointest/join0.test_plan/int4_tbl" } ], - "PlanNodeId": 17, + "PlanNodeId": 9, "Tables": [ - "postgres_jointest/join0.test_plan/tenk1" + "postgres_jointest/join0.test_plan/int4_tbl" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_7.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_7.plan index 46632717b4..1e805816c6 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_7.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_7.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 16, + "PlanNodeId": 14, "PlanNodeType": "ResultSet", "Plans": [ { @@ -22,18 +22,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 14 + "ExternalPlanNodeId": 12 } ], "Limit": "1", "Name": "Limit" } ], - "PlanNodeId": 15, + "PlanNodeId": 13, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 14, + "PlanNodeId": 12, "PlanNodeType": "Connection", "Plans": [ { @@ -48,109 +48,100 @@ "Name": "Aggregate" }, { - "Condition": "hundred,ten = t2.hundred,t3.ten", + "Condition": "hundred,ten = hundred,ten", "Inputs": [ { - "ExternalPlanNodeId": 12 + "ExternalPlanNodeId": 10 }, { - "ExternalPlanNodeId": 10 + "ExternalPlanNodeId": 8 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 13, + "PlanNodeId": 11, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 10, + "KeyColumns": [ + "t2.hundred", + "t3.ten" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 9, + "Node Type": "InnerJoin (MapJoin)-Filter", + "Operators": [ + { + "Condition": "thousand = unique2", + "Inputs": [ + { + "InternalOperatorId": 1 + }, + { + "ExternalPlanNodeId": 4 + } + ], + "Name": "InnerJoin (MapJoin)" + }, + { + "Inputs": [ + { + "ExternalPlanNodeId": 6 + } + ], + "Name": "Filter", + "Predicate": "Exist(item.thousand)" + } + ], + "PlanNodeId": 7, "Plans": [ { - "Node Type": "UnionAll", - "PlanNodeId": 8, + "Node Type": "Map", + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "InnerJoin (MapJoin)-Filter", + "Node Type": "TableFullScan", "Operators": [ { - "Condition": "thousand = unique2", - "Inputs": [ - { - "InternalOperatorId": 1 - }, - { - "ExternalPlanNodeId": 4 - } + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "hundred", + "ten", + "thousand", + "unique2" ], - "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 6 - } + "ReadRanges": [ + "unique1 (-\u221e, +\u221e)", + "unique2 (-\u221e, +\u221e)" ], - "Name": "Filter", - "Predicate": "Exist(item.thousand)" + "Scan": "Parallel", + "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, + "Tables": [ + "postgres_jointest/join0.test_plan/tenk1" + ] + } + ] + }, + { + "Node Type": "Broadcast", + "PlanNodeId": 4, + "PlanNodeType": "Connection", + "Plans": [ + { + "Node Type": "Collect", + "PlanNodeId": 3, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "hundred", - "ten", - "thousand", - "unique2" - ], - "ReadRanges": [ - "unique1 (-\u221e, +\u221e)", - "unique2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/tenk1" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join0.test_plan/tenk1" - ] - } - ] - } - ] - } - ] - }, - { - "Node Type": "Map", - "PlanNodeId": 6, + "Node Type": "UnionAll", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { @@ -173,7 +164,7 @@ "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 5, + "PlanNodeId": 1, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] @@ -189,8 +180,12 @@ ] }, { - "Node Type": "Map", - "PlanNodeId": 12, + "KeyColumns": [ + "hundred", + "ten" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 10, "PlanNodeType": "Connection", "Plans": [ { @@ -211,7 +206,7 @@ "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 11, + "PlanNodeId": 9, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_8.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_8.plan index cbfe5d9fd0..500488ac77 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_8.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join0.test_/query_8.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 16, + "PlanNodeId": 14, "PlanNodeType": "ResultSet", "Plans": [ { @@ -22,18 +22,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 14 + "ExternalPlanNodeId": 12 } ], "Limit": "1", "Name": "Limit" } ], - "PlanNodeId": 15, + "PlanNodeId": 13, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 14, + "PlanNodeId": 12, "PlanNodeType": "Connection", "Plans": [ { @@ -51,106 +51,97 @@ "Condition": "hundred,ten = hundred,_equijoin_column_0", "Inputs": [ { - "ExternalPlanNodeId": 12 + "ExternalPlanNodeId": 10 }, { - "ExternalPlanNodeId": 10 + "ExternalPlanNodeId": 8 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 13, + "PlanNodeId": 11, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 10, + "KeyColumns": [ + "hundred", + "_equijoin_column_0" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 9, + "Node Type": "InnerJoin (MapJoin)-Filter", + "Operators": [ + { + "Condition": "thousand = unique2", + "Inputs": [ + { + "InternalOperatorId": 1 + }, + { + "ExternalPlanNodeId": 4 + } + ], + "Name": "InnerJoin (MapJoin)" + }, + { + "Inputs": [ + { + "ExternalPlanNodeId": 6 + } + ], + "Name": "Filter", + "Predicate": "Exist(item.thousand)" + } + ], + "PlanNodeId": 7, "Plans": [ { - "Node Type": "UnionAll", - "PlanNodeId": 8, + "Node Type": "Map", + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "InnerJoin (MapJoin)-Filter", + "Node Type": "TableFullScan", "Operators": [ { - "Condition": "thousand = unique2", - "Inputs": [ - { - "InternalOperatorId": 1 - }, - { - "ExternalPlanNodeId": 4 - } + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "hundred", + "ten", + "thousand", + "unique2" ], - "Name": "InnerJoin (MapJoin)" - }, - { - "Inputs": [ - { - "ExternalPlanNodeId": 6 - } + "ReadRanges": [ + "unique1 (-\u221e, +\u221e)", + "unique2 (-\u221e, +\u221e)" ], - "Name": "Filter", - "Predicate": "Exist(item.thousand)" + "Scan": "Parallel", + "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, + "Tables": [ + "postgres_jointest/join0.test_plan/tenk1" + ] + } + ] + }, + { + "Node Type": "Broadcast", + "PlanNodeId": 4, + "PlanNodeType": "Connection", + "Plans": [ + { + "Node Type": "Collect", + "PlanNodeId": 3, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "hundred", - "ten", - "thousand", - "unique2" - ], - "ReadRanges": [ - "unique1 (-\u221e, +\u221e)", - "unique2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join0.test_plan/tenk1" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join0.test_plan/tenk1" - ] - } - ] - } - ] - } - ] - }, - { - "Node Type": "Map", - "PlanNodeId": 6, + "Node Type": "UnionAll", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { @@ -173,7 +164,7 @@ "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 5, + "PlanNodeId": 1, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] @@ -189,8 +180,12 @@ ] }, { - "Node Type": "Map", - "PlanNodeId": 12, + "KeyColumns": [ + "hundred", + "ten" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 10, "PlanNodeType": "Connection", "Plans": [ { @@ -213,7 +208,7 @@ "Table": "postgres_jointest/join0.test_plan/tenk1" } ], - "PlanNodeId": 11, + "PlanNodeId": 9, "Tables": [ "postgres_jointest/join0.test_plan/tenk1" ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_7.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_7.plan index 75addcc79d..32240be25c 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_7.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_7.plan @@ -24,12 +24,12 @@ "PlanNodeId": 17, "Plans": [ { - "Node Type": "UnionAll", + "Node Type": "Merge", "PlanNodeId": 16, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-LeftJoin (MapJoin)", + "Node Type": "TopSort-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ @@ -38,7 +38,8 @@ } ], "Limit": "1001", - "Name": "Limit" + "Name": "TopSort", + "TopSortBy": "" }, { "Condition": "x1 = y1", @@ -133,6 +134,12 @@ } ] } + ], + "SortColumns": [ + "x.x1 (Asc)", + "x.x2 (Asc)", + "y.y1 (Asc)", + "y.y2 (Asc)" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan index 1aa7a2d338..6dc5a8aa98 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join2.test_/query_8.plan @@ -24,12 +24,12 @@ "PlanNodeId": 17, "Plans": [ { - "Node Type": "UnionAll", + "Node Type": "Merge", "PlanNodeId": 16, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-Filter-LeftJoin (MapJoin)", + "Node Type": "TopSort-Filter-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ @@ -47,7 +47,8 @@ } ], "Limit": "1001", - "Name": "Limit" + "Name": "TopSort", + "TopSortBy": "" }, { "Inputs": [ @@ -151,6 +152,12 @@ } ] } + ], + "SortColumns": [ + "x1 (Asc)", + "x2 (Asc)", + "y1 (Asc)", + "y2 (Asc)" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan index 1125b25180..325d2a99eb 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_1.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 10, + "PlanNodeId": 8, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 7, "Plans": [ { "Node Type": "Merge", - "PlanNodeId": 8, + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { @@ -57,63 +57,56 @@ "Condition": "q2 = _equijoin_column_0", "Inputs": [ { - "ExternalPlanNodeId": 6 + "ExternalPlanNodeId": 4 }, { - "ExternalPlanNodeId": 4 + "ExternalPlanNodeId": 2 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, + "KeyColumns": [ + "_yql_dq_key_right_0" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ + "Node Type": "TableFullScan", + "Operators": [ { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "TableFullScan", - "Operators": [ - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "q1", - "q2" - ], - "ReadRanges": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join3.test_plan/int8_tbl" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join3.test_plan/int8_tbl" - ] - } - ] + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "q1", + "q2" + ], + "ReadRanges": [ + "q1 (-\u221e, +\u221e)", + "q2 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/join3.test_plan/int8_tbl" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join3.test_plan/int8_tbl" ] } ] }, { - "Node Type": "Map", - "PlanNodeId": 6, + "KeyColumns": [ + "q2" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 4, "PlanNodeType": "Connection", "Plans": [ { @@ -134,7 +127,7 @@ "Table": "postgres_jointest/join3.test_plan/int8_tbl" } ], - "PlanNodeId": 5, + "PlanNodeId": 3, "Tables": [ "postgres_jointest/join3.test_plan/int8_tbl" ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan index 573a41de16..1a269495fc 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_8.plan @@ -5,7 +5,7 @@ "Plans": [ { "Node Type": "ResultSet", - "PlanNodeId": 10, + "PlanNodeId": 8, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 8 + "ExternalPlanNodeId": 6 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 9, + "PlanNodeId": 7, "Plans": [ { "Node Type": "Merge", - "PlanNodeId": 8, + "PlanNodeId": 6, "PlanNodeType": "Connection", "Plans": [ { @@ -45,75 +45,68 @@ "Condition": "x = _equijoin_column_0", "Inputs": [ { - "ExternalPlanNodeId": 6 + "ExternalPlanNodeId": 4 }, { - "ExternalPlanNodeId": 4 + "ExternalPlanNodeId": 2 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 7, + "PlanNodeId": 5, "Plans": [ { - "Node Type": "Broadcast", - "PlanNodeId": 4, + "KeyColumns": [ + "_yql_dq_key_right_0" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 2, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 3, - "Plans": [ + "Node Type": "LeftJoin (MapJoin)-TableFullScan", + "Operators": [ { - "Node Type": "UnionAll", - "PlanNodeId": 2, - "PlanNodeType": "Connection", - "Plans": [ + "Condition": "q2 = id", + "Inputs": [ + { + "InternalOperatorId": 1 + }, { - "Node Type": "LeftJoin (MapJoin)-TableFullScan", - "Operators": [ - { - "Condition": "q2 = id", - "Inputs": [ - { - "InternalOperatorId": 1 - }, - { - "Other": "ConstantExpression" - } - ], - "Name": "LeftJoin (MapJoin)" - }, - { - "Inputs": [], - "Name": "TableFullScan", - "ReadColumns": [ - "q1", - "q2" - ], - "ReadRanges": [ - "q1 (-\u221e, +\u221e)", - "q2 (-\u221e, +\u221e)" - ], - "Scan": "Parallel", - "Table": "postgres_jointest/join3.test_plan/int8_tbl" - } - ], - "PlanNodeId": 1, - "Tables": [ - "postgres_jointest/join3.test_plan/int8_tbl" - ] + "Other": "ConstantExpression" } - ] + ], + "Name": "LeftJoin (MapJoin)" + }, + { + "Inputs": [], + "Name": "TableFullScan", + "ReadColumns": [ + "q1", + "q2" + ], + "ReadRanges": [ + "q1 (-\u221e, +\u221e)", + "q2 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/join3.test_plan/int8_tbl" } + ], + "PlanNodeId": 1, + "Tables": [ + "postgres_jointest/join3.test_plan/int8_tbl" ] } ] }, { - "Node Type": "Map", - "PlanNodeId": 6, + "KeyColumns": [ + "x" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 4, "PlanNodeType": "Connection", "Plans": [ { @@ -125,7 +118,7 @@ "Name": "Iterator" } ], - "PlanNodeId": 5 + "PlanNodeId": 3 } ] } diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_5.plan index 5305af8389..60a3f0b14d 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_5.plan @@ -41,7 +41,7 @@ "Name": "Limit" }, { - "Condition": "i,i,i = x,y,x", + "Condition": "i,i = x,y", "Inputs": [ { "ExternalPlanNodeId": 14 diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_6.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_6.plan index 83c7ae0a12..8c3095260d 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_6.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_6.plan @@ -4,8 +4,8 @@ "PlanNodeType": "Query", "Plans": [ { - "Node Type": "ResultSet_4", - "PlanNodeId": 32, + "Node Type": "ResultSet_2", + "PlanNodeId": 22, "PlanNodeType": "ResultSet", "Plans": [ { @@ -14,18 +14,18 @@ { "Inputs": [ { - "ExternalPlanNodeId": 30 + "ExternalPlanNodeId": 20 } ], "Limit": "1001", "Name": "Limit" } ], - "PlanNodeId": 31, + "PlanNodeId": 21, "Plans": [ { "Node Type": "UnionAll", - "PlanNodeId": 30, + "PlanNodeId": 20, "PlanNodeType": "Connection", "Plans": [ { @@ -41,224 +41,153 @@ "Name": "Limit" }, { - "Condition": "zt3.f3 = f1", + "Condition": "f2 = f3", "Inputs": [ { - "ExternalPlanNodeId": 28 + "ExternalPlanNodeId": 18 }, { - "ExternalPlanNodeId": 26 + "ExternalPlanNodeId": 16 } ], "Name": "LeftJoin (MapJoin)" } ], - "PlanNodeId": 29, + "PlanNodeId": 19, "Plans": [ { - "Node Type": "Map", - "PlanNodeId": 28, + "KeyColumns": [ + "f2" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 18, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_2_0", - "Node Type": "ConstantExpr", + "Node Type": "TablePointLookup-ConstantExpr", "Operators": [ { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "TablePointLookup", + "ReadColumns": [ + "f2" + ], + "Table": "postgres_jointest/join4.test_plan/zt2" + }, + { "Inputs": [], - "Iterator": "precompute_2_0", + "Iterator": "[{f2: 53}]", "Name": "Iterator" } ], - "PlanNodeId": 27 + "PlanNodeId": 17, + "Tables": [ + "postgres_jointest/join4.test_plan/zt2" + ] } ] }, { - "Node Type": "Broadcast", - "PlanNodeId": 26, + "KeyColumns": [ + "zt3.f3" + ], + "Node Type": "HashShuffle", + "PlanNodeId": 16, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Collect", - "PlanNodeId": 25, + "Node Type": "LeftJoin (MapJoin)", + "Operators": [ + { + "Condition": "f3 = f1", + "Inputs": [ + { + "ExternalPlanNodeId": 14 + }, + { + "ExternalPlanNodeId": 12 + } + ], + "Name": "LeftJoin (MapJoin)" + } + ], + "PlanNodeId": 15, "Plans": [ { - "Node Type": "UnionAll", - "PlanNodeId": 24, + "Node Type": "Map", + "PlanNodeId": 14, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_3_0", - "Node Type": "Filter-TablePointLookup-ConstantExpr", + "CTE Name": "precompute_0_0", + "Node Type": "ConstantExpr", "Operators": [ { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Name": "Filter", - "Predicate": "Exist(item.f1)" - }, - { - "Inputs": [ - { - "InternalOperatorId": 2 - } - ], - "Name": "TablePointLookup", - "ReadColumns": [ - "f1" - ], - "Table": "postgres_jointest/join4.test_plan/zt1" - }, - { "Inputs": [], - "Iterator": "precompute_3_0", + "Iterator": "precompute_0_0", "Name": "Iterator" } ], - "PlanNodeId": 23, - "Tables": [ - "postgres_jointest/join4.test_plan/zt1" - ] + "PlanNodeId": 13 } ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "Node Type": "Precompute_3", - "Parent Relationship": "InitPlan", - "PlanNodeId": 21, - "PlanNodeType": "Materialize", - "Plans": [ - { - "CTE Name": "precompute_2_0", - "Node Type": "Aggregate", - "Operators": [ - { - "Input": "precompute_2_0", - "Inputs": [], - "Name": "PartitionByKey" - } - ], - "PlanNodeId": 20 - } - ], - "Subplan Name": "CTE precompute_3_0" - }, - { - "Node Type": "Precompute_2", - "Parent Relationship": "InitPlan", - "PlanNodeId": 18, - "PlanNodeType": "Materialize", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 17, - "Plans": [ - { - "Node Type": "UnionAll", - "PlanNodeId": 16, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "LeftJoin (MapJoin)", - "Operators": [ - { - "Condition": "f2 = f3", - "Inputs": [ - { - "ExternalPlanNodeId": 14 - }, - { - "ExternalPlanNodeId": 12 - } - ], - "Name": "LeftJoin (MapJoin)" - } - ], - "PlanNodeId": 15, - "Plans": [ - { - "Node Type": "Map", - "PlanNodeId": 14, - "PlanNodeType": "Connection", - "Plans": [ - { - "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", - "Operators": [ - { - "Inputs": [], - "Iterator": "precompute_0_0", - "Name": "Iterator" - } - ], - "PlanNodeId": 13 - } - ] - }, - { - "Node Type": "Broadcast", - "PlanNodeId": 12, - "PlanNodeType": "Connection", - "Plans": [ - { - "Node Type": "Collect", - "PlanNodeId": 11, - "Plans": [ + }, { - "Node Type": "UnionAll", - "PlanNodeId": 10, + "Node Type": "Broadcast", + "PlanNodeId": 12, "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_1_0", - "Node Type": "Filter-TablePointLookup-ConstantExpr", - "Operators": [ + "Node Type": "Collect", + "PlanNodeId": 11, + "Plans": [ { - "Inputs": [ + "Node Type": "UnionAll", + "PlanNodeId": 10, + "PlanNodeType": "Connection", + "Plans": [ { - "InternalOperatorId": 1 + "CTE Name": "precompute_1_0", + "Node Type": "Filter-TablePointLookup-ConstantExpr", + "Operators": [ + { + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], + "Name": "Filter", + "Predicate": "Exist(item.f1)" + }, + { + "Inputs": [ + { + "InternalOperatorId": 2 + } + ], + "Name": "TablePointLookup", + "ReadColumns": [ + "f1" + ], + "Table": "postgres_jointest/join4.test_plan/zt1" + }, + { + "Inputs": [], + "Iterator": "precompute_1_0", + "Name": "Iterator" + } + ], + "PlanNodeId": 9, + "Tables": [ + "postgres_jointest/join4.test_plan/zt1" + ] } - ], - "Name": "Filter", - "Predicate": "Exist(item.f3)" - }, - { - "Inputs": [ - { - "InternalOperatorId": 2 - } - ], - "Name": "TablePointLookup", - "ReadColumns": [ - "f3" - ], - "Table": "postgres_jointest/join4.test_plan/zt3" - }, - { - "Inputs": [], - "Iterator": "precompute_1_0", - "Name": "Iterator" + ] } - ], - "PlanNodeId": 9, - "Tables": [ - "postgres_jointest/join4.test_plan/zt3" ] } ] @@ -273,8 +202,7 @@ } ] } - ], - "Subplan Name": "CTE precompute_2_0" + ] }, { "Node Type": "Precompute_1", @@ -313,29 +241,24 @@ "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "TablePointLookup-ConstantExpr", + "Node Type": "TableFullScan", "Operators": [ { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Name": "TablePointLookup", + "Inputs": [], + "Name": "TableFullScan", "ReadColumns": [ - "f2" + "f3" ], - "Table": "postgres_jointest/join4.test_plan/zt2" - }, - { - "Inputs": [], - "Iterator": "[{f2: 53}]", - "Name": "Iterator" + "ReadRanges": [ + "f3 (-\u221e, +\u221e)" + ], + "Scan": "Parallel", + "Table": "postgres_jointest/join4.test_plan/zt3" } ], "PlanNodeId": 1, "Tables": [ - "postgres_jointest/join4.test_plan/zt2" + "postgres_jointest/join4.test_plan/zt3" ] } ] @@ -381,7 +304,10 @@ "columns": [ "f3" ], - "type": "Lookup" + "scan_by": [ + "f3 (-\u221e, +\u221e)" + ], + "type": "FullScan" } ] } diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_8.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_8.plan index d8427fea74..363b7910c1 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_8.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_8.plan @@ -24,12 +24,12 @@ "PlanNodeId": 9, "Plans": [ { - "Node Type": "UnionAll", + "Node Type": "Merge", "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-LeftJoin (MapJoin)", + "Node Type": "TopSort-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ @@ -38,7 +38,8 @@ } ], "Limit": "1001", - "Name": "Limit" + "Name": "TopSort", + "TopSortBy": "" }, { "Condition": "joincol = joincol", @@ -130,6 +131,11 @@ } ] } + ], + "SortColumns": [ + "tt1.tt1_id (Asc)", + "tt1.joincol (Asc)", + "tt2.tt2_id (Asc)" ] } ] diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_9.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_9.plan index d8427fea74..363b7910c1 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_9.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join4.test_/query_9.plan @@ -24,12 +24,12 @@ "PlanNodeId": 9, "Plans": [ { - "Node Type": "UnionAll", + "Node Type": "Merge", "PlanNodeId": 8, "PlanNodeType": "Connection", "Plans": [ { - "Node Type": "Limit-LeftJoin (MapJoin)", + "Node Type": "TopSort-LeftJoin (MapJoin)", "Operators": [ { "Inputs": [ @@ -38,7 +38,8 @@ } ], "Limit": "1001", - "Name": "Limit" + "Name": "TopSort", + "TopSortBy": "" }, { "Condition": "joincol = joincol", @@ -130,6 +131,11 @@ } ] } + ], + "SortColumns": [ + "tt1.tt1_id (Asc)", + "tt1.joincol (Asc)", + "tt2.tt2_id (Asc)" ] } ] diff --git a/ydb/tests/functional/suite_tests/postgres/jointest/coalesce-and-join.test b/ydb/tests/functional/suite_tests/postgres/jointest/coalesce-and-join.test index d7865e2cad..a9ba78e56f 100644 --- a/ydb/tests/functional/suite_tests/postgres/jointest/coalesce-and-join.test +++ b/ydb/tests/functional/suite_tests/postgres/jointest/coalesce-and-join.test @@ -69,6 +69,7 @@ select xx.pkxx as xx_pkxx from xx left join (select yy.pkxx as yt from yy) as Q on coalesce(Q.yt, 3) = xx.pkxx + order by xx_pkxx statement skipped query YQL-2986 select yy.pkyy as yy_pkyy, yy.pkxx as yy_pkxx, yya.pkyy as yya_pkyy, diff --git a/ydb/tests/functional/suite_tests/postgres/jointest/join0.test b/ydb/tests/functional/suite_tests/postgres/jointest/join0.test index 1c93c87fc9..2213c621d0 100644 --- a/ydb/tests/functional/suite_tests/postgres/jointest/join0.test +++ b/ydb/tests/functional/suite_tests/postgres/jointest/join0.test @@ -146,9 +146,11 @@ where a.unique1 = 42 and -- -- test case where a PlaceHolderVar is used as a nestloop parameter +-- needs a fix: CBO generates a different plan that is valid, however rule based optimizer breaks: https://github.com/ydb-platform/ydb/issues/6371 -- statement query +PRAGMA ydb.CostBasedOptimizationLevel='0'; SELECT qq, unique1 FROM ( select * from diff --git a/ydb/tests/functional/suite_tests/postgres/jointest/join2.test b/ydb/tests/functional/suite_tests/postgres/jointest/join2.test index 625e7f2202..17ec5b77e4 100644 --- a/ydb/tests/functional/suite_tests/postgres/jointest/join2.test +++ b/ydb/tests/functional/suite_tests/postgres/jointest/join2.test @@ -221,10 +221,12 @@ order by y1, y2; statement query select x1, x2, y1, y2 from x left join y on (x.x1 = y.y1) where x2 is not null +order by x1, x2, y1, y2 statement query select x1, x2, y1, y2 from x left join y on (x.x1 = y.y1) where y2 is not null +order by x1, x2, y1, y2 statement query select x1, x2, y1, y2, xx1, xx2 from diff --git a/ydb/tests/functional/suite_tests/postgres/jointest/join4.test b/ydb/tests/functional/suite_tests/postgres/jointest/join4.test index dea72aac64..9c096cb151 100644 --- a/ydb/tests/functional/suite_tests/postgres/jointest/join4.test +++ b/ydb/tests/functional/suite_tests/postgres/jointest/join4.test @@ -252,11 +252,13 @@ UPSERT INTO tt2 (tt2_id, joincol) VALUES (22, 11); statement query select tt1_id, tt1.joincol as joincol, tt2_id -from tt1 left join tt2 on tt1.joincol = tt2.joincol; +from tt1 left join tt2 on tt1.joincol = tt2.joincol +order by tt1_id, joincol, tt2_id; statement query select tt1_id, tt1.joincol as joincol, tt2_id -from tt2 right join tt1 on tt1.joincol = tt2.joincol; +from tt2 right join tt1 on tt1.joincol = tt2.joincol +order by tt1_id, joincol, tt2_id; statement ok CREATE TABLE qrt1 (a int, b int, primary key(a, b)); diff --git a/ydb/tests/functional/suite_tests/test_base.py b/ydb/tests/functional/suite_tests/test_base.py index 4a662fdaca..1899771513 100644 --- a/ydb/tests/functional/suite_tests/test_base.py +++ b/ydb/tests/functional/suite_tests/test_base.py @@ -344,6 +344,16 @@ class BaseSuiteRunner(object): def pretty_json(j): return json.dumps(j, indent=4, sort_keys=True) + def remove_optimizer_estimates(self, query_plan): + if 'Plans' in query_plan: + for p in query_plan['Plans']: + self.remove_optimizer_estimates(p) + if 'Operators' in query_plan: + for op in query_plan['Operators']: + for key in ['A-Cpu', 'A-Rows', 'E-Cost', 'E-Rows', 'E-Size']: + if key in op: + del op[key] + def assert_statement_query(self, statement): def get_actual_and_expected(): query, expected = self.get_query_and_output(statement.text) @@ -356,6 +366,8 @@ class BaseSuiteRunner(object): query_plan = json.loads(self.explain(statement.text)) if 'SimplifiedPlan' in query_plan: del query_plan['SimplifiedPlan'] + if 'Plan' in query_plan: + self.remove_optimizer_estimates(query_plan['Plan']) self.files[query_name + '.plan'] = write_canonical_response( query_plan, query_name + '.plan', |