15 std::function<void(
FunctionBindData*,
const std::vector<std::shared_ptr<common::ValueVector>>&,
16 std::shared_ptr<common::ValueVector>&)>;
33 std::move(
execFunc), nullptr, nullptr, nullptr} {}
66 template<
typename A_TYPE,
typename B_TYPE,
typename C_TYPE,
typename RESULT_TYPE,
typename FUNC>
71 *params[1], *params[2], result);
74 template<
typename A_TYPE,
typename B_TYPE,
typename C_TYPE,
typename RESULT_TYPE,
typename FUNC>
76 const std::vector<std::shared_ptr<common::ValueVector>>& params,
80 *params[0], *params[1], *params[2], result);
83 template<
typename A_TYPE,
typename B_TYPE,
typename C_TYPE,
typename RESULT_TYPE,
typename FUNC>
85 const std::vector<std::shared_ptr<common::ValueVector>>& params,
88 *params[1], *params[2], result, dataPtr);
91 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
99 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
101 const std::vector<std::shared_ptr<common::ValueVector>>& params,
108 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename FUNC>
110 const std::vector<std::shared_ptr<common::ValueVector>>& params,
117 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
122 EXECUTOR::template executeSwitch<OPERAND_TYPE, RESULT_TYPE, FUNC, UnaryFunctionWrapper>(
123 *params[0], result, dataPtr);
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>
137 const std::vector<std::shared_ptr<common::ValueVector>>& params,
144 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
147 const std::vector<std::shared_ptr<common::ValueVector>>& params,
150 EXECUTOR::template executeSwitch<OPERAND_TYPE, RESULT_TYPE, FUNC,
154 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
157 const std::vector<std::shared_ptr<common::ValueVector>>& params,
160 EXECUTOR::template executeSwitch<OPERAND_TYPE, RESULT_TYPE, FUNC, UnaryCastFunctionWrapper>(
161 *params[0], result, dataPtr);
164 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
166 const std::vector<std::shared_ptr<common::ValueVector>>& params,
173 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
175 const std::vector<std::shared_ptr<common::ValueVector>>& params,
182 template<
typename RESULT_TYPE,
typename FUNC>
190 template<
typename RESULT_TYPE,
typename FUNC>
192 const std::vector<std::shared_ptr<common::ValueVector>>& params,
199 template<
typename A_TYPE,
typename B_TYPE,
typename C_TYPE,
typename RESULT_TYPE,
typename FUNC>
201 const std::vector<std::shared_ptr<common::ValueVector>>& params,
205 *params[0], *params[1], *params[2], result);
208 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
210 const std::vector<std::shared_ptr<common::ValueVector>>& params,
214 *params[0], *params[1], result);
217 template<
typename LEFT_TYPE,
typename RIGHT_TYPE,
typename RESULT_TYPE,
typename FUNC>
219 const std::vector<std::shared_ptr<common::ValueVector>>& params,
223 *params[0], *params[1], result, dataPtr);
226 virtual std::unique_ptr<ScalarFunction>
copy()
const {
227 return std::make_unique<ScalarFunction>(*
this);
#define KU_ASSERT(condition)
Definition assert.h:19
Definition sel_vector.h:14
Definition value_vector.h:21
LogicalTypeID
Definition types.h:170
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 array_utils.h:7
static void executeListStruct(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result)
Definition binary_function_executor.h:214
static bool select(common::ValueVector &left, common::ValueVector &right, common::SelectionVector &selVector)
Definition binary_function_executor.h:368
static void execute(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result)
Definition binary_function_executor.h:200
static void executeMapCreation(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result, void *dataPtr)
Definition binary_function_executor.h:221
static void executeString(common::ValueVector &left, common::ValueVector &right, common::ValueVector &result)
Definition binary_function_executor.h:207
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:200
static void NullaryAuxilaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:191
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:35
static void UnaryCastStringExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:146
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:41
static void UnaryStringExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:136
static void UnarySequenceExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:127
static void TernaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:67
static void BinaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:92
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:47
static void UnaryExecNestedTypeFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:165
static void TernaryStringExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:75
static void BinaryExecListStructFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:209
ScalarFunction(std::string name, std::vector< common::LogicalTypeID > parameterTypeIDs, common::LogicalTypeID returnTypeID, scalar_func_exec_t execFunc)
Definition scalar_function.h:30
static void UnaryExecStructFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:174
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:56
static void TernaryRegexExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:84
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:100
virtual std::unique_ptr< ScalarFunction > copy() const
Definition scalar_function.h:226
static bool BinarySelectFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::SelectionVector &selVector)
Definition scalar_function.h:109
static void BinaryExecMapCreationFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:218
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:61
static void NullaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *=nullptr)
Definition scalar_function.h:183
static void UnaryExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:119
static void UnaryCastExecFunction(const std::vector< std::shared_ptr< common::ValueVector > > ¶ms, common::ValueVector &result, void *dataPtr)
Definition scalar_function.h:156
scalar_func_select_t selectFunc
Definition scalar_function.h:26
common::LogicalTypeID returnTypeID
Definition function.h:89
scalar_bind_func bindFunc
Definition function.h:90
static void executeString(common::ValueVector &a, common::ValueVector &b, common::ValueVector &c, common::ValueVector &result)
Definition ternary_function_executor.h:423
static void executeListStruct(common::ValueVector &a, common::ValueVector &b, common::ValueVector &c, common::ValueVector &result)
Definition ternary_function_executor.h:437
static void executeRegex(common::ValueVector &a, common::ValueVector &b, common::ValueVector &c, common::ValueVector &result, void *dataPtr)
Definition ternary_function_executor.h:430
static void execute(common::ValueVector &a, common::ValueVector &b, common::ValueVector &c, common::ValueVector &result)
Definition ternary_function_executor.h:416
Definition unary_function_executor.h:55
Definition unary_function_executor.h:102
static void executeSwitch(common::ValueVector &operand, common::ValueVector &result, void *dataPtr)
Definition unary_function_executor.h:111
static void executeSequence(common::ValueVector &operand, common::ValueVector &result, void *dataPtr)
Definition unary_function_executor.h:174
Definition unary_function_executor.h:69
Definition unary_function_executor.h:35
Definition unary_function_executor.h:46