| 152 | |
| 153 | template<typename OPERATION> |
| 154 | std::unique_ptr<FunctionBindData> arrayTemplateBindFunc(std::string functionName, |
| 155 | ScalarBindFuncInput input) { |
| 156 | auto leftType = interpretLogicalType(input.arguments[0].get()); |
| 157 | auto rightType = interpretLogicalType(input.arguments[1].get()); |
| 158 | auto paramType = validateArrayFunctionParameters(leftType, rightType, functionName); |
| 159 | input.definition->ptrCast<ScalarFunction>()->execFunc = |
| 160 | std::move(getScalarExecFunc<OPERATION>(paramType.copy())); |
| 161 | auto bindData = std::make_unique<FunctionBindData>(ArrayType::getChildType(paramType).copy()); |
| 162 | std::vector<LogicalType> paramTypes; |
| 163 | for (auto& _ : input.arguments) { |
| 164 | (void)_; |
| 165 | bindData->paramTypes.push_back(paramType.copy()); |
| 166 | } |
| 167 | return bindData; |
| 168 | } |
| 169 | |
| 170 | template<typename OPERATION> |
| 171 | function_set templateGetFunctionSet(const std::string& functionName) { |
nothing calls this directly
no test coverage detected