aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/minikql/mkql_program_builder.h
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-02-18 13:35:23 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-02-18 13:35:23 +0000
commitd1f5b91da822b27faad83d50ecfdd2830a1be93e (patch)
tree78df3bf535cb8a5451afa402c51cb3f8d11b4d06 /yql/essentials/minikql/mkql_program_builder.h
parent22bc9b81495143d67a93bf58c936c5d5a65c8e8e (diff)
parenta2f16dc9eb108ecf11938c7c4275d701a3635bb7 (diff)
downloadydb-d1f5b91da822b27faad83d50ecfdd2830a1be93e.tar.gz
Merge pull request #14716 from ydb-platform/merge-libs-250218-0050
Diffstat (limited to 'yql/essentials/minikql/mkql_program_builder.h')
-rw-r--r--yql/essentials/minikql/mkql_program_builder.h11
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);