| 15 | namespace function { |
| 16 | |
| 17 | static LogicalType interpretLogicalType(const binder::Expression* expr) { |
| 18 | if (expr->expressionType == ExpressionType::LITERAL && |
| 19 | expr->dataType.getLogicalTypeID() == LogicalTypeID::LIST) { |
| 20 | auto numChildren = |
| 21 | expr->constPtrCast<binder::LiteralExpression>()->getValue().getChildrenSize(); |
| 22 | return LogicalType::ARRAY(ListType::getChildType(expr->dataType).copy(), numChildren); |
| 23 | } |
| 24 | return expr->dataType.copy(); |
| 25 | } |
| 26 | |
| 27 | std::unique_ptr<FunctionBindData> ArrayCrossProductBindFunc(const ScalarBindFuncInput& input) { |
| 28 | auto leftType = interpretLogicalType(input.arguments[0].get()); |
no test coverage detected