[opt](Nereids) add two args signature to trim family functions (#25169)

This commit is contained in:
morrySnow
2023-10-09 20:17:52 +08:00
committed by GitHub
parent 08e7a7b932
commit 37247ac449
9 changed files with 253 additions and 25 deletions

View File

@ -37,11 +37,18 @@ import java.util.List;
public class Ltrim extends ScalarFunction
implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable {
public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT)
.args(VarcharType.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT),
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE, StringType.INSTANCE),
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT).args(VarcharType.SYSTEM_DEFAULT),
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE)
);
private Ltrim(List<Expression> args) {
super("ltrim", args);
}
/**
* constructor with 1 argument.
*/
@ -49,13 +56,20 @@ public class Ltrim extends ScalarFunction
super("ltrim", arg);
}
/**
* constructor with 2 argument.
*/
public Ltrim(Expression arg0, Expression arg1) {
super("ltrim", arg0, arg1);
}
/**
* withChildren.
*/
@Override
public Ltrim withChildren(List<Expression> children) {
Preconditions.checkArgument(children.size() == 1);
return new Ltrim(children.get(0));
Preconditions.checkArgument(children.size() == 1 || children.size() == 2);
return new Ltrim(children);
}
@Override

View File

@ -37,11 +37,18 @@ import java.util.List;
public class Rtrim extends ScalarFunction
implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable {
public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT)
.args(VarcharType.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT),
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE, StringType.INSTANCE),
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT).args(VarcharType.SYSTEM_DEFAULT),
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE)
);
private Rtrim(List<Expression> args) {
super("rtrim", args);
}
/**
* constructor with 1 argument.
*/
@ -49,13 +56,20 @@ public class Rtrim extends ScalarFunction
super("rtrim", arg);
}
/**
* constructor with 2 argument.
*/
public Rtrim(Expression arg0, Expression arg1) {
super("rtrim", arg0, arg1);
}
/**
* withChildren.
*/
@Override
public Rtrim withChildren(List<Expression> children) {
Preconditions.checkArgument(children.size() == 1);
return new Rtrim(children.get(0));
Preconditions.checkArgument(children.size() == 1 || children.size() == 2);
return new Rtrim(children);
}
@Override

View File

@ -37,11 +37,18 @@ import java.util.List;
public class Trim extends ScalarFunction
implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable {
public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
private static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT)
.args(VarcharType.SYSTEM_DEFAULT, VarcharType.SYSTEM_DEFAULT),
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE, StringType.INSTANCE),
FunctionSignature.ret(VarcharType.SYSTEM_DEFAULT).args(VarcharType.SYSTEM_DEFAULT),
FunctionSignature.ret(StringType.INSTANCE).args(StringType.INSTANCE)
);
private Trim(List<Expression> args) {
super("trim", args);
}
/**
* constructor with 1 argument.
*/
@ -49,13 +56,20 @@ public class Trim extends ScalarFunction
super("trim", arg);
}
/**
* constructor with 2 argument.
*/
public Trim(Expression arg0, Expression arg1) {
super("trim", arg0, arg1);
}
/**
* withChildren.
*/
@Override
public Trim withChildren(List<Expression> children) {
Preconditions.checkArgument(children.size() == 1);
return new Trim(children.get(0));
Preconditions.checkArgument(children.size() == 1 || children.size() == 2);
return new Trim(children);
}
@Override

View File

@ -1072,3 +1072,61 @@ string3
string3
string3
-- !sql_ltrim_Varchar_Varchar --
null
char11
char11
char11
char11
char12
char12
char12
char12
char13
char13
char13
char13
-- !sql_ltrim_Varchar_Varchar_notnull --
char11
char11
char11
char11
char12
char12
char12
char12
char13
char13
char13
char13
-- !sql_ltrim_String_String --
null
ing1
ing1
ing1
ing1
ing2
ing2
ing2
ing2
ing3
ing3
ing3
ing3
-- !sql_ltrim_String_String_notnull --
ing1
ing1
ing1
ing1
ing2
ing2
ing2
ing2
ing3
ing3
ing3
ing3

View File

@ -1043,3 +1043,61 @@ string3
string3
string3
-- !sql_rtrim_Varchar_Varchar --
null
varchar
varchar
varchar
varchar
varchar12
varchar12
varchar12
varchar12
varchar13
varchar13
varchar13
varchar13
-- !sql_rtrim_Varchar_Varchar_notnull --
varchar
varchar
varchar
varchar
varchar12
varchar12
varchar12
varchar12
varchar13
varchar13
varchar13
varchar13
-- !sql_rtrim_String_String --
null
string
string
string
string
string2
string2
string2
string2
string3
string3
string3
string3
-- !sql_rtrim_String_String_notnull --
string
string
string
string
string2
string2
string2
string2
string3
string3
string3
string3

View File

