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="'{&quot;rule2&quot;:&quot;null2&quot;}', 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('[{&quot;name&quot;: 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('&quot;abc&quot;')" db-types="MySQL" />
     <sql-case id="select_json_valid" value="SELECT JSON_VALID('{&quot;a&quot;: 
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 
&lt;&lt; (_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 
&quot;2004-01-22 21:45:33&quot; 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" />


Reply via email to