15 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
16 static inline void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
17 uint64_t resultPos,
void* ) {
20 FUNC::operation(inputVector_.getValue<OPERAND_TYPE>(inputPos),
21 resultVector_.getValue<RESULT_TYPE>(resultPos));
26 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
27 static inline void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
28 uint64_t ,
void* dataPtr) {
31 FUNC::operation(inputVector_.getValue<OPERAND_TYPE>(inputPos), resultVector_, dataPtr);
36 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
37 static void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
38 uint64_t resultPos,
void* ) {
41 FUNC::operation(inputVector_.getValue<OPERAND_TYPE>(inputPos),
42 resultVector_.getValue<RESULT_TYPE>(resultPos), resultVector_);
47 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
48 static void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
49 uint64_t resultPos,
void* dataPtr) {
54 FUNC::operation(inputVector_.getValue<OPERAND_TYPE>(inputPos),
55 resultVector_->getValue<RESULT_TYPE>(resultPos), resultVector_, inputPos,
61 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
62 static inline void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
63 uint64_t resultPos,
void* ) {
66 FUNC::operation(inputVector_.getValue<OPERAND_TYPE>(inputPos),
67 resultVector_.getValue<RESULT_TYPE>(resultPos), inputVector_, resultVector_);
72 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
73 static void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
74 uint64_t resultPos,
void* ) {
77 FUNC::operation(inputVector_.getValue<OPERAND_TYPE>(inputPos),
78 resultVector_.getValue<RESULT_TYPE>(resultPos), inputVector_, resultVector_);
83 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
84 static void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
85 uint64_t resultPos,
void* ) {
89 inputVector_.getValue<OPERAND_TYPE>(inputPos), inputVector_, inputPos,
90 resultVector_.getValue<RESULT_TYPE>(resultPos), resultVector_, resultPos);
95 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
96 static inline void operation(
void* inputVector, uint64_t inputPos,
void* resultVector,
97 uint64_t resultPos,
void* dataPtr) {
100 FUNC::operation(inputVector_.getValue<OPERAND_TYPE>(inputPos),
101 resultVector_.getValue<RESULT_TYPE>(resultPos), dataPtr);
106 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
typename OP_WRAPPER>
109 OP_WRAPPER::template operation<OPERAND_TYPE, RESULT_TYPE, FUNC>((
void*)&inputVector,
110 inputPos, (
void*)&resultVector, resultPos, dataPtr);
113 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC,
typename OP_WRAPPER>
117 auto& operandSelVector = operand.
state->getSelVector();
118 if (operand.
state->isFlat()) {
119 auto inputPos = operandSelVector[0];
120 auto resultPos = result.
state->getSelVector()[0];
122 if (!result.
isNull(resultPos)) {
124 result, resultPos, dataPtr);
128 if (operandSelVector.isUnfiltered()) {
129 for (
auto i = 0u; i < operandSelVector.getSelSize(); i++) {
134 for (
auto i = 0u; i < operandSelVector.getSelSize(); i++) {
135 auto pos = operandSelVector[i];
137 result, pos, dataPtr);
141 if (operandSelVector.isUnfiltered()) {
142 for (
auto i = 0u; i < operandSelVector.getSelSize(); i++) {
150 for (
auto i = 0u; i < operandSelVector.getSelSize(); i++) {
151 auto pos = operandSelVector[i];
153 if (!result.
isNull(pos)) {
155 pos, result, pos, dataPtr);
163 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
169 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
176 template<
typename OPERAND_TYPE,
typename RESULT_TYPE,
typename FUNC>
180 auto inputPos = operand.
state->getSelVector()[0];
181 auto resultPos = result.
state->getSelVector()[0];
183 inputPos, result, resultPos, dataPtr);
Definition value_vector.h:20
void resetAuxiliaryBuffer()
uint8_t isNull(uint32_t pos) const
Definition value_vector.h:47
bool hasNoNullsGuarantee() const
Definition value_vector.h:41
void setNull(uint32_t pos, bool isNull)
std::shared_ptr< DataChunkState > state
Definition value_vector.h:105
Definition alter_type.h:5
Definition cast_function_bind_data.h:9
common::CSVOption option
Definition cast_function_bind_data.h:12
Definition unary_function_executor.h:71
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t resultPos, void *)
Definition unary_function_executor.h:73
Definition unary_function_executor.h:46
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t resultPos, void *dataPtr)
Definition unary_function_executor.h:48
Definition unary_function_executor.h:105
static void executeOnValue(common::ValueVector &inputVector, uint64_t inputPos, common::ValueVector &resultVector, uint64_t resultPos, void *dataPtr)
Definition unary_function_executor.h:107
static void execute(common::ValueVector &operand, common::ValueVector &result)
Definition unary_function_executor.h:164
static void executeSwitch(common::ValueVector &operand, common::ValueVector &result, void *dataPtr)
Definition unary_function_executor.h:114
static void executeUDF(common::ValueVector &operand, common::ValueVector &result, void *dataPtr)
Definition unary_function_executor.h:170
static void executeSequence(common::ValueVector &operand, common::ValueVector &result, void *dataPtr)
Definition unary_function_executor.h:177
Definition unary_function_executor.h:14
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t resultPos, void *)
Definition unary_function_executor.h:16
Definition unary_function_executor.h:60
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t resultPos, void *)
Definition unary_function_executor.h:62
Definition unary_function_executor.h:82
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t resultPos, void *)
Definition unary_function_executor.h:84
Definition unary_function_executor.h:25
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t, void *dataPtr)
Definition unary_function_executor.h:27
Definition unary_function_executor.h:35
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t resultPos, void *)
Definition unary_function_executor.h:37
Definition unary_function_executor.h:94
static void operation(void *inputVector, uint64_t inputPos, void *resultVector, uint64_t resultPos, void *dataPtr)
Definition unary_function_executor.h:96