[fix](functions) fix now(null) crash (#22321)
before: BE crash now: mysql [test]>select now(null); +-----------+ | now(NULL) | +-----------+ | NULL | +-----------+ 1 row in set (0.06 sec)
This commit is contained in:
@ -19,7 +19,6 @@ package org.apache.doris.nereids.trees.expressions.functions.scalar;
|
||||
|
||||
import org.apache.doris.catalog.FunctionSignature;
|
||||
import org.apache.doris.nereids.trees.expressions.Expression;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.AlwaysNotNullable;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.DateTimeWithPrecision;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.Nondeterministic;
|
||||
@ -36,8 +35,7 @@ import java.util.List;
|
||||
/**
|
||||
* ScalarFunction 'now'. This class is generated by GenerateFunction.
|
||||
*/
|
||||
public class Now extends DateTimeWithPrecision
|
||||
implements ExplicitlyCastableSignature, Nondeterministic, AlwaysNotNullable {
|
||||
public class Now extends DateTimeWithPrecision implements ExplicitlyCastableSignature, Nondeterministic {
|
||||
|
||||
public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
|
||||
FunctionSignature.ret(DateTimeType.INSTANCE).args(),
|
||||
@ -72,6 +70,18 @@ public class Now extends DateTimeWithPrecision
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Depend on child.
|
||||
*/
|
||||
@Override
|
||||
public boolean nullable() {
|
||||
if (arity() == 0) {
|
||||
return false;
|
||||
}
|
||||
Preconditions.checkArgument(children.size() == 1);
|
||||
return child(0).nullable();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FunctionSignature> getSignatures() {
|
||||
return SIGNATURES;
|
||||
|
||||
Reference in New Issue
Block a user