This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 7bc37642c81 Add SQL parser test cases for MySQL (#37833)
7bc37642c81 is described below
commit 7bc37642c817391093b96ae21f98a2713b195e9e
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jan 25 13:58:10 2026 +0800
Add SQL parser test cases for MySQL (#37833)
* Add SQL parser test cases for MySQL
* Add SQL parser test cases for MySQL
---
.../main/resources/case/dal/start-stop-slave.xml | 2 +
.../src/main/resources/case/ddl/alter-database.xml | 1 +
.../src/main/resources/case/ddl/alter-function.xml | 1 +
.../main/resources/case/ddl/alter-procedure.xml | 1 +
.../src/main/resources/case/ddl/drop-function.xml | 1 +
.../src/main/resources/case/ddl/drop-procedure.xml | 1 +
.../{dal/start-stop-slave.xml => ddl/event.xml} | 5 +-
.../start-stop-slave.xml => ddl/logfile-group.xml} | 6 +-
.../parser/src/main/resources/case/dml/insert.xml | 15 ++++
.../resources/case/dml/select-special-function.xml | 90 ++++++++++++++++++++++
.../src/main/resources/case/dml/select-window.xml | 13 ++++
.../parser/src/main/resources/case/dml/select.xml | 41 ++++++++++
.../sql/supported/dal/start-stop-slave.xml | 2 +
.../resources/sql/supported/ddl/alter-database.xml | 1 +
.../resources/sql/supported/ddl/alter-function.xml | 1 +
.../sql/supported/ddl/alter-procedure.xml | 1 +
.../resources/sql/supported/ddl/alter-server.xml | 2 +-
.../resources/sql/supported/ddl/create-server.xml | 2 +-
.../resources/sql/supported/ddl/drop-database.xml | 2 +-
.../resources/sql/supported/ddl/drop-function.xml | 1 +
.../resources/sql/supported/ddl/drop-procedure.xml | 1 +
.../resources/sql/supported/ddl/drop-server.xml | 2 +-
.../resources/sql/supported/ddl/drop-trigger.xml | 2 +-
.../main/resources/sql/supported/ddl/drop-view.xml | 2 +-
.../supported/ddl/{create-server.xml => event.xml} | 3 +-
.../ddl/{create-server.xml => logfile-group.xml} | 4 +-
.../main/resources/sql/supported/dml/insert.xml | 1 +
.../sql/supported/dml/select-special-function.xml | 4 +
.../resources/sql/supported/dml/select-window.xml | 1 +
.../main/resources/sql/supported/dml/select.xml | 3 +
30 files changed, 198 insertions(+), 14 deletions(-)
diff --git a/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
b/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
index 4565102be5a..d226201cb22 100644
--- a/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
+++ b/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
@@ -20,4 +20,6 @@
<common sql-case-id="start_slave_doris" />
<common sql-case-id="stop_slave_doris" />
<common sql-case-id="start_replica_doris" />
+ <common sql-case-id="start_slave_mysql" />
+ <common sql-case-id="stop_slave_mysql" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-database.xml
b/test/it/parser/src/main/resources/case/ddl/alter-database.xml
index 2702412a0ec..fba0c237234 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-database.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-database.xml
@@ -17,6 +17,7 @@
-->
<sql-parser-test-cases>
+ <alter-database sql-case-id="alter_database_mysql_simple" />
<alter-database sql-case-id="alter_database_enable_block_change_tracking"
/>
<alter-database
sql-case-id="alter_database_add_logffile_group_size_m_blocksize_reuse" />
<alter-database
sql-case-id="alter_database_add_logfile_group_size_k_reuse" />
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-function.xml
b/test/it/parser/src/main/resources/case/ddl/alter-function.xml
index 5c13861e2b2..1d8b5ba0e20 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-function.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-function.xml
@@ -25,4 +25,5 @@
<alter-function sql-case-id="alter_function_depend_on" />
<alter-function sql-case-id="alter_function_compile" />
<alter-function sql-case-id="alter_function_doris" />
+ <alter-function sql-case-id="alter_function_mysql" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-procedure.xml
b/test/it/parser/src/main/resources/case/ddl/alter-procedure.xml
index 13c267683be..b4711e071c3 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-procedure.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-procedure.xml
@@ -24,4 +24,5 @@
<alter-procedure sql-case-id="alter_procedure_set_param" />
<alter-procedure sql-case-id="alter_procedure_reset_param" />
<alter-procedure sql-case-id="alter_procedure_for_oracle" />
+ <alter-procedure sql-case-id="alter_procedure_mysql" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/drop-function.xml
b/test/it/parser/src/main/resources/case/ddl/drop-function.xml
index 966949ffd30..b406b897b02 100644
--- a/test/it/parser/src/main/resources/case/ddl/drop-function.xml
+++ b/test/it/parser/src/main/resources/case/ddl/drop-function.xml
@@ -26,4 +26,5 @@
<drop-function sql-case-id="drop_function_basic" />
<drop-function sql-case-id="drop_function_with_if_exists" />
<drop-function sql-case-id="drop_function_doris" />
+ <drop-function sql-case-id="drop_function_mysql" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/drop-procedure.xml
b/test/it/parser/src/main/resources/case/ddl/drop-procedure.xml
index e53db924262..1d001d8e83b 100644
--- a/test/it/parser/src/main/resources/case/ddl/drop-procedure.xml
+++ b/test/it/parser/src/main/resources/case/ddl/drop-procedure.xml
@@ -20,4 +20,5 @@
<drop-procedure sql-case-id="drop_procedure" />
<drop-procedure sql-case-id="drop_multiple_procedure" />
<drop-procedure sql-case-id="drop_procedure_for_oracle" />
+ <drop-procedure sql-case-id="drop_procedure_mysql" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
b/test/it/parser/src/main/resources/case/ddl/event.xml
similarity index 86%
copy from test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
copy to test/it/parser/src/main/resources/case/ddl/event.xml
index 4565102be5a..0471542bcfe 100644
--- a/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
+++ b/test/it/parser/src/main/resources/case/ddl/event.xml
@@ -17,7 +17,6 @@
-->
<sql-parser-test-cases>
- <common sql-case-id="start_slave_doris" />
- <common sql-case-id="stop_slave_doris" />
- <common sql-case-id="start_replica_doris" />
+ <common sql-case-id="alter_event_mysql" />
+ <common sql-case-id="drop_event_mysql" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
b/test/it/parser/src/main/resources/case/ddl/logfile-group.xml
similarity index 84%
copy from test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
copy to test/it/parser/src/main/resources/case/ddl/logfile-group.xml
index 4565102be5a..cfa3466d53b 100644
--- a/test/it/parser/src/main/resources/case/dal/start-stop-slave.xml
+++ b/test/it/parser/src/main/resources/case/ddl/logfile-group.xml
@@ -17,7 +17,7 @@
-->
<sql-parser-test-cases>
- <common sql-case-id="start_slave_doris" />
- <common sql-case-id="stop_slave_doris" />
- <common sql-case-id="start_replica_doris" />
+ <common sql-case-id="create_logfile_group_mysql" />
+ <common sql-case-id="alter_logfile_group_mysql" />
+ <common sql-case-id="drop_logfile_group_mysql" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dml/insert.xml
b/test/it/parser/src/main/resources/case/dml/insert.xml
index 9979e4e71e9..56ba45a3816 100644
--- a/test/it/parser/src/main/resources/case/dml/insert.xml
+++ b/test/it/parser/src/main/resources/case/dml/insert.xml
@@ -524,6 +524,21 @@
</assignment>
</on-duplicate-key-columns>
</insert>
+
+ <insert sql-case-id="insert_set_with_row_alias">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <set start-index="20" stop-index="44" literal-stop-index="44">
+ <assignment>
+ <column name="a" start-index="24" stop-index="24" />
+ <assignment-value>
+ <literal-expression value="1" literal-start-index="28"
literal-stop-index="28" />
+ </assignment-value>
+ </assignment>
+ </set>
+ <value-reference alias="new_alias" start-index="30" stop-index="44">
+ <derived-column name="a" start-index="43" stop-index="43" />
+ </value-reference>
+ </insert>
<insert sql-case-id="insert_with_underscore_charset">
<table name="t_order" start-index="12" stop-index="18" />
<columns start-index="19" stop-index="19" />
diff --git
a/test/it/parser/src/main/resources/case/dml/select-special-function.xml
b/test/it/parser/src/main/resources/case/dml/select-special-function.xml
index f580c85764c..b3a5cfcdd7f 100644
--- a/test/it/parser/src/main/resources/case/dml/select-special-function.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-special-function.xml
@@ -5472,4 +5472,94 @@
</expression-projection>
</projections>
</select>
+
+ <select sql-case-id="select_json_separator_mysql">
+ <from>
+ <simple-table name="t_order" start-index="44" stop-index="50" />
+ </from>
+ <projections start-index="7" stop-index="37">
+ <expression-projection text="JSON_SEPARATOR(order_id, '$.a')"
start-index="7" stop-index="37">
+ <expr>
+ <function function-name="JSON_SEPARATOR" start-index="7"
stop-index="37" text="JSON_SEPARATOR(order_id, '$.a')">
+ <parameter>
+ <column name="order_id" start-index="22"
stop-index="29" />
+ </parameter>
+ <parameter>
+ <literal-expression value="$.a" start-index="32"
stop-index="36" />
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ </projections>
+ </select>
+
+ <select sql-case-id="select_json_unquoted_separator_mysql">
+ <from>
+ <simple-table name="t_order" start-index="53" stop-index="59" />
+ </from>
+ <projections start-index="7" stop-index="46">
+ <expression-projection text="JSON_UNQUOTED_SEPARATOR(order_id,
'$.a')" start-index="7" stop-index="46">
+ <expr>
+ <function function-name="JSON_UNQUOTED_SEPARATOR"
start-index="7" stop-index="46" text="JSON_UNQUOTED_SEPARATOR(order_id, '$.a')">
+ <parameter>
+ <column name="order_id" start-index="31"
stop-index="38" />
+ </parameter>
+ <parameter>
+ <literal-expression value="$.a" start-index="41"
stop-index="45" />
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ </projections>
+ </select>
+
+ <select sql-case-id="select_timestampadd_mysql">
+ <from>
+ <simple-table name="t_order" start-index="45" stop-index="51" />
+ </from>
+ <projections start-index="7" stop-index="38">
+ <expression-projection text="TIMESTAMPADD(DAY, 1, order_date)"
start-index="7" stop-index="38">
+ <expr>
+ <function function-name="TIMESTAMPADD" start-index="7"
stop-index="38" text="TIMESTAMPADD(DAY, 1, order_date)">
+ <parameter>
+ <interval-unit-expression start-index="20"
stop-index="22">
+ <interval-unit>DAY</interval-unit>
+ </interval-unit-expression>
+ </parameter>
+ <parameter>
+ <literal-expression value="1" start-index="25"
stop-index="25" />
+ </parameter>
+ <parameter>
+ <column name="order_date" start-index="28"
stop-index="37" />
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ </projections>
+ </select>
+
+ <select sql-case-id="select_timestampdiff_mysql">
+ <from>
+ <simple-table name="t_order" start-index="56" stop-index="62" />
+ </from>
+ <projections start-index="7" stop-index="49">
+ <expression-projection text="TIMESTAMPDIFF(MINUTE, start_time,
end_time)" start-index="7" stop-index="49">
+ <expr>
+ <function function-name="TIMESTAMPDIFF" start-index="7"
stop-index="49" text="TIMESTAMPDIFF(MINUTE, start_time, end_time)">
+ <parameter>
+ <interval-unit-expression start-index="21"
stop-index="26">
+ <interval-unit>MINUTE</interval-unit>
+ </interval-unit-expression>
+ </parameter>
+ <parameter>
+ <column name="start_time" start-index="29"
stop-index="38" />
+ </parameter>
+ <parameter>
+ <column name="end_time" start-index="41"
stop-index="48" />
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ </projections>
+ </select>
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dml/select-window.xml
b/test/it/parser/src/main/resources/case/dml/select-window.xml
index b0ece1e7401..b134f9e78db 100644
--- a/test/it/parser/src/main/resources/case/dml/select-window.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-window.xml
@@ -139,4 +139,17 @@
<simple-table name="t_order" start-index="93" stop-index="99" />
</from>
</select>
+
+ <select sql-case-id="select_window_frame_mysql">
+ <projections start-index="7" stop-index="86">
+ <aggregation-projection type="SUM" expression="SUM(v) OVER
(PARTITION BY k ORDER BY v ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)"
start-index="7" stop-index="86">
+ <parameter>
+ <column name="v" start-index="11" stop-index="11" />
+ </parameter>
+ </aggregation-projection>
+ </projections>
+ <from>
+ <simple-table name="t_order" start-index="93" stop-index="99" />
+ </from>
+ </select>
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dml/select.xml
b/test/it/parser/src/main/resources/case/dml/select.xml
index deb0c36a4f0..d776de59616 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -466,6 +466,23 @@
</expression-projection>
</projections>
</select>
+
+ <select sql-case-id="select_collate_parameter_marker"
parameters="'utf8_general_ci'">
+ <from>
+ <simple-table name="t_order" start-index="27" stop-index="33" />
+ </from>
+ <projections start-index="7" stop-index="20">
+ <expression-projection text="name COLLATE ?" start-index="7"
stop-index="20">
+ <expr>
+ <collate-expression start-index="7" stop-index="20">
+ <collate-name>
+ <parameter-marker-expression parameter-index="0"
start-index="12" stop-index="20" />
+ </collate-name>
+ </collate-expression>
+ </expr>
+ </expression-projection>
+ </projections>
+ </select>
<select sql-case-id="select_with_hex_function">
<projections start-index="7" stop-index="50">
@@ -2639,6 +2656,30 @@
</where>
</select>
+ <select sql-case-id="select_with_index_hint_for_order_by_mysql">
+ <projections start-index="7" stop-index="7">
+ <shorthand-projection start-index="7" stop-index="7" />
+ </projections>
+ <from>
+ <simple-table name="t1" start-index="14" stop-index="15" />
+ </from>
+ <order-by>
+ <column-item name="col1" order-direction="ASC" start-index="54"
stop-index="57" />
+ </order-by>
+ </select>
+
+ <select sql-case-id="select_with_index_hint_for_group_by_mysql">
+ <projections start-index="7" stop-index="7">
+ <shorthand-projection start-index="7" stop-index="7" />
+ </projections>
+ <from>
+ <simple-table name="t1" start-index="14" stop-index="15" />
+ </from>
+ <group-by>
+ <column-item name="col1" order-direction="ASC" start-index="54"
stop-index="57" />
+ </group-by>
+ </select>
+
<select sql-case-id="select_equal_with_geography"
parameters="'{"rule2":"null2"}', 100, 200, 1, 2">
<from>
<simple-table name="t_order" start-index="14" stop-index="20" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/dal/start-stop-slave.xml
b/test/it/parser/src/main/resources/sql/supported/dal/start-stop-slave.xml
index ebc6156e781..d2e258ee859 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/start-stop-slave.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/start-stop-slave.xml
@@ -20,4 +20,6 @@
<sql-case id="start_slave_doris" value="START SLAVE SQL_THREAD USER='u'"
db-types="Doris" />
<sql-case id="stop_slave_doris" value="STOP SLAVE SQL_THREAD"
db-types="Doris" />
<sql-case id="start_replica_doris" value="START REPLICA SQL_THREAD"
db-types="Doris" />
+ <sql-case id="start_slave_mysql" value="START SLAVE SQL_THREAD"
db-types="MySQL" />
+ <sql-case id="stop_slave_mysql" value="STOP SLAVE SQL_THREAD"
db-types="MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml
index d1ccbb429dd..12fd6f3a434 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml
@@ -17,6 +17,7 @@
-->
<sql-cases>
+ <sql-case id="alter_database_mysql_simple" value="ALTER DATABASE test_db"
db-types="MySQL" />
<sql-case id="alter_database_enable_block_change_tracking" value="ALTER
DATABASE ENABLE BLOCK CHANGE TRACKING" db-types="Oracle" />
<sql-case id="alter_database_add_logffile_group_size_m_blocksize_reuse"
value="ALTER DATABASE orcl ADD LOGFILE GROUP 4
('/u01/logs/orcl/redo04a.log','/u01/logs/orcl/redo04b.log') SIZE 100M BLOCKSIZE
512 REUSE" db-types="Oracle" />
<sql-case id="alter_database_add_logfile_group_size_k_reuse" value="ALTER
DATABASE payable ADD LOGFILE GROUP 3 ('diska:log3.log', 'diskb:log3.log') SIZE
50K REUSE" db-types="Oracle" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-function.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-function.xml
index e059cbf198d..9adb5a85eff 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-function.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-function.xml
@@ -25,4 +25,5 @@
<sql-case id="alter_function_depend_on" value="ALTER FUNCTION
sqrt(integer) DEPENDS ON EXTENSION mathlib" db-types="PostgreSQL,openGauss" />
<sql-case id="alter_function_compile" value="ALTER FUNCTION oe.get_bal
COMPILE;" db-types="Oracle" />
<sql-case id="alter_function_doris" value="ALTER FUNCTION udf_add"
db-types="Doris" />
+ <sql-case id="alter_function_mysql" value="ALTER FUNCTION func1"
db-types="MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-procedure.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-procedure.xml
index a0d85fbe9b7..c5dbf3d23e3 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-procedure.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-procedure.xml
@@ -24,4 +24,5 @@
<sql-case id="alter_procedure_set_param" value="ALTER PROCEDURE
check_password(text) SET search_path = admin,pg_temp"
db-types="PostgreSQL,openGauss" />
<sql-case id="alter_procedure_reset_param" value="ALTER PROCEDURE
check_password(text) RESET search_path" db-types="PostgreSQL,openGauss" />
<sql-case id="alter_procedure_for_oracle" value="ALTER PROCEDURE
hr.remove_emp COMPILE" db-types="Oracle" />
+ <sql-case id="alter_procedure_mysql" value="ALTER PROCEDURE proc1"
db-types="MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-server.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-server.xml
index 3984ededc01..d08f796a5e0 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-server.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-server.xml
@@ -19,5 +19,5 @@
<sql-cases>
<sql-case id="alter_server_options" value="ALTER SERVER foo OPTIONS (host
'foo', dbname 'foodb');" db-types="PostgreSQL" />
<sql-case id="alter_server_version" value="ALTER SERVER foo VERSION
'8.4';" db-types="PostgreSQL" />
- <sql-case id="alter_server_doris_options" value="ALTER SERVER s0 OPTIONS
(USER 'doris_admin')" db-types="Doris" />
+ <sql-case id="alter_server_doris_options" value="ALTER SERVER s0 OPTIONS
(USER 'doris_admin')" db-types="Doris,MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
index 48415e8dfea..f3c75455e00 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
@@ -17,5 +17,5 @@
-->
<sql-cases>
- <sql-case id="create_server_doris_basic" value="CREATE SERVER s0 FOREIGN
DATA WRAPPER mysql OPTIONS (USER 'doris_user', HOST '127.0.0.1')"
db-types="Doris" />
+ <sql-case id="create_server_doris_basic" value="CREATE SERVER s0 FOREIGN
DATA WRAPPER mysql OPTIONS (USER 'doris_user', HOST '127.0.0.1')"
db-types="Doris,MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/drop-database.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/drop-database.xml
index 563281fe177..83029bc8f05 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/drop-database.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/drop-database.xml
@@ -18,7 +18,7 @@
<sql-cases>
<sql-case id="drop_database_if_exist" value="DROP DATABASE IF EXISTS
database1" db-types="PostgreSQL,openGauss,SQLServer,Doris" />
- <sql-case id="drop_database" value="DROP DATABASE database1"
db-types="PostgreSQL,openGauss,SQLServer" />
+ <sql-case id="drop_database" value="DROP DATABASE database1"
db-types="PostgreSQL,openGauss,SQLServer,MySQL" />
<sql-case id="drop_database_without_database_name" value="DROP DATABASE"
db-types="Oracle" />
<sql-case id="drop_database_including_backups_noprompt" value="DROP
DATABASE INCLUDING BACKUPS NOPROMPT;" db-types="Oracle" />
<sql-case id="drop_database_simple" value="DROP DATABASE test_db"
db-types="Hive" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/drop-function.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/drop-function.xml
index bcafb0004c4..6ced0945f48 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/drop-function.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/drop-function.xml
@@ -26,4 +26,5 @@
<sql-case id="drop_function_basic" value="DROP FUNCTION calculate_score;"
db-types="Hive" />
<sql-case id="drop_function_with_if_exists" value="DROP FUNCTION IF EXISTS
db1.calculate_score;" db-types="Hive" />
<sql-case id="drop_function_doris" value="DROP FUNCTION udf_drop"
db-types="Doris" />
+ <sql-case id="drop_function_mysql" value="DROP FUNCTION func1"
db-types="MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/drop-procedure.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/drop-procedure.xml
index f9446a1b36b..d86ccb9bb22 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/drop-procedure.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/drop-procedure.xml
@@ -20,4 +20,5 @@
<sql-case id="drop_procedure" value="DROP PROCEDURE do_db_maintenance()"
db-types="PostgreSQL,openGauss" />
<sql-case id="drop_multiple_procedure" value="DROP PROCEDURE
dbo.uspGetSalesbyMonth, dbo.uspUpdateSalesQuotes, dbo.uspGetSalesByYear;"
db-types="SQLServer" />
<sql-case id="drop_procedure_for_oracle" value="DROP PROCEDURE
hr.remove_emp" db-types="Oracle" />
+ <sql-case id="drop_procedure_mysql" value="DROP PROCEDURE proc1"
db-types="MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/drop-server.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/drop-server.xml
index 1a8f004c57c..fbd03cab114 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/drop-server.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/drop-server.xml
@@ -19,5 +19,5 @@
<sql-cases>
<sql-case id="drop_server" value="DROP SERVER s0"
db-types="PostgreSQL,openGauss" />
<sql-case id="drop_server_if_exists" value="DROP SERVER IF EXISTS s0"
db-types="PostgreSQL,openGauss" />
- <sql-case id="drop_server_doris" value="DROP SERVER server_doris"
db-types="Doris" />
+ <sql-case id="drop_server_doris" value="DROP SERVER server_doris"
db-types="Doris,MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/drop-trigger.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/drop-trigger.xml
index e0d4ee0fd14..01dd4e0ceda 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/drop-trigger.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/drop-trigger.xml
@@ -22,5 +22,5 @@
<sql-case id="drop_trigger_if_exists" value="DROP TRIGGER IF EXISTS foo ON
no_such_schema.bar" db-types="PostgreSQL" />
<sql-case id="drop_trigger_cascade" value="DROP TRIGGER foo ON
no_such_schema.bar CASCADE" db-types="PostgreSQL" />
<sql-case id="drop_trigger_restrict" value="DROP TRIGGER IF EXISTS foo ON
no_such_schema.bar RESTRICT" db-types="PostgreSQL" />
- <sql-case id="drop_trigger_doris_simple" value="DROP TRIGGER trg_test"
db-types="Doris" />
+ <sql-case id="drop_trigger_doris_simple" value="DROP TRIGGER trg_test"
db-types="Doris,MySQL" />
</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/drop-view.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/drop-view.xml
index 530042aaf24..814183d018e 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/drop-view.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/drop-view.xml
@@ -21,7 +21,7 @@
<sql-case id="drop_view_with_schemaname" value="DROP VIEW
schemaName.viewName;" db-types="Oracle" />
<sql-case id="drop_view_cascade_constraints" value="DROP VIEW
schemaName.viewName CASCADE CONSTRAINTS;" db-types="Oracle" />
<sql-case id="drop_view_cascade" value="DROP VIEW kinds, order_view
CASCADE" db-types="PostgreSQL, openGauss" />
- <sql-case id="drop_view_basic" value="DROP VIEW sales_summary"
db-types="Hive" />
+ <sql-case id="drop_view_basic" value="DROP VIEW sales_summary"
db-types="Hive,MySQL" />
<sql-case id="drop_view_with_if_exists" value="DROP VIEW IF EXISTS
sales_summary" db-types="Hive" />
<sql-case id="drop_view_with_db_name" value="DROP VIEW db1.sales_summary"
db-types="Hive,Presto" />
<sql-case id="drop_view_with_if_exists_and_db_name" value="DROP VIEW IF
EXISTS db1.sales_summary" db-types="Hive" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/event.xml
similarity index 81%
copy from test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
copy to test/it/parser/src/main/resources/sql/supported/ddl/event.xml
index 48415e8dfea..c1b825b0428 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/event.xml
@@ -17,5 +17,6 @@
-->
<sql-cases>
- <sql-case id="create_server_doris_basic" value="CREATE SERVER s0 FOREIGN
DATA WRAPPER mysql OPTIONS (USER 'doris_user', HOST '127.0.0.1')"
db-types="Doris" />
+ <sql-case id="alter_event_mysql" value="ALTER EVENT ev1 ON SCHEDULE EVERY
1 DAY DO SELECT 1" db-types="MySQL" />
+ <sql-case id="drop_event_mysql" value="DROP EVENT ev1" db-types="MySQL" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/logfile-group.xml
similarity index 71%
copy from test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
copy to test/it/parser/src/main/resources/sql/supported/ddl/logfile-group.xml
index 48415e8dfea..b4737b88fa4 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-server.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/logfile-group.xml
@@ -17,5 +17,7 @@
-->
<sql-cases>
- <sql-case id="create_server_doris_basic" value="CREATE SERVER s0 FOREIGN
DATA WRAPPER mysql OPTIONS (USER 'doris_user', HOST '127.0.0.1')"
db-types="Doris" />
+ <sql-case id="create_logfile_group_mysql" value="CREATE LOGFILE GROUP lg1
ADD UNDOFILE 'undo_1.dat' ENGINE=NDBCLUSTER" db-types="MySQL" />
+ <sql-case id="alter_logfile_group_mysql" value="ALTER LOGFILE GROUP lg1
ADD UNDOFILE 'undo_2.dat'" db-types="MySQL" />
+ <sql-case id="drop_logfile_group_mysql" value="DROP LOGFILE GROUP lg1"
db-types="MySQL" />
</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/insert.xml
b/test/it/parser/src/main/resources/sql/supported/dml/insert.xml
index 9f35038b22f..2d3aa5188a2 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/insert.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/insert.xml
@@ -44,6 +44,7 @@
<sql-case id="insert_without_columns_and_with_generate_key_column"
value="INSERT INTO t_order_item VALUES(?, ?, ?, 'insert', '2017-08-08')" />
<sql-case id="insert_without_columns_and_without_generate_key_column"
value="INSERT INTO t_order_item VALUES(?, ?, 'insert', '2017-08-08')" />
<sql-case id="insert_set_without_generate_key_column" value="INSERT INTO
t_order_item SET order_id = ?, user_id = ?, status = 'insert',
creation_date='2017-08-08'" db-types="MySQL" />
+ <sql-case id="insert_set_with_row_alias" value="INSERT INTO t_order SET a
= 1 AS new_alias(a)" db-types="MySQL" />
<sql-case id="insert_with_batch" value="INSERT INTO t_order (order_id,
user_id, status) VALUES (?, ?, ?), (?, ?, ?)" db-types="MySQL, SQLServer,
PostgreSQL,openGauss,Doris" />
<sql-case id="insert_with_batch_and_irregular_parameters" value="INSERT
INTO t_order (order_id, user_id, status) VALUES (?, 1, 'insert'), (?, ?, ?)"
db-types="MySQL, SQLServer, PostgreSQL,openGauss,Doris" />
<sql-case id="insert_with_batch_and_composite_expression" value="INSERT
INTO t_order (order_id, user_id, status) VALUES (?, ?, SUBSTR(?, 1)), (?, ?,
SUBSTR(?, 1))" db-types="H2,MySQL" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/dml/select-special-function.xml
b/test/it/parser/src/main/resources/sql/supported/dml/select-special-function.xml
index d564de60849..a68dfb3eb93 100644
---
a/test/it/parser/src/main/resources/sql/supported/dml/select-special-function.xml
+++
b/test/it/parser/src/main/resources/sql/supported/dml/select-special-function.xml
@@ -248,6 +248,10 @@
<sql-case id="select_json_storage_size" value="SELECT
JSON_STORAGE_SIZE(json_col) FROM t" db-types="MySQL" />
<sql-case id="select_json_table" value="SELECT * FROM
JSON_TABLE('[{"name": 2}]','$[*]' COLUMNS( name INT PATH '$.name'
error on empty)) as t" db-types="MySQL" />
<sql-case id="select_json_table_with_path" value="SELECT * FROM
JSON_TABLE('[]', '$[*]' COLUMNS (p NCHAR PATH '$.a')) AS t" db-types="MySQL" />
+ <sql-case id="select_json_separator_mysql" value="SELECT
JSON_SEPARATOR(order_id, '$.a') FROM t_order" db-types="MySQL" />
+ <sql-case id="select_json_unquoted_separator_mysql" value="SELECT
JSON_UNQUOTED_SEPARATOR(order_id, '$.a') FROM t_order" db-types="MySQL" />
+ <sql-case id="select_timestampadd_mysql" value="SELECT TIMESTAMPADD(DAY,
1, order_date) FROM t_order" db-types="MySQL" />
+ <sql-case id="select_timestampdiff_mysql" value="SELECT
TIMESTAMPDIFF(MINUTE, start_time, end_time) FROM t_order" db-types="MySQL" />
<sql-case id="select_json_type" value="SELECT JSON_TYPE('[1,2,3]')"
db-types="MySQL" />
<sql-case id="select_json_unquote" value="SELECT
JSON_UNQUOTE('"abc"')" db-types="MySQL" />
<sql-case id="select_json_valid" value="SELECT JSON_VALID('{"a":
1}')" db-types="MySQL" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml
b/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml
index b84769827f5..7b928ce5a0c 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml
@@ -23,4 +23,5 @@
<sql-case id="select_window_first_value_doris" value="SELECT
FIRST_VALUE(v) OVER (PARTITION BY k ORDER BY v) FROM t_order" db-types="Doris"
/>
<sql-case id="select_window_last_value_doris" value="SELECT LAST_VALUE(v)
OVER (PARTITION BY k ORDER BY v ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT
ROW) FROM t_order" db-types="Doris" />
<sql-case id="select_window_frame_doris" value="SELECT SUM(v) OVER
(PARTITION BY k ORDER BY v ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM
t_order" db-types="Doris" />
+ <sql-case id="select_window_frame_mysql" value="SELECT SUM(v) OVER
(PARTITION BY k ORDER BY v ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM
t_order" db-types="MySQL" />
</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/select.xml
b/test/it/parser/src/main/resources/sql/supported/dml/select.xml
index 17b5e7acd81..6e3432ad139 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select.xml
@@ -30,6 +30,7 @@
<sql-case id="select_with_st_aswkb_st_geom_form_text" value="SELECT
ST_AsWKB(ST_GeomFromText('POINT(0 0)')) IN (SELECT b FROM t1) AS result"
db-types="MySQL" />
<sql-case id="select_null_in_subquery" value="SELECT NULL IN(SELECT (f1
between 0 and 1) FROM (SELECT f1 FROM t WHERE (@b:=NULL) - f2) as dt)"
db-types="MySQL,Doris" />
<sql-case id="select_with_collate" value="SELECT NAME_CONST('var',
'value') COLLATE latin1_general_cs" db-types="MySQL" />
+ <sql-case id="select_collate_parameter_marker" value="SELECT name COLLATE
? FROM t_order" db-types="MySQL" case-types="PLACEHOLDER" />
<sql-case id="select_with_hex_function" value="SELECT HEX(_binary 0x0003
<< (_binary 0x38 | 0x38))" db-types="MySQL" />
<sql-case id="select_distinct_with_grouping_function" value="SELECT
DISTINCT f1 FROM t1 GROUP BY f1 WITH ROLLUP ORDER BY f1,
ANY_VALUE(GROUPING(f1))" db-types="MySQL" />
<sql-case id="select_convert_function1" value="SELECT CONVERT(TIMESTAMP
"2004-01-22 21:45:33" USING latin1)" db-types="MySQL" />
@@ -77,6 +78,8 @@
<sql-case id="select_keyword_table_name_with_square_brackets"
value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id
AND o.order_id = i.order_id JOIN [select] c ON o.status = c.status WHERE
o.user_id IN (?, ?) AND o.order_id BETWEEN ? AND ? AND c.status = ? ORDER BY
i.item_id" db-types="SQLServer" />
<sql-case id="select_alias_as_keyword" value="SELECT length.item_id
password FROM t_order_item length where length.item_id = ? "
db-types="MySQL,H2,SQLServer,Oracle" />
<sql-case id="select_with_force_index_join" value="SELECT i.* FROM t_order
o FORCE INDEX(order_index) JOIN t_order_item i ON o.order_id=i.order_id WHERE
o.order_id = ?" db-types="MySQL,Doris" />
+ <sql-case id="select_with_index_hint_for_order_by_mysql" value="SELECT *
FROM t1 USE INDEX FOR ORDER BY (i1) ORDER BY col1" db-types="MySQL" />
+ <sql-case id="select_with_index_hint_for_group_by_mysql" value="SELECT *
FROM t1 USE INDEX FOR GROUP BY (i1) GROUP BY col1" db-types="MySQL" />
<sql-case id="select_equal_with_geography" value="SELECT * FROM t_order
WHERE rule = ?::jsonb AND
start_point=ST_GeographyFromText('SRID=4326;POINT('||?||' '||?||')') AND
user_id = ? AND order_id = ?" db-types="PostgreSQL,openGauss" />
<sql-case id="select_in_with_geography" value="SELECT * FROM t_order WHERE
rule IN (?::jsonb, ?::jsonb) AND
start_point=ST_GeographyFromText('SRID=4326;POINT('||?||' '||?||')') AND
user_id = ? AND order_id = ?" db-types="PostgreSQL,openGauss" />
<sql-case id="select_between_with_geography" value="SELECT * FROM t_order
WHERE rule BETWEEN ?::jsonb AND ?::jsonb AND
start_point=ST_GeographyFromText('SRID=4326;POINT('||?||' '||?||')') AND
order_id = ?" db-types="PostgreSQL,openGauss" />