@ -1,32 +1,32 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !sql_tan_Double --
\N
0.10033467208545055
0.2027100355086725
0.30933624960962325
0.10033467208545054
0.20271003550867248
0.3093362496096232
0.4227932187381618
0.5463024898437905
0.6841368083416923
0.8422883804630794
0.8422883804630793
1.0296385570503641
1.2601582175503392
1.5574077246549023
1.9647596572486523
2.5721516221263188
1.260158217550339
1.557407724654902
1.9647596572486525
2.5721516221263183
-- !sql_tan_Double_notnull --
0.10033467208545055
0.2027100355086725
0.30933624960962325
0.10033467208545054
0.20271003550867248
0.3093362496096232
0.4227932187381618
0.5463024898437905
0.6841368083416923
0.8422883804630794
0.8422883804630793
1.0296385570503641
1.2601582175503392
1.5574077246549023
1.9647596572486523
2.5721516221263188
1.260158217550339
1.557407724654902
1.9647596572486525
2.5721516221263183
-- !sql_timediff_DateTime_DateTime --
\N
@ -782,6 +782,64 @@ string3
string3
string3
-- !sql_trim_Varchar_Varchar --
null
char11
char11
char11
char11
char12
char12
char12
char12
char13
char13
char13
char13
-- !sql_trim_Varchar_Varchar_notnull --
char11
char11
char11
char11
char12
char12
char12
char12
char13
char13
char13
char13
-- !sql_trim_String_String --
null
ing1
ing1
ing1
ing1
ing2
ing2
ing2
ing2
ing3
ing3
ing3
ing3
-- !sql_trim_String_String_notnull --
ing1
ing1
ing1
ing1
ing2
ing2
ing2
ing2
ing3
ing3
ing3
ing3
-- !sql_truncate_Double_Integer --
\N
0.1

View File

@ -93,4 +93,8 @@ suite("nereids_scalar_fn_L") {
qt_sql_ltrim_Varchar_notnull "select ltrim(kvchrs1) from fn_test_not_nullable order by kvchrs1"
qt_sql_ltrim_String "select ltrim(kstr) from fn_test order by kstr"
qt_sql_ltrim_String_notnull "select ltrim(kstr) from fn_test_not_nullable order by kstr"
qt_sql_ltrim_Varchar_Varchar "select ltrim(kvchrs1, 'var') from fn_test order by kvchrs1"
qt_sql_ltrim_Varchar_Varchar_notnull "select ltrim(kvchrs1, 'var') from fn_test_not_nullable order by kvchrs1"
qt_sql_ltrim_String_String "select ltrim(kstr, 'str') from fn_test order by kstr"
qt_sql_ltrim_String_String_notnull "select ltrim(kstr, 'str') from fn_test_not_nullable order by kstr"
}

View File

@ -95,4 +95,8 @@ suite("nereids_scalar_fn_R") {
qt_sql_rtrim_Varchar_notnull "select rtrim(kvchrs1) from fn_test_not_nullable order by kvchrs1"
qt_sql_rtrim_String "select rtrim(kstr) from fn_test order by kstr"
qt_sql_rtrim_String_notnull "select rtrim(kstr) from fn_test_not_nullable order by kstr"
qt_sql_rtrim_Varchar_Varchar "select rtrim(kvchrs1, '1') from fn_test order by kvchrs1"
qt_sql_rtrim_Varchar_Varchar_notnull "select rtrim(kvchrs1, '1') from fn_test_not_nullable order by kvchrs1"
qt_sql_rtrim_String_String "select rtrim(kstr, '1') from fn_test order by kstr"
qt_sql_rtrim_String_String_notnull "select rtrim(kstr, '1') from fn_test_not_nullable order by kstr"
}

View File

@ -73,6 +73,10 @@ suite("nereids_scalar_fn_T") {
qt_sql_trim_Varchar_notnull "select trim(kvchrs1) from fn_test_not_nullable order by kvchrs1"
qt_sql_trim_String "select trim(kstr) from fn_test order by kstr"
qt_sql_trim_String_notnull "select trim(kstr) from fn_test_not_nullable order by kstr"
qt_sql_trim_Varchar_Varchar "select trim(kvchrs1, 'var') from fn_test order by kvchrs1"
qt_sql_trim_Varchar_Varchar_notnull "select trim(kvchrs1, 'var') from fn_test_not_nullable order by kvchrs1"
qt_sql_trim_String_String "select trim(kstr, 'str') from fn_test order by kstr"
qt_sql_trim_String_String_notnull "select trim(kstr, 'str') from fn_test_not_nullable order by kstr"
qt_sql_truncate_Double_Integer "select truncate(kdbl, 2) from fn_test order by kdbl"
qt_sql_truncate_Double_Integer_notnull "select truncate(kdbl, 2) from fn_test_not_nullable order by kdbl"
qt_sql_truncate_DecimalV3S1_Int "select truncate(kdcmlv3s1, 1) from fn_test order by kdcmlv3s1"