[opt](Nereids) support like and regexp function (#25148)

This commit is contained in:
morrySnow
2023-10-09 15:55:57 +08:00
committed by GitHub
parent 7ceb029a17
commit 320709b9ff
5 changed files with 70 additions and 4 deletions

View File

@ -17,6 +17,8 @@
package org.apache.doris.catalog;
import org.apache.doris.nereids.trees.expressions.Like;
import org.apache.doris.nereids.trees.expressions.Regexp;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Abs;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Acos;
import org.apache.doris.nereids.trees.expressions.functions.scalar.AesDecrypt;
@ -616,6 +618,7 @@ public class BuiltinScalarFunctions implements FunctionHelper {
scalar(Least.class, "least"),
scalar(Left.class, "left"),
scalar(Length.class, "length"),
scalar(Like.class, "like"),
scalar(Ln.class, "ln"),
scalar(Locate.class, "locate"),
scalar(Log.class, "log"),
@ -679,6 +682,7 @@ public class BuiltinScalarFunctions implements FunctionHelper {
scalar(Quarter.class, "quarter"),
scalar(Radians.class, "radians"),
scalar(Random.class, "rand", "random"),
scalar(Regexp.class, "regexp"),
scalar(RegexpExtract.class, "regexp_extract"),
scalar(RegexpExtractAll.class, "regexp_extract_all"),
scalar(RegexpReplace.class, "regexp_replace"),

View File

@ -637,6 +637,35 @@ string3
7
7
-- !sql_like_Varchar_Varchar --
true
false
false
false
false
false
false
false
false
false
false
false
false
-- !sql_like_Varchar_Varchar_not_null --
false
false
false
false
false
false
false
false
false
false
false
false
-- !sql_ln_Double --
\N
-2.3025850929940455
@ -818,12 +847,12 @@ string3
-0.5228787452803376
-0.3979400086720376
-0.3010299956639812
-0.22184874961635637
-0.2218487496163564
-0.1549019599857432
-0.09691001300805639
-0.045757490560675115
0.0
0.04139268515822507
0.04139268515822508
0.07918124604762482
-- !sql_log10_Double_notnull --
@ -832,12 +861,12 @@ string3
-0.5228787452803376
-0.3979400086720376
-0.3010299956639812
-0.22184874961635637
-0.2218487496163564
-0.1549019599857432
-0.09691001300805639
-0.045757490560675115
0.0
0.04139268515822507
0.04139268515822508
0.07918124604762482
-- !sql_log2_Double --

View File

@ -28,6 +28,35 @@
0.019198621771937627
0.020943951023931952
-- !sql_regexp_Varchar_Varchar --
true
false
false
false
false
false
false
false
false
false
false
false
false
-- !sql_regexp_Varchar_Varchar_not_null --
false
false
false
false
false
false
false
false
false
false
false
false
-- !sql_regexp_extract_Varchar_Varchar_BigInt --
\N

View File

@ -63,6 +63,8 @@ suite("nereids_scalar_fn_L") {
qt_sql_length_Varchar_notnull "select length(kvchrs1) from fn_test_not_nullable order by kvchrs1"
qt_sql_length_String "select length(kstr) from fn_test order by kstr"
qt_sql_length_String_notnull "select length(kstr) from fn_test_not_nullable order by kstr"
qt_sql_like_Varchar_Varchar "select like(kvchrs1, kvchrs2) from fn_test order by kvchrs1"
qt_sql_like_Varchar_Varchar_not_null "select like(kvchrs1, kvchrs2) from fn_test_not_nullable order by kvchrs1"
qt_sql_ln_Double "select ln(kdbl) from fn_test order by kdbl"
qt_sql_ln_Double_notnull "select ln(kdbl) from fn_test_not_nullable order by kdbl"
qt_sql_locate_Varchar_Varchar "select locate(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1"

View File

@ -25,6 +25,8 @@ suite("nereids_scalar_fn_R") {
sql "select random() from fn_test_not_nullable"
sql "select random(1000) from fn_test order by kbint"
sql "select random(1000) from fn_test_not_nullable order by kbint"
qt_sql_regexp_Varchar_Varchar "select regexp(kvchrs1, kvchrs2) from fn_test order by kvchrs1"
qt_sql_regexp_Varchar_Varchar_not_null "select regexp(kvchrs1, kvchrs2) from fn_test_not_nullable order by kvchrs1"
qt_sql_regexp_extract_Varchar_Varchar_BigInt "select regexp_extract(kvchrs1, kvchrs1, kbint) from fn_test order by kvchrs1, kvchrs1, kbint"
qt_sql_regexp_extract_Varchar_Varchar_BigInt_notnull "select regexp_extract(kvchrs1, kvchrs1, kbint) from fn_test_not_nullable order by kvchrs1, kvchrs1, kbint"
qt_sql_regexp_extract_String_String_BigInt "select regexp_extract(kstr, kstr, kbint) from fn_test order by kstr, kstr, kbint"