[bug](json)Fix some problems of json function on Nereids (#24898)
Fix some problems of json_length and json_contains function on Nereids fix wrong result of json_contains function Regression test jsonb_p0 to enable Nereids
This commit is contained in:
@ -611,7 +611,7 @@ public class BuiltinScalarFunctions implements FunctionHelper {
|
||||
scalar(JsonbType.class, "json_type"),
|
||||
scalar(JsonbType.class, "jsonb_type"),
|
||||
scalar(JsonLength.class, "json_length"),
|
||||
scalar(JsonContains.class, "json_conatins"),
|
||||
scalar(JsonContains.class, "json_contains"),
|
||||
scalar(LastDay.class, "last_day"),
|
||||
scalar(Least.class, "least"),
|
||||
scalar(Left.class, "left"),
|
||||
|
||||
@ -51,7 +51,7 @@ public class JsonContains extends ScalarFunction
|
||||
* constructor with 2 arguments.
|
||||
*/
|
||||
public JsonContains(Expression arg0, Expression arg1) {
|
||||
super("json_contains", arg0, arg1, Literal.of(""));
|
||||
super("json_contains", arg0, arg1, Literal.of("$"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -19,8 +19,8 @@ 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.AlwaysNullable;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
|
||||
import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
|
||||
import org.apache.doris.nereids.trees.expressions.literal.Literal;
|
||||
import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
|
||||
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
|
||||
@ -38,7 +38,7 @@ import java.util.List;
|
||||
* ScalarFunction 'json_length'. This class is generated by GenerateFunction.
|
||||
*/
|
||||
public class JsonLength extends ScalarFunction
|
||||
implements BinaryExpression, ExplicitlyCastableSignature, PropagateNullable {
|
||||
implements BinaryExpression, ExplicitlyCastableSignature, AlwaysNullable {
|
||||
|
||||
public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
|
||||
FunctionSignature.ret(IntegerType.INSTANCE).args(JsonType.INSTANCE),
|
||||
@ -50,7 +50,7 @@ public class JsonLength extends ScalarFunction
|
||||
* constructor with 1 arguments.
|
||||
*/
|
||||
public JsonLength(Expression arg0) {
|
||||
super("json_length", arg0, Literal.of(""));
|
||||
super("json_length", arg0, Literal.of("$"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user