diff options
author | a-romanov <Anton.Romanov@ydb.tech> | 2023-11-20 10:49:24 +0300 |
---|---|---|
committer | a-romanov <Anton.Romanov@ydb.tech> | 2023-11-20 11:13:04 +0300 |
commit | c7ada3215c527277233a9c3066008e623788617e (patch) | |
tree | f879d7242aec82a71dc29f8c8e7e1e41150a543a | |
parent | d939e18f7bdc05d2db3b99404d73840cf24b796a (diff) | |
download | ydb-c7ada3215c527277233a9c3066008e623788617e.tar.gz |
KIKIMR-19512 Compares on yql kernel.
45 files changed, 1013 insertions, 266 deletions
diff --git a/ydb/core/formats/arrow/ssa_runtime_version.h b/ydb/core/formats/arrow/ssa_runtime_version.h index 69dae21960..5b6559980b 100644 --- a/ydb/core/formats/arrow/ssa_runtime_version.h +++ b/ydb/core/formats/arrow/ssa_runtime_version.h @@ -19,13 +19,14 @@ namespace NKikimr::NSsa { // Bump this version every time incompatible runtime functions are introduced. #ifndef SSA_RUNTIME_VERSION -#define SSA_RUNTIME_VERSION 3U +#define SSA_RUNTIME_VERSION 4U #endif // History: // v1 is the version supported by kikimr-22-4. Supports filter and cast(timestamp to uint64) pushdowns. // v2 is the version supported by kikimr-23-1. Supports LIKE filter for Utf8 type, COUNT(col), COUNT(*), SUM(), MIN(), MAX(), AVG(), SOME() aggregations. // v3 is the version supported by kikimr-23-3. Supports LIKE filter for String type, JSON_VALUE and JSON_EXISTS functions in filters +// v4 is the version supported by ? Supports any comparsions on YQL kernels. constexpr ui32 RuntimeVersion = SSA_RUNTIME_VERSION; } diff --git a/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp b/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp index 6139f666d4..7d246bde09 100644 --- a/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp +++ b/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp @@ -147,6 +147,23 @@ public: return ExprContext; } + bool CheckYqlCompatibleArgsTypes(const TKqpOlapFilterCompare& comparison) { + if (const auto maybe = comparison.Left().Maybe<TCoAtom>()) { + if (const auto type = GetColumnTypeByName(maybe.Cast().Value()); type->GetKind() == ETypeAnnotationKind::Data) { + if (const auto info = GetDataTypeInfo(type->Cast<TDataExprType>()->GetSlot()); !(info.Features & (NUdf::EDataTypeFeatures::StringType | NUdf::EDataTypeFeatures::NumericType))) { + return false; + } + } + } + if (const auto maybe = comparison.Right().Maybe<TCoAtom>()) { + if (const auto type = GetColumnTypeByName(maybe.Cast().Value()); type->GetKind() == ETypeAnnotationKind::Data) { + if (const auto info = GetDataTypeInfo(type->Cast<TDataExprType>()->GetSlot()); !(info.Features & (NUdf::EDataTypeFeatures::StringType | NUdf::EDataTypeFeatures::NumericType))) { + return false; + } + } + } + return true; + } private: const TTypeAnnotationNode* ConvertToBlockType(const TTypeAnnotationNode* type) { if (!type->IsBlock()) { @@ -155,7 +172,7 @@ private: return type; } - const TTypeAnnotationNode* GetColumnTypeByName(const TString &name) { + const TTypeAnnotationNode* GetColumnTypeByName(const std::string_view &name) { auto *rowItemType = GetSeqItemType(Row.Ptr()->GetTypeAnn()); YQL_ENSURE(rowItemType->GetKind() == ETypeAnnotationKind::Struct, "Input for OLAP lambda must contain Struct inside."); auto structType = rowItemType->Cast<TStructExprType>(); @@ -166,7 +183,25 @@ private: auto argType = arg.Ptr()->GetTypeAnn(); if (arg.Maybe<TCoAtom>() && argType->GetKind() == ETypeAnnotationKind::Unit) { // Column name - return ConvertToBlockType(GetColumnTypeByName(arg.Cast<TCoAtom>().StringValue())); + return ConvertToBlockType(GetColumnTypeByName(arg.Cast<TCoAtom>().Value())); + } + if (ETypeAnnotationKind::Data == argType->GetKind()) { + switch (argType->Cast<TDataExprType>()->GetSlot()) { + case EDataSlot::Int8: + argType = ExprContext.MakeType<TDataExprType>(EDataSlot::Int32); + break; + case EDataSlot::Int16: + argType = ExprContext.MakeType<TDataExprType>(EDataSlot::Int32); + break; + case EDataSlot::Uint8: + argType = ExprContext.MakeType<TDataExprType>(EDataSlot::Uint32); + break; + case EDataSlot::Uint16: + argType = ExprContext.MakeType<TDataExprType>(EDataSlot::Uint32); + break; + default: + break; + } } return ExprContext.MakeType<TScalarExprType>(argType); } @@ -467,13 +502,59 @@ TProgram::TAssignment* CompileYqlKernelComparison(const TKqpOlapFilterCompare& c return command; } -TProgram::TAssignment* CompileComparison(const TKqpOlapFilterCompare& comparison, - TKqpOlapCompileContext& ctx) +TProgram::TAssignment* CompileYqlKernelAnyComparison(const TKqpOlapFilterCompare& comparison, TKqpOlapCompileContext& ctx) { + // Columns should be created before comparison, otherwise comparison fail to find columns + const auto leftColumnId = GetOrCreateColumnId(comparison.Left(), ctx); + const auto rightColumnId = GetOrCreateColumnId(comparison.Right(), ctx); + + TProgram::TAssignment *const command = ctx.CreateAssignCmd(); + auto *const cmpFunc = command->MutableFunction(); + + TKernelRequestBuilder::EBinaryOp op; + if (const std::string_view& oper = comparison.Operator().Value(); oper == "string_contains"sv) { + op = TKernelRequestBuilder::EBinaryOp::StringContains; + } else if (oper == "starts_with"sv) { + op = TKernelRequestBuilder::EBinaryOp::StartsWith; + } else if (oper == "ends_with"sv) { + op = TKernelRequestBuilder::EBinaryOp::EndsWith; + } else if (oper == "eq"sv) { + op = TKernelRequestBuilder::EBinaryOp::Equals; + } else if (oper == "neq"sv) { + op = TKernelRequestBuilder::EBinaryOp::NotEquals; + } else if (oper == "lt"sv) { + op = TKernelRequestBuilder::EBinaryOp::Less; + } else if (oper == "lte"sv) { + op = TKernelRequestBuilder::EBinaryOp::LessOrEqual; + } else if (oper == "gt"sv) { + op = TKernelRequestBuilder::EBinaryOp::Greater; + } else if (oper == "gte"sv) { + op = TKernelRequestBuilder::EBinaryOp::GreaterOrEqual; + } else { + return command; + } + + const auto idx = ctx.AddYqlKernelBinaryFunc(op, comparison.Left(), comparison.Right(), + ctx.ExprCtx().MakeType<TOptionalExprType>(ctx.ExprCtx().MakeType<TDataExprType>(EDataSlot::Bool))); + cmpFunc->SetFunctionType(TProgram::YQL_KERNEL); + cmpFunc->SetKernelIdx(idx); + cmpFunc->AddArguments()->SetId(leftColumnId); + cmpFunc->AddArguments()->SetId(rightColumnId); + return ConvertSafeCastToColumn(command->GetColumn().GetId(), "Boolean", ctx); +} + +TProgram::TAssignment* CompileComparison(const TKqpOlapFilterCompare& comparison, TKqpOlapCompileContext& ctx) +{ + if constexpr (NKikimr::NSsa::RuntimeVersion >= 4) { + if (ctx.CheckYqlCompatibleArgsTypes(comparison)) { + return CompileYqlKernelAnyComparison(comparison, ctx); + } + } + std::string op = comparison.Operator().StringValue().c_str(); - if (SimpleArrowCmpFuncs.find(op) != SimpleArrowCmpFuncs.end()) { + if (SimpleArrowCmpFuncs.contains(op)) { return CompileSimpleArrowComparison(comparison, ctx); - } else if (YqlKernelCmpFuncs.find(op) != YqlKernelCmpFuncs.end()) { + } else if (YqlKernelCmpFuncs.contains(op)) { return CompileYqlKernelComparison(comparison, ctx); } else { YQL_ENSURE(false, "Unknown comparison operator: " << op); 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 a2cf8a4b56..f1810e84f8 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 @@ -90,7 +90,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 06277a2d57..4bdaa9670e 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 @@ -92,14 +92,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -108,7 +124,7 @@ "Aggregates": [ { "Column": { - "Id": 108 + "Id": 109 }, "Function": { "Id": 2 @@ -121,13 +137,13 @@ "Projection": { "Columns": [ { - "Id": 108 + "Id": 109 } ] } } ], - "Version": 3 + "Version": 4 }, "Table": "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 c07708a3d1..93875ed327 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 @@ -115,14 +115,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -139,7 +155,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 e8301f17ed..3ae673a158 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 @@ -118,14 +118,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -145,7 +161,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 f8046f4a68..a2150da068 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 @@ -94,14 +94,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -115,7 +131,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 73e37e554f..e962a76550 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 @@ -115,14 +115,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -139,7 +155,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 a3712fffb9..cbe0f4f5d9 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 @@ -96,14 +96,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -120,7 +136,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 e1b90a22de..1ece4c5f91 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 @@ -80,7 +80,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 1c9eb9ea60..62ae06e8bd 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 @@ -85,7 +85,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 b24d36c477..0c8cc4c111 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 @@ -84,7 +84,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 623069ba9b..72c048d854 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 @@ -90,7 +90,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 8f29edbe79..611147cbbf 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 @@ -75,14 +75,30 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -96,7 +112,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 6a13b0f799..11bb53981d 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 @@ -141,7 +141,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 7dd4203c58..6439c87b3d 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 @@ -93,7 +93,6 @@ } ], "FunctionType": 2, - "Id": 9, "KernelIdx": 0 } } @@ -144,7 +143,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 24b622239e..a9800d7a04 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 @@ -95,14 +95,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -112,7 +128,7 @@ { "Assign": { "Column": { - "Id": 108 + "Id": 109 }, "Constant": { "Bytes": "google" @@ -122,7 +138,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -130,24 +146,23 @@ "Id": 14 }, { - "Id": 108 + "Id": 109 } ], "FunctionType": 2, - "Id": 9, - "KernelIdx": 0 + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 109 + "Id": 110 } ], "Id": 18 @@ -157,7 +172,7 @@ { "Filter": { "Predicate": { - "Id": 110 + "Id": 111 } } }, @@ -174,7 +189,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 0893604342..07e0d2bf90 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 @@ -111,14 +111,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -128,7 +144,7 @@ { "Assign": { "Column": { - "Id": 108 + "Id": 109 }, "Constant": { "Bytes": "Google" @@ -138,7 +154,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -146,24 +162,23 @@ "Id": 3 }, { - "Id": 108 + "Id": 109 } ], "FunctionType": 2, - "Id": 9, - "KernelIdx": 0 + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 109 + "Id": 110 } ], "Id": 18 @@ -173,7 +188,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 112 }, "Constant": { "Bytes": ".google." @@ -183,7 +198,7 @@ { "Assign": { "Column": { - "Id": 112 + "Id": 113 }, "Function": { "Arguments": [ @@ -191,24 +206,23 @@ "Id": 14 }, { - "Id": 111 + "Id": 112 } ], "FunctionType": 2, - "Id": 9, - "KernelIdx": 1 + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 113 + "Id": 114 }, "Function": { "Arguments": [ { - "Id": 112 + "Id": 113 } ], "Id": 18 @@ -218,12 +232,12 @@ { "Assign": { "Column": { - "Id": 114 + "Id": 115 }, "Function": { "Arguments": [ { - "Id": 113 + "Id": 114 } ], "Id": 10 @@ -233,15 +247,15 @@ { "Assign": { "Column": { - "Id": 115 + "Id": 116 }, "Function": { "Arguments": [ { - "Id": 110 + "Id": 111 }, { - "Id": 114 + "Id": 115 } ], "Id": 11 @@ -251,7 +265,7 @@ { "Filter": { "Predicate": { - "Id": 115 + "Id": 116 } } }, @@ -274,7 +288,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "clickbench/plans/column/hits" } @@ -363,14 +377,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -380,7 +410,7 @@ { "Assign": { "Column": { - "Id": 108 + "Id": 109 }, "Constant": { "Bytes": "Google" @@ -390,7 +420,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -398,24 +428,23 @@ "Id": 3 }, { - "Id": 108 + "Id": 109 } ], "FunctionType": 2, - "Id": 9, - "KernelIdx": 0 + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 109 + "Id": 110 } ], "Id": 18 @@ -425,7 +454,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 112 }, "Constant": { "Bytes": ".google." @@ -435,7 +464,7 @@ { "Assign": { "Column": { - "Id": 112 + "Id": 113 }, "Function": { "Arguments": [ @@ -443,24 +472,23 @@ "Id": 14 }, { - "Id": 111 + "Id": 112 } ], "FunctionType": 2, - "Id": 9, - "KernelIdx": 1 + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 113 + "Id": 114 }, "Function": { "Arguments": [ { - "Id": 112 + "Id": 113 } ], "Id": 18 @@ -470,12 +498,12 @@ { "Assign": { "Column": { - "Id": 114 + "Id": 115 }, "Function": { "Arguments": [ { - "Id": 113 + "Id": 114 } ], "Id": 10 @@ -485,15 +513,15 @@ { "Assign": { "Column": { - "Id": 115 + "Id": 116 }, "Function": { "Arguments": [ { - "Id": 110 + "Id": 111 }, { - "Id": 114 + "Id": 115 } ], "Id": 11 @@ -503,7 +531,7 @@ { "Filter": { "Predicate": { - "Id": 115 + "Id": 116 } } }, @@ -526,7 +554,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 bad48167a2..cad223d373 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 @@ -181,7 +181,6 @@ } ], "FunctionType": 2, - "Id": 9, "KernelIdx": 0 } } @@ -530,7 +529,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 ec4753dcf1..d777dba41c 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 @@ -77,14 +77,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -101,7 +117,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 e93a2871ff..50eb4522ac 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 @@ -75,14 +75,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -96,7 +112,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 5ae10631cc..832173d899 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 @@ -76,14 +76,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -100,7 +116,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 b05edfbfa8..2f21dfebb2 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 @@ -99,14 +99,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -123,7 +139,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 56f52e86cf..afc2d85f13 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 @@ -98,14 +98,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -119,7 +135,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 fdcbd9a00e..bcce05c216 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 @@ -81,7 +81,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 7cc3782ce9..4db1640f71 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 @@ -113,7 +113,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 ca62661f7a..84b0148316 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 @@ -99,14 +99,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -129,7 +145,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 be78c35d3b..a00f4020c6 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 @@ -99,14 +99,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -129,7 +145,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 0e6213aaf7..090e92598e 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 @@ -93,7 +93,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 e42bfc99a0..5d299fa870 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 @@ -80,7 +80,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 e25ee7c34a..eeb6dac9f5 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 @@ -85,7 +85,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 cc8ac6d973..dfc3adcb3c 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 @@ -83,7 +83,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 43fe4f9f4f..436ba40987 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 @@ -102,7 +102,8 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 } } }, @@ -111,6 +112,21 @@ "Column": { "Id": 108 }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, "Constant": { "Int32": 0 } @@ -119,7 +135,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -127,25 +143,41 @@ "Id": 62 }, { - "Id": 108 + "Id": 109 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 107 + "Id": 110 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 108 }, { - "Id": 109 + "Id": 111 } ], "Id": 11 @@ -155,7 +187,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 113 }, "Constant": { "Int32": 0 @@ -165,7 +197,7 @@ { "Assign": { "Column": { - "Id": 112 + "Id": 114 }, "Function": { "Arguments": [ @@ -173,17 +205,33 @@ "Id": 16 }, { - "Id": 111 + "Id": 113 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 113 + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 114 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 }, "Constant": { "Bytes": "" @@ -193,7 +241,7 @@ { "Assign": { "Column": { - "Id": 114 + "Id": 117 }, "Function": { "Arguments": [ @@ -201,25 +249,41 @@ "Id": 14 }, { - "Id": 113 + "Id": 116 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 3 } } }, { "Assign": { "Column": { - "Id": 115 + "Id": 118 }, "Function": { "Arguments": [ { - "Id": 112 + "Id": 117 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 119 + }, + "Function": { + "Arguments": [ + { + "Id": 115 }, { - "Id": 114 + "Id": 118 } ], "Id": 11 @@ -229,15 +293,15 @@ { "Assign": { "Column": { - "Id": 116 + "Id": 120 }, "Function": { "Arguments": [ { - "Id": 110 + "Id": 112 }, { - "Id": 115 + "Id": 119 } ], "Id": 11 @@ -247,7 +311,7 @@ { "Filter": { "Predicate": { - "Id": 116 + "Id": 120 } } }, @@ -264,7 +328,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 a01e31dad4..853e0b03db 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 @@ -102,7 +102,8 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 } } }, @@ -111,6 +112,21 @@ "Column": { "Id": 108 }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, "Constant": { "Int32": 0 } @@ -119,7 +135,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -127,25 +143,41 @@ "Id": 62 }, { - "Id": 108 + "Id": 109 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 107 + "Id": 110 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 108 }, { - "Id": 109 + "Id": 111 } ], "Id": 11 @@ -155,7 +187,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 113 }, "Constant": { "Int32": 0 @@ -165,7 +197,7 @@ { "Assign": { "Column": { - "Id": 112 + "Id": 114 }, "Function": { "Arguments": [ @@ -173,17 +205,33 @@ "Id": 16 }, { - "Id": 111 + "Id": 113 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 113 + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 114 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 }, "Constant": { "Bytes": "" @@ -193,7 +241,7 @@ { "Assign": { "Column": { - "Id": 114 + "Id": 117 }, "Function": { "Arguments": [ @@ -201,25 +249,41 @@ "Id": 3 }, { - "Id": 113 + "Id": 116 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 3 } } }, { "Assign": { "Column": { - "Id": 115 + "Id": 118 }, "Function": { "Arguments": [ { - "Id": 112 + "Id": 117 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 119 + }, + "Function": { + "Arguments": [ + { + "Id": 115 }, { - "Id": 114 + "Id": 118 } ], "Id": 11 @@ -229,15 +293,15 @@ { "Assign": { "Column": { - "Id": 116 + "Id": 120 }, "Function": { "Arguments": [ { - "Id": 110 + "Id": 112 }, { - "Id": 115 + "Id": 119 } ], "Id": 11 @@ -247,7 +311,7 @@ { "Filter": { "Predicate": { - "Id": 116 + "Id": 120 } } }, @@ -264,7 +328,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 34622ab7c7..5569b3cc17 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 @@ -122,7 +122,8 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 } } }, @@ -131,6 +132,21 @@ "Column": { "Id": 108 }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, "Constant": { "Int32": 0 } @@ -139,7 +155,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -147,25 +163,41 @@ "Id": 16 }, { - "Id": 108 + "Id": 109 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 107 + "Id": 110 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 108 }, { - "Id": 109 + "Id": 111 } ], "Id": 11 @@ -175,7 +207,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 113 }, "Constant": { "Int32": 0 @@ -185,7 +217,7 @@ { "Assign": { "Column": { - "Id": 112 + "Id": 114 }, "Function": { "Arguments": [ @@ -193,17 +225,33 @@ "Id": 53 }, { - "Id": 111 + "Id": 113 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 113 + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 114 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 }, "Constant": { "Int32": 0 @@ -213,7 +261,7 @@ { "Assign": { "Column": { - "Id": 114 + "Id": 117 }, "Function": { "Arguments": [ @@ -221,25 +269,41 @@ "Id": 54 }, { - "Id": 113 + "Id": 116 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 3 } } }, { "Assign": { "Column": { - "Id": 115 + "Id": 118 }, "Function": { "Arguments": [ { - "Id": 112 + "Id": 117 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 119 + }, + "Function": { + "Arguments": [ + { + "Id": 115 }, { - "Id": 114 + "Id": 118 } ], "Id": 11 @@ -249,15 +313,15 @@ { "Assign": { "Column": { - "Id": 116 + "Id": 120 }, "Function": { "Arguments": [ { - "Id": 110 + "Id": 112 }, { - "Id": 115 + "Id": 119 } ], "Id": 11 @@ -267,7 +331,7 @@ { "Filter": { "Predicate": { - "Id": 116 + "Id": 120 } } }, @@ -284,7 +348,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 80a7969d6d..a0d973ca98 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 @@ -128,7 +128,8 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 } } }, @@ -137,6 +138,21 @@ "Column": { "Id": 108 }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, "Constant": { "Int32": 0 } @@ -145,7 +161,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -153,25 +169,41 @@ "Id": 16 }, { - "Id": 108 + "Id": 109 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 107 + "Id": 110 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 108 }, { - "Id": 109 + "Id": 111 } ], "Id": 11 @@ -181,7 +213,7 @@ { "Filter": { "Predicate": { - "Id": 110 + "Id": 112 } } }, @@ -210,7 +242,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 538e8aee78..b3e6022ab9 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 @@ -100,7 +100,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 11b899c2e6..175fae2a89 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 @@ -123,7 +123,8 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 } } }, @@ -132,6 +133,21 @@ "Column": { "Id": 108 }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, "Constant": { "Int32": 0 } @@ -140,7 +156,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -148,17 +164,33 @@ "Id": 16 }, { - "Id": 108 + "Id": 109 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 + }, + "Function": { + "Arguments": [ + { + "Id": 110 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 }, "Constant": { "Int64": 3594120000172545465 @@ -168,7 +200,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 113 }, "Function": { "Arguments": [ @@ -176,25 +208,41 @@ "Id": 103 }, { - "Id": 110 + "Id": 112 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 112 + "Id": 114 }, "Function": { "Arguments": [ { - "Id": 109 - }, + "Id": 113 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 115 + }, + "Function": { + "Arguments": [ { "Id": 111 + }, + { + "Id": 114 } ], "Id": 11 @@ -204,15 +252,15 @@ { "Assign": { "Column": { - "Id": 113 + "Id": 116 }, "Function": { "Arguments": [ { - "Id": 107 + "Id": 108 }, { - "Id": 112 + "Id": 115 } ], "Id": 11 @@ -222,7 +270,7 @@ { "Filter": { "Predicate": { - "Id": 113 + "Id": 116 } } }, @@ -242,7 +290,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 c58df3e134..5479864442 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 @@ -124,7 +124,8 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 } } }, @@ -133,6 +134,21 @@ "Column": { "Id": 108 }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, "Constant": { "Int32": 0 } @@ -141,7 +157,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -149,25 +165,41 @@ "Id": 16 }, { - "Id": 108 + "Id": 109 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 }, "Function": { "Arguments": [ { - "Id": 107 + "Id": 110 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 108 }, { - "Id": 109 + "Id": 111 } ], "Id": 11 @@ -177,7 +209,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 113 }, "Constant": { "Int32": 0 @@ -187,7 +219,7 @@ { "Assign": { "Column": { - "Id": 112 + "Id": 114 }, "Function": { "Arguments": [ @@ -195,17 +227,33 @@ "Id": 62 }, { - "Id": 111 + "Id": 113 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 113 + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 114 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 }, "Constant": { "Int64": 2868770270353813622 @@ -215,7 +263,7 @@ { "Assign": { "Column": { - "Id": 114 + "Id": 117 }, "Function": { "Arguments": [ @@ -223,25 +271,41 @@ "Id": 104 }, { - "Id": 113 + "Id": 116 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 3 } } }, { "Assign": { "Column": { - "Id": 115 + "Id": 118 }, "Function": { "Arguments": [ { - "Id": 112 + "Id": 117 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 119 + }, + "Function": { + "Arguments": [ + { + "Id": 115 }, { - "Id": 114 + "Id": 118 } ], "Id": 11 @@ -251,15 +315,15 @@ { "Assign": { "Column": { - "Id": 116 + "Id": 120 }, "Function": { "Arguments": [ { - "Id": 110 + "Id": 112 }, { - "Id": 115 + "Id": 119 } ], "Id": 11 @@ -269,7 +333,7 @@ { "Filter": { "Predicate": { - "Id": 116 + "Id": 120 } } }, @@ -289,7 +353,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 1446c59c32..65a7398c85 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 @@ -121,7 +121,8 @@ "Id": 106 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 0 } } }, @@ -130,6 +131,21 @@ "Column": { "Id": 108 }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, "Constant": { "Int32": 0 } @@ -138,7 +154,7 @@ { "Assign": { "Column": { - "Id": 109 + "Id": 110 }, "Function": { "Arguments": [ @@ -146,17 +162,33 @@ "Id": 16 }, { - "Id": 108 + "Id": 109 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 1 } } }, { "Assign": { "Column": { - "Id": 110 + "Id": 111 + }, + "Function": { + "Arguments": [ + { + "Id": 110 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 }, "Constant": { "Int32": 0 @@ -166,7 +198,7 @@ { "Assign": { "Column": { - "Id": 111 + "Id": 113 }, "Function": { "Arguments": [ @@ -174,25 +206,41 @@ "Id": 62 }, { - "Id": 110 + "Id": 112 } ], - "Id": 1 + "FunctionType": 2, + "KernelIdx": 2 } } }, { "Assign": { "Column": { - "Id": 112 + "Id": 114 }, "Function": { "Arguments": [ { - "Id": 109 - }, + "Id": 113 + } + ], + "Id": 18 + } + } + }, + { + "Assign": { + "Column": { + "Id": 115 + }, + "Function": { + "Arguments": [ { "Id": 111 + }, + { + "Id": 114 } ], "Id": 11 @@ -202,15 +250,15 @@ { "Assign": { "Column": { - "Id": 113 + "Id": 116 }, "Function": { "Arguments": [ { - "Id": 107 + "Id": 108 }, { - "Id": 112 + "Id": 115 } ], "Id": 11 @@ -220,7 +268,7 @@ { "Filter": { "Predicate": { - "Id": 113 + "Id": 116 } } }, @@ -237,7 +285,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 4bfe27f74e..ed1dd19f15 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 @@ -100,7 +100,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 55c5dd943c..d29a5c24f1 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 @@ -113,7 +113,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 12b689bc32..70ec33cf55 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 @@ -94,14 +94,30 @@ "Id": 106 } ], - "Id": 2 + "FunctionType": 2, + "KernelIdx": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + } + ], + "Id": 18 } } }, { "Filter": { "Predicate": { - "Id": 107 + "Id": 108 } } }, @@ -115,7 +131,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 45026684d5..94e29ed34b 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 @@ -104,7 +104,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "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 17b1cb7750..b6752ea585 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 @@ -106,7 +106,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "clickbench/plans/column/hits" } @@ -190,7 +190,7 @@ } } ], - "Version": 3 + "Version": 4 }, "Table": "clickbench/plans/column/hits" } |