You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/07/14 10:39:04 UTC
[shardingsphere] branch master updated: fix trim parse error. (#19146)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 7a06c6919a3 fix trim parse error. (#19146)
7a06c6919a3 is described below
commit 7a06c6919a33daff774a7ec68d700793788c5fb0
Author: Chuxin Chen <ch...@qq.com>
AuthorDate: Thu Jul 14 18:38:58 2022 +0800
fix trim parse error. (#19146)
---
.../src/main/antlr4/imports/mysql/BaseRule.g4 | 4 +--
.../statement/impl/MySQLStatementSQLVisitor.java | 1 +
.../resources/case/dml/select-special-function.xml | 24 +++++++++++++++
.../sql/supported/dml/select-special-function.xml | 2 ++
.../main/resources/sql/unsupported/unsupported.xml | 34 ----------------------
5 files changed, 29 insertions(+), 36 deletions(-)
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4
index 1bde99319a5..29cecdcd99e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4
@@ -1029,8 +1029,8 @@ charFunction
;
trimFunction
- : TRIM LP_ ((LEADING | BOTH | TRAILING) string_? FROM)? string_ RP_
- | TRIM LP_ (string_ FROM)? string_ RP_
+ : TRIM LP_ ((LEADING | BOTH | TRAILING) expr? FROM)? expr RP_
+ | TRIM LP_ (expr FROM)? expr RP_
;
valuesFunction
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
index 30d8c4e874d..f5de81e2796 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
@@ -905,6 +905,7 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
@Override
public final ASTNode visitTrimFunction(final TrimFunctionContext ctx) {
+ calculateParameterCount(ctx.expr());
return new FunctionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.TRIM().getText(), getOriginalText(ctx));
}
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml
index bdae6eb1bde..30ade70aa71 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/select-special-function.xml
@@ -119,6 +119,30 @@
</expression-projection>
</projections>
</select>
+ <select sql-case-id="select_with_trim_expr">
+ <projections start-index="7" stop-index="27">
+ <expression-projection text="trim('#' from `name`)" start-index="7" stop-index="27">
+ <expr>
+ <function function-name="trim" start-index="7" stop-index="27" text="trim('#' from `name`)" />
+ </expr>
+ </expression-projection>
+ </projections>
+ <from>
+ <simple-table name="t_order" start-index="34" stop-index="40"/>
+ </from>
+ </select>
+ <select sql-case-id="select_with_trim_expr_from_expr">
+ <projections start-index="7" stop-index="33">
+ <expression-projection text="trim(remove_name from name)" start-index="7" stop-index="33">
+ <expr>
+ <function function-name="trim" start-index="7" stop-index="33" text="trim(remove_name from name)" />
+ </expr>
+ </expression-projection>
+ </projections>
+ <from>
+ <simple-table name="t_order" start-index="40" stop-index="46"/>
+ </from>
+ </select>
<select sql-case-id="select_weight_string">
<projections start-index="7" stop-index="26">
<expression-projection text="WEIGHT_STRING('bar')" start-index="7" stop-index="26">
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml
index f7541cd8624..b8be8d84b16 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/select-special-function.xml
@@ -26,6 +26,8 @@
<sql-case id="select_extract" value="SELECT EXTRACT(YEAR FROM '2019-07-02')" db-types="MySQL" />
<sql-case id="select_char" value="SELECT CHAR(77,121,83,81,'76')" db-types="MySQL" />
<sql-case id="select_trim" value="SELECT TRIM(' bar ')" db-types="MySQL" />
+ <sql-case id="select_with_trim_expr" value="select trim('#' from `name`) from t_order" db-types="MySQL"/>
+ <sql-case id="select_with_trim_expr_from_expr" value="select trim(remove_name from name) from t_order" db-types="MySQL"/>
<sql-case id="select_weight_string" value="SELECT WEIGHT_STRING('bar')" db-types="MySQL" />
<sql-case id="select_values" value="SELECT VALUES(order_id) FROM t_order" db-types="MySQL" />
<sql-case id="select_current_user_brackets" value="SELECT CURRENT_USER()" db-types="MySQL" />
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
index 9fa3073f230..6354e65bcc5 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
@@ -519,9 +519,6 @@
<sql-case id="create_by_mysql_source_test_case845" value="CREATE VIEW v1 AS SELECT GROUPING(a2345678901234567890123456789012345678901234.a), GROUPING(a2345678901234567890123456789012345678901234.a), GROUPING(a2345678901234567890123456789012345678901234.a) FROM t1 AS a2345678901234567890123456789012345678901234 GROUP BY a WITH ROLLUP" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case846" value="CREATE VIEW v1 AS SELECT NOW(6), CURTIME(4), LOCALTIME(3), CURRENT_TIME(2), CURRENT_TIMESTAMP(0), LOCALTIMESTAMP(1), UTC_TIME(4), UTC_TIMESTAMP(4)" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case847" value="CREATE VIEW v1 AS SELECT STDDEV_SAMP(a) OVER ( ORDER BY a ROWS CURRENT ROW) AS std_dev_samp FROM t" db-types="MySQL" />
- <sql-case id="create_by_mysql_source_test_case848" value="CREATE VIEW v1 AS SELECT TRIM(BOTH 'y' FROM s) FROM t1" db-types="MySQL" />
- <sql-case id="create_by_mysql_source_test_case849" value="CREATE VIEW v1 AS SELECT TRIM(LEADING 'y' FROM s) FROM t1" db-types="MySQL" />
- <sql-case id="create_by_mysql_source_test_case850" value="CREATE VIEW v1 AS SELECT TRIM(TRAILING 'y' FROM s) FROM t1" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case851" value="CREATE VIEW v1 AS SELECT id, 'a' AS name, a AS val FROM t1 UNION SELECT id, 'mn', HEX(LIKE_RANGE_MIN(a, 16)) AS min FROM t1 UNION SELECT id, 'mx', HEX(LIKE_RANGE_MAX(a, 16)) AS max FROM t1 UNION SELECT id, 'sp', REPEAT('-', 32) AS sep FROM t1 ORDER BY id, name" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case852" value="CREATE VIEW v1 AS SELECT test.bug12812()" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case853" value="CREATE VIEW v2 AS SELECT * FROM t1 USE KEY () ORDER BY a" db-types="MySQL" />
@@ -775,7 +772,6 @@
<sql-case id="create_by_mysql_source_test_case1466" value="create view v1 as select t1.a as f1, dt.a as f2 from t1, lateral (select t1.a+t2.a as a from t2) dt" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case1467" value="create view v1 as select test.`f``1` ()" db-types="MySQL" />
<sql-case id="create_by_mysql_source_test_case1468" value="create view v3 as select bug23491_original.f1()" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case1" value="SELECT COUNTRY FROM t1 WHERE trim(trailing 'a' FROM COUNTRY)= 'Australi'" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case2" value="SELECT MAX(a) FROM t1 WHERE (b) IN (SELECT MIN(t2.b) FROM (SELECT b from t1) AS t2 GROUP BY t2.b WITH ROLLUP HAVING GROUPING (t2.b)=0)" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case3" value="SELECT MAX(a) FROM t1 WHERE (b) IN (SELECT MIN(t2.b) FROM t1 AS t2 GROUP BY t2.b WITH ROLLUP HAVING GROUPING (t2.b)=0)" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case4" value="SELECT '1' IN ('1', INET_NTOA(0))" db-types="MySQL" />
@@ -871,7 +867,6 @@
<sql-case id="select_by_mysql_source_test_case101" value="SELECT 1 FROM t WHERE insert(a & 0x111111,'','','')" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case102" value="SELECT 1 FROM t WHERE insert(a & NULL,'','','')" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case103" value="SELECT 1 FROM t1 GROUP BY SUBSTRING(SYSDATE() FROM 'K' FOR 'jxW<')" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case104" value="SELECT 1 FROM t1 GROUP BY TRIM(LEADING RAND() FROM '')" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case105" value="SELECT 1 FROM t1 GROUP BY insert(a,'1','11','1')" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case106" value="SELECT 1 FROM v1 AS table1 RIGHT OUTER JOIN LATERAL (SELECT 1 FROM v1 AS table2 RIGHT OUTER JOIN LATERAL ( SELECT 1 FROM v1 AS table3 ) AS table4 ON table1.c1 = 1) AS table5 ON 1" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case107" value="SELECT 1 HAVING json_objectagg(utc_date(), 1416) <> 0" db-types="MySQL" />
@@ -1005,8 +1000,6 @@
<sql-case id="select_by_mysql_source_test_case235" value="SELECT COUNT(*) FROM t1 GROUP BY t1.a HAVING t1.a IN (SELECT t3.a FROM t1 AS t3 WHERE t3.b IN (SELECT b FROM t2, lateral (select t1.a) dt))" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case236" value="SELECT COUNT(*) FROM t1 LEFT JOIN json_table( '{}','$[0][1]' COLUMNS(a FOR ORDINALITY) ) AS t2 ON TRUE GROUP BY e*from_unixtime(0)" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case237" value="SELECT COUNT(*) FROM t1 WHERE c=REPEAT('a',256)" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case238" value="SELECT COUNTRY FROM t1 WHERE trim(leading 'A' FROM COUNTRY) = 'ustralia' AND trim(trailing 'a' FROM COUNTRY) = 'Australi'" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case239" value="SELECT COUNTRY FROM t1 WHERE trim(leading 'A' FROM COUNTRY) = 'ustralia'" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case240" value="SELECT CRC32(INSERT('foodyear', 1, 4, 'good'))" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case241" value="SELECT CURRENT_TIME(6) RLIKE '^[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$'" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case242" value="SELECT CURRENT_TIMESTAMP(6) RLIKE '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$'" db-types="MySQL" />
@@ -1030,8 +1023,6 @@
<sql-case id="select_by_mysql_source_test_case262" value="SELECT GROUPING(1) FROM t1 GROUP BY 1 WITH ROLLUP" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case263" value="SELECT GROUPING(alias2.pk) AS field2 FROM t2 AS alias1 LEFT JOIN t1 AS alias2 ON 0 GROUP BY alias2.pk WITH ROLLUP ORDER BY GROUPING(alias2.pk)" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case264" value="SELECT GROUPING(table2.col_time) AS field1 FROM t1 AS table1,t1 as table2 WHERE table2.pk = 1 GROUP BY table2.col_time WITH ROLLUP ORDER BY GROUPING(table2.col_time)" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case265" value="SELECT HEX(LPAD('', 42, TRIM(BOTH c1 FROM x'ff'))) FROM t1" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case266" value="SELECT HEX(LPAD('', 42, TRIM(x'ffff' FROM c1))) FROM t1" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case270" value="SELECT HEX(_binary 0x0003 << (_binary 0x38 | 0x38))" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case271" value="SELECT HEX(_binary 0x0003 << (_binary 0x38 | NULL))" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case272" value="SELECT HEX(_binary 0x0003 << (_binary 0x40 | 0x40))" db-types="MySQL" />
@@ -1158,14 +1149,6 @@
<sql-case id="select_by_mysql_source_test_case395" value="SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case396" value="SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case397" value="SELECT TRACE RLIKE 'minmax_keypart_in_disjunctive_query' AS OK FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case398" value="SELECT TRIM(BOTH 'y' FROM s) FROM t1" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case399" value="SELECT TRIM(BOTH x'F09F8DA3' FROM _utf8mb4 x'F09F8DA3F09F8DA3')" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case400" value="SELECT TRIM(BOTH x'f0' FROM _utf8mb4 x'F09F8DA3F09F8DA3')" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case401" value="SELECT TRIM(LEADING '\t' FROM MID(argument,LOCATE('Query',argument)+5)) FROM test_log WHERE (argument LIKE '%BY %' OR argument LIKE '%AS %' OR argument LIKE '%PASSWORD %') AND argument NOT LIKE '%Prepare%'" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case402" value="SELECT TRIM(LEADING 'y' FROM s) FROM t1" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case403" value="SELECT TRIM(TRAILING 'y' FROM s) FROM t1" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case404" value="SELECT TRIM(_latin2 x'a3' from _latin1 "hello")" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case405" value="SELECT TRIM(leading _utf8mb4 x'F09F8DA3' from _gb18030 x'9439B9376181308B33')" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case406" value="SELECT UNIX_TIMESTAMP(col_datetime_4_not_null) AS c1 FROM t1 WHERE col_time_4_key NOT BETWEEN '2001-07-06' AND LEAST(FROM_DAYS(col_timestamp_key), col_timestamp_5) OR CONVERT_TZ(MAKETIME(24, 5, 7), 'Japan', 'Japan') IS NULL OR CURRENT_TIMESTAMP() IS NOT NULL OR col_datetime_not_null_key >= UTC_TIME() ORDER BY 1" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case407" value="SELECT UTC_DATE()" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case408" value="SELECT VALIDATE_PASSWORD_STRENGTH(REPEAT("aA1#", 26))" db-types="MySQL" />
@@ -1193,7 +1176,6 @@
<sql-case id="select_by_mysql_source_test_case642" value="SELECT a, COUNT(*) AS c, a IN (SELECT a FROM t2 WHERE a=COUNT(t1.a)) AS s FROM t1 GROUP BY a" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case643" value="SELECT a, GROUPING(1) FROM t1 GROUP BY 1 WITH ROLLUP" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case644" value="SELECT a, GROUPING(SUM(a)) FROM t1 GROUP BY (a) WITH ROLLUP" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case645" value="SELECT a, MAX(TRIM('1' FROM ~1)) FROM t GROUP BY a" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case646" value="SELECT a, SUM(a), SUM(a)+1, CONCAT(SUM(a),'x'), SUM(a)+SUM(a), SUM(a) FROM (SELECT 1 a, 2 b UNION SELECT 2,3 UNION SELECT 5,6 ) d GROUP BY a WITH ROLLUP ORDER BY GROUPING(a),a" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case647" value="SELECT a, b FROM t1 GROUP BY GROUPING(a),GROUPING(b) WITH ROLLUP" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case648" value="SELECT a, b FROM t1 GROUP BY a,b WITH ROLLUP HAVING GROUPING(b) = 1" db-types="MySQL" />
@@ -1220,9 +1202,6 @@
<sql-case id="select_by_mysql_source_test_case670" value="SELECT bin_to_uuid(x'', true)" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case671" value="SELECT bug18589_f1(REPEAT("a", 767))" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case672" value="SELECT c1 <= REPEAT( SUBSTR( UPPER('Rdlpikti') , 1 , 2 ), 8 ) FROM t1" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case673" value="SELECT c1, TRIM(BOTH '𠻞' FROM c1) FROM `表一`" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case674" value="SELECT c1, TRIM(LEADING '𠻞' FROM c1) FROM `表一`" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case675" value="SELECT c1, TRIM(TRAILING '𠻞' FROM c1) FROM `表一`" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case676" value="SELECT cast( '2019-10-10 10:11' AT TIME ZONE 'UTC' AS DATETIME )" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case677" value="SELECT cast( '2019-10-10' AT TIME ZONE 'UTC' AS DATETIME )" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case678" value="SELECT cast( 123 AT TIME ZONE 'UTC' AS DATETIME )" db-types="MySQL" />
@@ -1470,9 +1449,6 @@
<sql-case id="select_by_mysql_source_test_case951" value="select case 1/0 when "a" then "true" else "false" END" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case952" value="select collation(insert(_latin2'abcd',2,3,_latin2'ef')), coercibility(insert(_latin2'abcd',2,3,_latin2'ef'))" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case953" value="select collation(repeat(_latin2'a',10)), coercibility(repeat(_latin2'a',10))" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case954" value="select collation(trim(BOTH _latin2' ' FROM _latin2'a')), coercibility(trim(BOTH _latin2'a' FROM _latin2'a'))" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case955" value="select collation(trim(LEADING _latin2' ' FROM _latin2'a')), coercibility(trim(LEADING _latin2'a' FROM _latin2'a'))" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case956" value="select collation(trim(TRAILING _latin2' ' FROM _latin2'a')), coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'))" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case957" value="select concat("a",NULL),replace(NULL,"a","b"),replace("string","i",NULL),replace("string",NULL,"i"),insert("abc",1,1,NULL),left(NULL,1)" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case958" value="select concat(c1, repeat('xx', 250)) as cc from t2 group by cc order by 1" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case959" value="select conv(255 "p1", 10, 16)" db-types="MySQL" />
@@ -1495,8 +1471,6 @@
<sql-case id="select_by_mysql_source_test_case976" value="select db1_secret.db()" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case977" value="select default(str), default(strnull), default(intg), default(rel) from t1" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case978" value="select distinct concat(c1, repeat('xx', 250)) as cc from t2 order by 1" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case979" value="select domain from t1 where concat('@', trim(leading '.' from concat('.', domain))) = '@hello.de'" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case980" value="select domain from t1 where concat('@', trim(leading '.' from concat('.', domain))) = '@test.de'" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case981" value="select extract(DAY_HOUR FROM "1999-01-02 10:11:12")" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case982" value="select extract(DAY_MICROSECOND FROM "1999-01-02 10:11:12.000123")" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case983" value="select extract(DAY_MINUTE FROM "02 10:11:12")" db-types="MySQL" />
@@ -1653,10 +1627,6 @@
<sql-case id="select_by_mysql_source_test_case1138" value="select test.metaphon("Hello")" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case1139" value="select test.pi(), test.pi ()" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case1140" value="select test.pi(), test.pi ()" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case1141" value="select trim('xyz' from null) as "must_be_null"" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case1142" value="select trim(leading NULL from 'kate') as "must_be_null"" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case1143" value="select trim(null from 'kate') as "must_be_null"" db-types="MySQL" />
- <sql-case id="select_by_mysql_source_test_case1144" value="select trim(trailing NULL from 'xyz') as "must_be_null"" db-types="MySQL" />
<sql-case id="select_by_mysql_source_test_case1145" value="select vq1.b,dt.b from v1 vq1, lateral (select vq1.b) dt" db-types="MySQL" />
<sql-case id="insert_by_mysql_source_test_case1" value="INSERT /*+ SET_VAR(time_zone = 'UTC') */ t1 VALUES (TIMEDIFF(NOW(), UTC_TIMESTAMP))" db-types="MySQL" />
<sql-case id="insert_by_mysql_source_test_case2" value="INSERT IGNORE INTO t1 SELECT 101, REPEAT('ab', @max_allowed_packet)" db-types="MySQL" />
@@ -2256,10 +2226,6 @@
<sql-case id="explain_by_mysql_source_test_case34" value="EXPLAIN SELECT myfunc_int(MIN(b) xx) as c FROM t1 GROUP BY a" db-types="MySQL" />
<sql-case id="explain_by_mysql_source_test_case35" value="EXPLAIN SELECT myfunc_int(a AS attr_name) FROM t1" db-types="MySQL" />
<sql-case id="explain_by_mysql_source_test_case36" value="EXPLAIN SELECT myfunc_int(test.fn(MIN(b))) as c FROM t1 GROUP BY a" db-types="MySQL" />
- <sql-case id="explain_by_mysql_source_test_case37" value="EXPLAIN SELECT s FROM t1 WHERE TRIM('y' FROM s) > 'ab'" db-types="MySQL" />
- <sql-case id="explain_by_mysql_source_test_case38" value="EXPLAIN SELECT s FROM t1 WHERE TRIM(BOTH 'y' FROM s) > 'ab'" db-types="MySQL" />
- <sql-case id="explain_by_mysql_source_test_case39" value="EXPLAIN SELECT s FROM t1 WHERE TRIM(LEADING 'y' FROM s) > 'ab'" db-types="MySQL" />
- <sql-case id="explain_by_mysql_source_test_case40" value="EXPLAIN SELECT s FROM t1 WHERE TRIM(TRAILING 'y' FROM s) > 'ab'" db-types="MySQL" />
<sql-case id="explain_by_mysql_source_test_case41" value="EXPLAIN SELECT test.fn(MIN(b)) as c FROM t1 GROUP BY a" db-types="MySQL" />
<sql-case id="explain_by_mysql_source_test_case42" value="EXPLAIN WITH cte AS ( SELECT alias1 . col_date AS field1 , alias1 . col_blob AS field2 , alias1 . pk AS field3 , alias1 . pk AS field4 FROM dd AS alias1 LEFT JOIN d AS alias2 ON alias1 . col_varchar_key = alias2 . col_varchar_key WHERE alias2 . pk != 0 OR alias2 . col_varchar_key >= 'v' ORDER BY field4 ) DELETE /*+ NO_MERGE(outrcte) */ outr2.* FROM d AS outr1 JOIN d AS outr2 ON ( outr1 . col_datetime_key = [...]
<sql-case id="explain_by_mysql_source_test_case43" value="EXPLAIN WITH cte AS ( SELECT alias1 . col_date AS field1 , alias2 . col_blob AS field2 FROM view_d AS alias1 LEFT JOIN view_dd AS alias2 ON alias1 . col_blob_key = alias2 . col_blob_key WHERE alias1 . col_varchar_key IS NULL AND alias2 . col_int_key > 6 AND alias2 . col_int_key <= ( 7 + 5 ) OR alias1 . col_blob_key >= 'a' ) DELETE /*+ MERGE(outrcte) */ FROM outr1.*, outr2.* USING d AS outr1 LEFT OUTE [...]