| 112 | } |
| 113 | |
| 114 | static LogicalType validateArrayFunctionParameters(const LogicalType& leftType, |
| 115 | const LogicalType& rightType, const std::string& functionName) { |
| 116 | auto leftChildType = getChildType(leftType); |
| 117 | auto rightChildType = getChildType(rightType); |
| 118 | validateChildType(leftChildType, functionName); |
| 119 | validateChildType(rightChildType, functionName); |
| 120 | if (leftType.getLogicalTypeID() == common::LogicalTypeID::ARRAY) { |
| 121 | return leftType.copy(); |
| 122 | } else if (rightType.getLogicalTypeID() == common::LogicalTypeID::ARRAY) { |
| 123 | return rightType.copy(); |
| 124 | } |
| 125 | throw BinderException( |
| 126 | std::format("{} requires at least one argument to be ARRAY but all parameters are LIST.", |
| 127 | functionName)); |
| 128 | } |
| 129 | |
| 130 | template<typename OPERATION, typename RESULT> |
| 131 | static scalar_func_exec_t getBinaryArrayExecFuncSwitchResultType() { |
no test coverage detected