| 30 | } |
| 31 | |
| 32 | std::unique_ptr<FunctionBindData> ListConcatFunction::bindFunc(const ScalarBindFuncInput& input) { |
| 33 | std::vector<LogicalType> types; |
| 34 | types.push_back(input.arguments[0]->getDataType().copy()); |
| 35 | types.push_back(input.arguments[1]->getDataType().copy()); |
| 36 | |
| 37 | using resolver = ListTypeResolver<ListOp::Concat>; |
| 38 | ListFunctionUtils::resolveTypes(input, types, resolver::leftEmpty, resolver::leftEmpty, |
| 39 | resolver::rightEmpty, resolver::finalResolver, resolver::bothNull, resolver::leftEmpty, |
| 40 | resolver::rightEmpty, resolver::finalResolver); |
| 41 | |
| 42 | if (types[0] != types[1]) { |
| 43 | throw BinderException(ExceptionMessage::listFunctionIncompatibleChildrenType(name, |
| 44 | types[0].toString(), types[1].toString())); |
| 45 | } |
| 46 | return std::make_unique<FunctionBindData>(std::move(types), types[0].copy()); |
| 47 | } |
| 48 | |
| 49 | function_set ListConcatFunction::getFunctionSet() { |
| 50 | function_set result; |
no test coverage detected