aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/minikql/mkql_program_builder.h
diff options
context:
space:
mode:
authorziganshinmr <ziganshinmr@yandex-team.com>2024-12-11 16:43:17 +0300
committerziganshinmr <ziganshinmr@yandex-team.com>2024-12-11 17:43:57 +0300
commite5fb86995e297dee00808170bd7b6fede4c4172c (patch)
tree240ec00d10136ac47eab15965e26bc45baa60e73 /yql/essentials/minikql/mkql_program_builder.h
parent0ff827ab7bda8ca3b0aa91a1321eb58adedf6f97 (diff)
downloadydb-e5fb86995e297dee00808170bd7b6fede4c4172c.tar.gz
BlockMapJoinCore computation node
commit_hash:7eaad4219a36a3a486c82cdbf82e7630e59e67f9
Diffstat (limited to 'yql/essentials/minikql/mkql_program_builder.h')
-rw-r--r--yql/essentials/minikql/mkql_program_builder.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/yql/essentials/minikql/mkql_program_builder.h b/yql/essentials/minikql/mkql_program_builder.h
index 7e139cd1a9..762d3a013e 100644
--- a/yql/essentials/minikql/mkql_program_builder.h
+++ b/yql/essentials/minikql/mkql_program_builder.h
@@ -133,6 +133,9 @@ struct TAggInfo {
std::vector<ui32> ArgsColumns;
};
+std::vector<TType*> ValidateBlockStreamType(const TType* streamType, bool unwrap = true);
+std::vector<TType*> ValidateBlockFlowType(const TType* flowType, bool unwrap = true);
+
class TProgramBuilder : public TTypeBuilder {
public:
TProgramBuilder(const TTypeEnvironment& env, const IFunctionRegistry& functionRegistry, bool voidWithEffects = false);
@@ -255,9 +258,9 @@ 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 flow, TRuntimeNode dict,
- EJoinKind joinKind, const TArrayRef<const ui32>& leftKeyColumns,
- const TArrayRef<const ui32>& leftKeyDrops, TType* returnType);
+ TRuntimeNode BlockMapJoinCore(TRuntimeNode leftStream, TRuntimeNode rightStream, 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);
//-- logical functions
TRuntimeNode BlockNot(TRuntimeNode data);
@@ -754,7 +757,7 @@ protected:
TRuntimeNode BuildWideSkipTakeBlocks(const std::string_view& callableName, TRuntimeNode flow, TRuntimeNode count);
TRuntimeNode BuildBlockLogical(const std::string_view& callableName, TRuntimeNode first, TRuntimeNode second);
TRuntimeNode BuildExtend(const std::string_view& callableName, const TArrayRef<const TRuntimeNode>& lists);
-
+
TRuntimeNode BuildBlockDecimalBinary(const std::string_view& callableName, TRuntimeNode first, TRuntimeNode second);
private: