[fix](array_apply) pick array apply fix (#39328)
## Proposed changes backport: https://github.com/apache/doris/pull/39105 Issue Number: close #xxx <!--Describe your changes.-->
This commit is contained in:
@ -26,6 +26,7 @@ import org.apache.doris.nereids.trees.expressions.literal.StringLikeLiteral;
|
||||
import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
|
||||
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
|
||||
import org.apache.doris.nereids.types.ArrayType;
|
||||
import org.apache.doris.nereids.types.DataType;
|
||||
import org.apache.doris.nereids.types.VarcharType;
|
||||
import org.apache.doris.nereids.types.coercion.AnyDataType;
|
||||
import org.apache.doris.nereids.types.coercion.FollowToAnyDataType;
|
||||
@ -67,6 +68,15 @@ public class ArrayApply extends ScalarFunction
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkLegalityBeforeTypeCoercion() {
|
||||
DataType argType = ((ArrayType) child(0).getDataType()).getItemType();
|
||||
if (!(argType.isIntegralType() || argType.isFloatLikeType() || argType.isDecimalLikeType()
|
||||
|| argType.isDateLikeType() || argType.isBooleanType())) {
|
||||
throw new AnalysisException("array_apply does not support type: " + toSql());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayApply withChildren(List<Expression> children) {
|
||||
Preconditions.checkArgument(children.size() == 3,
|
||||
|
||||
Reference in New Issue
Block a user