diff options
author | Alexander Smirnov <alex@ydb.tech> | 2025-02-18 00:51:31 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2025-02-18 00:51:31 +0000 |
commit | d46fe70ab3363efe215e4c7b142fb2e25e772f8e (patch) | |
tree | 1931cba78c3a24456f8f0dca6d80ba3cbc147acd /yql/essentials/minikql/mkql_program_builder.h | |
parent | c25b7ee30559ef027fbc049354af1debffb6c1c6 (diff) | |
parent | 8fe93946bc369873a7ffbb3a7403463aa80e3117 (diff) | |
download | ydb-d46fe70ab3363efe215e4c7b142fb2e25e772f8e.tar.gz |
Merge branch 'rightlib' into merge-libs-250218-0050
Diffstat (limited to 'yql/essentials/minikql/mkql_program_builder.h')
-rw-r--r-- | yql/essentials/minikql/mkql_program_builder.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/yql/essentials/minikql/mkql_program_builder.h b/yql/essentials/minikql/mkql_program_builder.h index b67d80861d..01c0223293 100644 --- a/yql/essentials/minikql/mkql_program_builder.h +++ b/yql/essentials/minikql/mkql_program_builder.h @@ -17,6 +17,9 @@ class TBuiltinFunctionRegistry; constexpr std::string_view RandomMTResource = "MTRand"; constexpr std::string_view ResourceQueuePrefix = "TResourceQueue:"; +constexpr std::string_view BlockStorageResourcePrefix = "TBlockStorage:"; +constexpr std::string_view BlockMapJoinIndexResourcePrefix = "TBlockMapJoinIndex:"; +constexpr std::string_view BlockMapJoinIndexResourceSeparator = ":$YqlKeyColumns:"; enum class EJoinKind { Min = 1, @@ -133,6 +136,7 @@ struct TAggInfo { std::vector<ui32> ArgsColumns; }; +std::vector<TType*> ValidateBlockType(const TType* type, bool unwrap = true); std::vector<TType*> ValidateBlockStreamType(const TType* streamType, bool unwrap = true); std::vector<TType*> ValidateBlockFlowType(const TType* flowType, bool unwrap = true); @@ -258,9 +262,12 @@ public: TRuntimeNode BlockFromPg(TRuntimeNode input, TType* returnType); TRuntimeNode BlockPgResolvedCall(const std::string_view& name, ui32 id, const TArrayRef<const TRuntimeNode>& args, TType* returnType); - TRuntimeNode BlockMapJoinCore(TRuntimeNode leftStream, TRuntimeNode rightStream, EJoinKind joinKind, + TRuntimeNode BlockStorage(TRuntimeNode stream, TType* returnType); + TRuntimeNode BlockMapJoinIndex(TRuntimeNode blockStorage, TType* streamItemType, const TArrayRef<const ui32>& keyColumns, bool any, TType* returnType); + TRuntimeNode BlockMapJoinCore(TRuntimeNode leftStream, TRuntimeNode rightBlockStorage, TType* rightStreamItemType, EJoinKind joinKind, const TArrayRef<const ui32>& leftKeyColumns, const TArrayRef<const ui32>& leftKeyDrops, - const TArrayRef<const ui32>& rightKeyColumns, const TArrayRef<const ui32>& rightKeyDrops, bool rightAny, TType* returnType); + const TArrayRef<const ui32>& rightKeyColumns, const TArrayRef<const ui32>& rightKeyDrops, TType* returnType + ); //-- logical functions TRuntimeNode BlockNot(TRuntimeNode data); |