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 <[email protected]>
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 [...]