15 std::function<void(
FunctionBindData*,
const std::vector<std::shared_ptr<common::ValueVector>>&,
16 std::shared_ptr<common::ValueVector>&)>;
32 std::move(
execFunc), nullptr, nullptr, nullptr} {}
65 template<
typename A_TYPE,
typename B_TYPE,
typename C_TYPE,
typename RESULT_TYPE,
typename FUNC>
70 *params[1], *params[2], result);
73 template<
typename A_TYPE,
typename B_TYPE,
typename C_TYPE,
typename RESULT_TYPE,
typename FUNC>
75 const std::vector<std::shared_ptr<common::ValueVector>>& params,
79 *params[0], *params[1], *params[2], result);
82 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
90 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
92 const std::vector<std::shared_ptr<common::ValueVector>>& params,
99 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename FUNC>
101 const std::vector<std::shared_ptr<common::ValueVector>>& params,
108 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
113 EXECUTOR::template executeSwitch<OPERAND_TYPE, RESULT_TYPE, FUNC, UnaryFunctionWrapper>(
114 *params[0], result, dataPtr);
117 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
119 const std::vector<std::shared_ptr<common::ValueVector>>& params,
126 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
128 const std::vector<std::shared_ptr<common::ValueVector>>& params,
135 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
138 const std::vector<std::shared_ptr<common::ValueVector>>& params,
141 EXECUTOR::template executeSwitch<OPERAND_TYPE, RESULT_TYPE, FUNC,
145 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
148 const std::vector<std::shared_ptr<common::ValueVector>>& params,
151 EXECUTOR::template executeSwitch<OPERAND_TYPE, RESULT_TYPE, FUNC, UnaryCastFunctionWrapper>(
152 *params[0], result, dataPtr);
155 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
158 const std::vector<std::shared_ptr<common::ValueVector>>& params,
161 EXECUTOR::template executeSwitch<OPERAND_TYPE, RESULT_TYPE, FUNC,
165 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
167 const std::vector<std::shared_ptr<common::ValueVector>>& params,
174 template<
typename RESULT_TYPE,
typename FUNC>
182 template<
typename RESULT_TYPE,
typename FUNC>
184 const std::vector<std::shared_ptr<common::ValueVector>>& params,
191 template<
typename A_TYPE,
typename B_TYPE,
typename C_TYPE,
typename RESULT_TYPE,
typename FUNC>
193 const std::vector<std::shared_ptr<common::ValueVector>>& params,
197 *params[0], *params[1], *params[2], result);
200 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
202 const std::vector<std::shared_ptr<common::ValueVector>>& params,
206 *params[0], *params[1], result);
209 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
211 const std::vector<std::shared_ptr<common::ValueVector>>& params,
215 *params[0], *params[1], result, dataPtr);
218 std::unique_ptr<Function>
copy()
const override {
219 return std::make_unique<ScalarFunction>(*
this);
#define KU_ASSERT(condition)
Definition assert.h:19
Definition sel_vector.h:12
Definition value_vector.h:20
LogicalTypeID
Definition types.h:126
std::function< void(FunctionBindData *, const std::vector< std::shared_ptr< common::ValueVector > > &, std::shared_ptr< common::ValueVector > &)> scalar_func_compile_exec_t
Definition scalar_function.h:14
std::function< bool( const std::vector< std::shared_ptr< common::ValueVector > > &, common::SelectionVector &)> scalar_func_select_t
Definition scalar_function.h:21
std::function< void( const std::vector< std::shared_ptr< common::ValueVector > > &, common::ValueVector &, void *)> scalar_func_exec_t
Definition scalar_function.h:18
std::function< std::unique_ptr< FunctionBindData >(ScalarBindFuncInput bindInput)> scalar_bind_func
Definition function.h:55
Definition alter_type.h:5
common::LogicalTypeID returnTypeID
Definition function.h:90
scalar_bind_func bindFunc
Definition function.h:91
static void executeListStruct(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result)
Definition binary_function_executor.h:268
static bool select(common::ValueVector &left, common::ValueVector &right, common::SelectionVector &selVector)
Definition binary_function_executor.h:477
static void execute(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result)
Definition binary_function_executor.h:254
static void executeMapCreation(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result, void *dataPtr)
Definition binary_function_executor.h:275
static void executeString(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result)
Definition binary_function_executor.h:261
static void execute(common::ValueVector &result)
Definition const_function_executor.h:11
std::string name
Definition function.h:59
std::vector< common::LogicalTypeID > parameterTypeIDs
Definition function.h:60
static void execute(common::ValueVector &result, void *dataPtr)
Definition pointer_function_executor.h:10
Definition scalar_function.h:24
static void TernaryExecListStructFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:192
static void NullaryAuxilaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:183
ScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_func_exec_t execFunc, scalar_func_select_t selectFunc)
Definition scalar_function.h:34
static void UnaryCastStringExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:137
ScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_func_exec_t execFunc, scalar_func_select_t selectFunc, scalar_bind_func bindFunc)
Definition scalar_function.h:40
static void UnaryStringExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:127
static void UnarySequenceExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:118
static void TernaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:66
static void BinaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:83
ScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_func_exec_t execFunc, scalar_func_select_t selectFunc, scalar_func_compile_exec_t compileFunc, scalar_bind_func bindFunc)
Definition scalar_function.h:46
static void UnaryExecNestedTypeFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:166
static void UnaryRdfVariantCastExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:157
static void TernaryStringExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:74
static void BinaryExecListStructFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:201
ScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_func_exec_t execFunc)
Definition scalar_function.h:29
scalar_func_exec_t execFunc
Definition scalar_function.h:25
ScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_bind_func bindFunc)
Definition scalar_function.h:55
scalar_func_compile_exec_t compileFunc
Definition scalar_function.h:27
static void BinaryStringExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:91
static bool BinarySelectFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::SelectionVector &selVector)
Definition scalar_function.h:100
static void BinaryExecMapCreationFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:210
ScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_func_exec_t execFunc, scalar_bind_func bindFunc)
Definition scalar_function.h:60
static void NullaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:175
static void UnaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:110
std::unique_ptr< Function > copy() const override
Definition scalar_function.h:218
static void UnaryCastExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:147
scalar_func_select_t selectFunc
Definition scalar_function.h:26
static void executeString(common::ValueVector &a, common::ValueVector &b, common::ValueVector &c, common::ValueVector &result)
Definition ternary_function_executor.h:415
static void executeListStruct(common::ValueVector &a, common::ValueVector &b, common::ValueVector &c, common::ValueVector &result)
Definition ternary_function_executor.h:422
static void execute(common::ValueVector &a, common::ValueVector &b, common::ValueVector &c, common::ValueVector &result)
Definition ternary_function_executor.h:408
Definition unary_function_executor.h:46
Definition unary_function_executor.h:105
static void executeSwitch(common::ValueVector &operand, common::ValueVector &result, void *dataPtr)
Definition unary_function_executor.h:114
static void executeSequence(common::ValueVector &operand, common::ValueVector &result, void *dataPtr)
Definition unary_function_executor.h:177
Definition unary_function_executor.h:60
Definition unary_function_executor.h:82
Definition unary_function_executor.h:35