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 17d82b5a3fa Add more test cases on Doris SQL parser (#37668)
17d82b5a3fa is described below

commit 17d82b5a3fa23644096e6bf6fddc2e73e31ea3c9
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Jan 7 12:46:50 2026 +0800

    Add more test cases on Doris SQL parser (#37668)
    
    * Add more test cases on Doris SQL parser
    
    * Add more test cases on Doris SQL parser
---
 .../dal/repair.xml => case/dal/replication.xml}    |  9 +++--
 .../parser/src/main/resources/case/dcl/grant.xml   | 26 ++++++++++++++
 .../parser/src/main/resources/case/dcl/revoke.xml  | 26 ++++++++++++++
 .../main/resources/case/dml/select-expression.xml  | 12 +++++++
 .../parser/src/main/resources/case/dml/select.xml  | 32 +++++++++++++++++
 .../src/main/resources/sql/supported/dal/alter.xml |  4 +++
 .../resources/sql/supported/dal/cache-index.xml    |  2 +-
 .../resources/sql/supported/dal/check-table.xml    |  8 ++---
 .../src/main/resources/sql/supported/dal/flush.xml | 12 +++----
 .../main/resources/sql/supported/dal/optimize.xml  |  2 +-
 .../main/resources/sql/supported/dal/repair.xml    |  2 +-
 .../src/main/resources/sql/supported/dal/reset.xml | 14 ++++----
 .../src/main/resources/sql/supported/dal/show.xml  | 40 +++++++++++-----------
 .../resources/sql/supported/dal/use-database.xml   |  2 +-
 .../resources/sql/supported/dcl/grant-user.xml     | 26 ++++++++++++++
 .../resources/sql/supported/dcl/revoke-user.xml    | 26 ++++++++++++++
 .../sql/supported/ddl/create-database.xml          |  2 +-
 .../resources/sql/supported/ddl/create-view.xml    |  2 +-
 .../resources/sql/supported/ddl/drop-database.xml  |  2 +-
 .../main/resources/sql/supported/ddl/drop-view.xml |  2 +-
 .../main/resources/sql/supported/ddl/prepared.xml  | 16 ++++-----
 .../main/resources/sql/supported/ddl/truncate.xml  |  2 +-
 .../sql/supported/dml/select-expression.xml        | 11 +++---
 .../sql/supported/dml/select-special-function.xml  |  4 +--
 .../main/resources/sql/supported/dml/select.xml    | 10 +++---
 25 files changed, 227 insertions(+), 67 deletions(-)

diff --git a/test/it/parser/src/main/resources/sql/supported/dal/repair.xml 
b/test/it/parser/src/main/resources/case/dal/replication.xml
similarity index 68%
copy from test/it/parser/src/main/resources/sql/supported/dal/repair.xml
copy to test/it/parser/src/main/resources/case/dal/replication.xml
index 91d3a716fd3..41893d57542 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/repair.xml
+++ b/test/it/parser/src/main/resources/case/dal/replication.xml
@@ -16,6 +16,9 @@
   ~ limitations under the License.
   -->
 
-<sql-cases>
-    <sql-case id="repair_table" value="REPAIR TABLE table1,table2" 
db-types="MySQL" />
-</sql-cases>
+<sql-parser-test-cases>
+    <change-replication-source-to 
sql-case-id="change_replication_source_to_doris" />
+    <change-replication-source-to 
sql-case-id="change_replication_ignore_server_ids_doris"/>
+    <change-replication-source-to 
sql-case-id="change_master_ignore_server_ids_doris"/>
+    <change-replication-source-to sql-case-id="change_master_basic_doris"/>
+</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dcl/grant.xml 
b/test/it/parser/src/main/resources/case/dcl/grant.xml
index aeacaf58586..ac739f8f2b1 100644
--- a/test/it/parser/src/main/resources/case/dcl/grant.xml
+++ b/test/it/parser/src/main/resources/case/dcl/grant.xml
@@ -276,4 +276,30 @@
     <grant sql-case-id="grant_execute_on_xml_schema_collection" />
     <grant sql-case-id="grant_usage_on_client_master_key" />
     <grant sql-case-id="grant_usage_on_column_encryption_key" />
+    <grant sql-case-id="grant_usage_doris" />
+    <grant sql-case-id="grant_index_doris" />
+    <grant sql-case-id="grant_references_doris" />
+    <grant sql-case-id="grant_alter_doris" />
+    <grant sql-case-id="grant_drop_doris" />
+    <grant sql-case-id="grant_execute_doris" />
+    <grant sql-case-id="grant_reload_doris" />
+    <grant sql-case-id="grant_shutdown_doris" />
+    <grant sql-case-id="grant_process_doris" />
+    <grant sql-case-id="grant_file_doris" />
+    <grant sql-case-id="grant_show_databases_doris" />
+    <grant sql-case-id="grant_super_doris" />
+    <grant sql-case-id="grant_create_tmp_tables_doris" />
+    <grant sql-case-id="grant_lock_tables_doris" />
+    <grant sql-case-id="grant_replication_slave_doris" />
+    <grant sql-case-id="grant_replication_client_doris" />
+    <grant sql-case-id="grant_create_view_doris" />
+    <grant sql-case-id="grant_show_view_doris" />
+    <grant sql-case-id="grant_create_routine_doris" />
+    <grant sql-case-id="grant_alter_routine_doris" />
+    <grant sql-case-id="grant_create_user_doris" />
+    <grant sql-case-id="grant_trigger_doris" />
+    <grant sql-case-id="grant_event_doris" />
+    <grant sql-case-id="grant_create_tablespace_doris" />
+    <grant sql-case-id="grant_create_role_privilege_doris" />
+    <grant sql-case-id="grant_drop_role_privilege_doris" />
 </sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dcl/revoke.xml 
b/test/it/parser/src/main/resources/case/dcl/revoke.xml
index 45838df3afb..3c5c27a9a76 100644
--- a/test/it/parser/src/main/resources/case/dcl/revoke.xml
+++ b/test/it/parser/src/main/resources/case/dcl/revoke.xml
@@ -235,4 +235,30 @@
     <revoke sql-case-id="revoke_grant_option_on_procedure_from_user" />
     <revoke sql-case-id="revoke_alter_execute_on_procedure_from_user" />
     <revoke sql-case-id="revoke_grant_option_on_procedure_from_role" />
+    <revoke sql-case-id="revoke_usage_doris" />
+    <revoke sql-case-id="revoke_index_doris" />
+    <revoke sql-case-id="revoke_references_doris" />
+    <revoke sql-case-id="revoke_alter_doris" />
+    <revoke sql-case-id="revoke_drop_doris" />
+    <revoke sql-case-id="revoke_execute_doris" />
+    <revoke sql-case-id="revoke_reload_doris" />
+    <revoke sql-case-id="revoke_shutdown_doris" />
+    <revoke sql-case-id="revoke_process_doris" />
+    <revoke sql-case-id="revoke_file_doris" />
+    <revoke sql-case-id="revoke_show_databases_doris" />
+    <revoke sql-case-id="revoke_super_doris" />
+    <revoke sql-case-id="revoke_create_tmp_tables_doris" />
+    <revoke sql-case-id="revoke_lock_tables_doris" />
+    <revoke sql-case-id="revoke_replication_slave_doris" />
+    <revoke sql-case-id="revoke_replication_client_doris" />
+    <revoke sql-case-id="revoke_create_view_doris" />
+    <revoke sql-case-id="revoke_show_view_doris" />
+    <revoke sql-case-id="revoke_create_routine_doris" />
+    <revoke sql-case-id="revoke_alter_routine_doris" />
+    <revoke sql-case-id="revoke_create_user_doris" />
+    <revoke sql-case-id="revoke_trigger_doris" />
+    <revoke sql-case-id="revoke_event_doris" />
+    <revoke sql-case-id="revoke_create_tablespace_doris" />
+    <revoke sql-case-id="revoke_create_role_privilege_doris" />
+    <revoke sql-case-id="revoke_drop_role_privilege_doris" />
 </sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dml/select-expression.xml 
b/test/it/parser/src/main/resources/case/dml/select-expression.xml
index a46a75008af..d1f0b949451 100644
--- a/test/it/parser/src/main/resources/case/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-expression.xml
@@ -2420,6 +2420,18 @@
         </projections>
     </select>
 
+    <select sql-case-id="select_safe_equal">
+        <projections start-index="7" stop-index="13">
+            <expression-projection text="1 &lt;=&gt; 1" start-index="7" 
stop-index="13" />
+        </projections>
+    </select>
+
+    <select sql-case-id="select_string_concat_with_double_bar">
+        <projections start-index="7" stop-index="16">
+            <expression-projection text="'a' || 'b'" start-index="7" 
stop-index="16" />
+        </projections>
+    </select>
+
     <select sql-case-id="select_with_abs_function">
         <from>
             <simple-table name="t_order" start-index="19" stop-index="25" />
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 d6ca3578e50..c7895e4a2c2 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -9884,6 +9884,38 @@
         </from>
     </select>
 
+    <select sql-case-id="select_with_force_index_for_order_by">
+        <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">
+                <index-hint origin-text="FORCE INDEX FOR ORDER BY (idx1)" 
start-index="17" stop-index="47">
+                    <hint-index-name name="idx1" start-index="43" 
stop-index="46" />
+                </index-hint>
+            </simple-table>
+        </from>
+        <order-by>
+            <column-item name="id" start-index="58" stop-index="59" />
+        </order-by>
+    </select>
+
+    <select sql-case-id="select_with_force_index_for_group_by">
+        <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">
+                <index-hint origin-text="FORCE INDEX FOR GROUP BY (idx1)" 
start-index="17" stop-index="47">
+                    <hint-index-name name="idx1" start-index="43" 
stop-index="46" />
+                </index-hint>
+            </simple-table>
+        </from>
+        <group-by>
+            <column-item name="id" start-index="58" stop-index="59" />
+        </group-by>
+    </select>
+
     <select sql-case-id="select_with_reserved_word_with_table_ref">
         <projections start-index="7" stop-index="19">
             <column-projection name="condition" start-index="7" 
stop-index="19" >
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/alter.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/alter.xml
index af36fb0734c..5182c3cf8e4 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/alter.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/alter.xml
@@ -31,4 +31,8 @@
     <sql-case id="alter_system_add_observer" value="ALTER SYSTEM ADD OBSERVER 
&quot;192.168.1.101:9010&quot;" db-types="Doris" />
     <sql-case id="alter_system_drop_follower" value="ALTER SYSTEM DROP 
FOLLOWER &quot;192.168.1.100:9010&quot;" db-types="Doris" />
     <sql-case id="alter_system_drop_observer" value="ALTER SYSTEM DROP 
OBSERVER &quot;192.168.1.101:9010&quot;" db-types="Doris" />
+    <sql-case id="change_replication_source_to_doris" value="CHANGE 
REPLICATION SOURCE TO SOURCE_USER = 'plug_user', SOURCE_PASSWORD = 'plug_user', 
SOURCE_RETRY_COUNT = 0" db-types="Doris" />
+    <sql-case id="change_replication_ignore_server_ids_doris" value="CHANGE 
REPLICATION SOURCE TO IGNORE_SERVER_IDS = ()" db-types="Doris"/>
+    <sql-case id="change_master_ignore_server_ids_doris" value="CHANGE MASTER 
TO IGNORE_SERVER_IDS = ()" db-types="Doris"/>
+    <sql-case id="change_master_basic_doris" value="CHANGE MASTER TO 
MASTER_HOST='127.0.0.1', MASTER_PORT=3306" db-types="Doris"/>
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dal/cache-index.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/cache-index.xml
index d80b9c8ce02..817c1fb4e70 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/cache-index.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/cache-index.xml
@@ -17,7 +17,7 @@
   -->
 
 <sql-cases>
-    <sql-case id="cache_index_with_in" value="cache index t1,t2 in default" 
db-types="MySQL" />
+    <sql-case id="cache_index_with_in" value="cache index t1,t2 in default" 
db-types="MySQL,Doris" />
     <sql-case id="cache_index_single_table" value="CACHE INDEX t_order IN 
hot_cache_index" db-types="MySQL" />
     <sql-case id="cache_index_multiple_table" value="CACHE INDEX t_order, 
t_user IN hot_cache_index" db-types="MySQL" />
     <sql-case id="cache_index_single_table_multiple_index" value="CACHE INDEX 
t_order INDEX (idx_a, idx_b) IN hot_cache_index" db-types="MySQL" />
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml
index 04876b537ca..5e673b8fc11 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml
@@ -17,10 +17,10 @@
   -->
 
 <sql-cases>
-    <sql-case id="check_table" value="CHECK TABLE test_table FAST" 
db-types="MySQL" />
-    <sql-case id="check_tables" value="CHECK TABLE t_order,t_order_item" 
db-types="MySQL" />
-    <sql-case id="checksum_table" value="CHECKSUM TABLE t_order" 
db-types="MySQL" />
-    <sql-case id="checksum_table_quick" value="CHECKSUM TABLE t_order QUICK" 
db-types="MySQL" />
+    <sql-case id="check_table" value="CHECK TABLE test_table FAST" 
db-types="MySQL,Doris" />
+    <sql-case id="check_tables" value="CHECK TABLE t_order,t_order_item" 
db-types="MySQL,Doris" />
+    <sql-case id="checksum_table" value="CHECKSUM TABLE t_order" 
db-types="MySQL,Doris" />
+    <sql-case id="checksum_table_quick" value="CHECKSUM TABLE t_order QUICK" 
db-types="MySQL,Doris" />
     <sql-case id="checksum_table_extended" value="CHECKSUM TABLE t_order 
EXTENDED" db-types="MySQL" />
     <sql-case id="checksum_tables" value="CHECKSUM TABLES 
t_order,t_order_item" db-types="MySQL" />
     <sql-case id="checksum_tables_quick" value="CHECKSUM TABLES 
t_order,t_order_item QUICK" db-types="MySQL" />
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/flush.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/flush.xml
index 401e1b0ff3b..ca94f4bc8a1 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/flush.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/flush.xml
@@ -17,10 +17,10 @@
   -->
 
 <sql-cases>
-    <sql-case id="flush_privileges" value="FLUSH PRIVILEGES" db-types="MySQL" 
/>
-    <sql-case id="flush_tables" value="FLUSH TABLES" db-types="MySQL" />
-    <sql-case id="flush_tables_with_tables" value="FLUSH TABLES 
t_order,t_order_item" db-types="MySQL" />
-    <sql-case id="flush_table" value="FLUSH TABLE" db-types="MySQL" />
-    <sql-case id="flush_table_with_table" value="FLUSH TABLE 
t_order,t_order_item" db-types="MySQL" />
-    <sql-case id="flush_table_with_read_lock" value="FLUSH TABLE WITH READ 
LOCK" db-types="MySQL" />
+    <sql-case id="flush_privileges" value="FLUSH PRIVILEGES" 
db-types="MySQL,Doris" />
+    <sql-case id="flush_tables" value="FLUSH TABLES" db-types="MySQL,Doris" />
+    <sql-case id="flush_tables_with_tables" value="FLUSH TABLES 
t_order,t_order_item" db-types="MySQL,Doris" />
+    <sql-case id="flush_table" value="FLUSH TABLE" db-types="MySQL,Doris" />
+    <sql-case id="flush_table_with_table" value="FLUSH TABLE 
t_order,t_order_item" db-types="MySQL,Doris" />
+    <sql-case id="flush_table_with_read_lock" value="FLUSH TABLE WITH READ 
LOCK" db-types="MySQL,Doris" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/optimize.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/optimize.xml
index 5c5474730d9..94a203d03a0 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/optimize.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/optimize.xml
@@ -17,5 +17,5 @@
   -->
 
 <sql-cases>
-    <sql-case id="optimize_table" value="OPTIMIZE TABLE table1,table2" 
db-types="MySQL" />
+    <sql-case id="optimize_table" value="OPTIMIZE TABLE table1,table2" 
db-types="MySQL,Doris" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/repair.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/repair.xml
index 91d3a716fd3..34c15a109b7 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/repair.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/repair.xml
@@ -17,5 +17,5 @@
   -->
 
 <sql-cases>
-    <sql-case id="repair_table" value="REPAIR TABLE table1,table2" 
db-types="MySQL" />
+    <sql-case id="repair_table" value="REPAIR TABLE table1,table2" 
db-types="MySQL,Doris" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/reset.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/reset.xml
index 570517cd930..72adeb7cd1e 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/reset.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/reset.xml
@@ -19,16 +19,16 @@
 <sql-cases>
     <sql-case id="reset_all" value="RESET ALL" db-types="PostgreSQL,openGauss" 
/>
     <sql-case id="reset_timezone" value="RESET timezone" 
db-types="PostgreSQL,openGauss" />
-    <sql-case id="reset_master" value="RESET MASTER" db-types="MySQL" />
-    <sql-case id="reset_slave" value="RESET SLAVE" db-types="MySQL" />
+    <sql-case id="reset_master" value="RESET MASTER" db-types="MySQL,Doris" />
+    <sql-case id="reset_slave" value="RESET SLAVE" db-types="MySQL,Doris" />
     <sql-case id="reset_master_slave" value="RESET MASTER, SLAVE" 
db-types="MySQL" />
     <sql-case id="reset_master_with_binlog" value="RESET MASTER TO 10" 
db-types="MySQL" />
     <sql-case id="reset_slave_with_all" value="RESET SLAVE ALL" 
db-types="MySQL" />
     <sql-case id="reset_slave_with_channel" value="RESET SLAVE FOR CHANNEL 
'TEST_CHANNEL'" db-types="MySQL" />
     <sql-case id="reset_slave_with_all_channel" value="RESET SLAVE ALL FOR 
CHANNEL 'TEST_CHANNEL'" db-types="MySQL" />
-    <sql-case id="reset_query_cache" value="RESET QUERY CACHE" 
db-types="MySQL" />
-    <sql-case id="reset_replica" value="RESET REPLICA" db-types="MySQL" />
-    <sql-case id="reset_persist" value="RESET PERSIST" db-types="MySQL" />
-    <sql-case id="reset_persist_identifier" value="RESET PERSIST TEST_ID" 
db-types="MySQL" />
-    <sql-case id="reset_persist_exist_identifier" value="RESET PERSIST IF 
EXISTS TEST_ID" db-types="MySQL" />
+    <sql-case id="reset_query_cache" value="RESET QUERY CACHE" 
db-types="MySQL,Doris" />
+    <sql-case id="reset_replica" value="RESET REPLICA" db-types="MySQL,Doris" 
/>
+    <sql-case id="reset_persist" value="RESET PERSIST" db-types="MySQL,Doris" 
/>
+    <sql-case id="reset_persist_identifier" value="RESET PERSIST TEST_ID" 
db-types="MySQL,Doris" />
+    <sql-case id="reset_persist_exist_identifier" value="RESET PERSIST IF 
EXISTS TEST_ID" db-types="MySQL,Doris" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/show.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/show.xml
index b170e72f5f4..7f678fc8e95 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/show.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/show.xml
@@ -82,11 +82,11 @@
     <sql-case id="show_table_status_with_like_pattern" value="SHOW TABLE 
STATUS FROM `sharding_db` LIKE 't_order_%'" db-types="MySQL" />
     <sql-case id="show_table_status_with_where_expr" value="SHOW TABLE STATUS 
FROM `sharding_db` WHERE `name` = ?" db-types="MySQL" />
     <sql-case id="show_table_status_with_where_expr_no_parameter" value="SHOW 
TABLE STATUS FROM `sharding_db` WHERE `name` = 't_order'" db-types="MySQL" />
-    <sql-case id="show_global_status" value="SHOW GLOBAL STATUS" 
db-types="MySQL" />
-    <sql-case id="show_session_status" value="SHOW SESSION STATUS" 
db-types="MySQL" />
-    <sql-case id="show_status_with_like_pattern" value="SHOW GLOBAL STATUS 
LIKE 'Key%'" db-types="MySQL" />
-    <sql-case id="show_status_with_where_expr" value="SHOW GLOBAL STATUS WHERE 
variable_name = ?" db-types="MySQL" />
-    <sql-case id="show_status_with_where_expr_no_parameter" value="SHOW GLOBAL 
STATUS WHERE variable_name = 'open_tables'" db-types="MySQL" />
+    <sql-case id="show_global_status" value="SHOW GLOBAL STATUS" 
db-types="MySQL,Doris" />
+    <sql-case id="show_session_status" value="SHOW SESSION STATUS" 
db-types="MySQL,Doris" />
+    <sql-case id="show_status_with_like_pattern" value="SHOW GLOBAL STATUS 
LIKE 'Key%'" db-types="MySQL,Doris" />
+    <sql-case id="show_status_with_where_expr" value="SHOW GLOBAL STATUS WHERE 
variable_name = ?" db-types="MySQL,Doris" />
+    <sql-case id="show_status_with_where_expr_no_parameter" value="SHOW GLOBAL 
STATUS WHERE variable_name = 'open_tables'" db-types="MySQL,Doris" />
     <sql-case id="show_events" value="SHOW EVENTS" db-types="MySQL" />
     <sql-case id="show_events_from_schema" value="SHOW EVENTS FROM 
`sharding_db`" db-types="MySQL" />
     <sql-case id="show_events_in_schema" value="SHOW EVENTS IN `sharding_db`" 
db-types="MySQL" />
@@ -101,19 +101,19 @@
     <sql-case id="show_tables_with_like_pattern" value="SHOW TABLES FROM 
`sharding_db` LIKE 't_order_%'" db-types="MySQL,Doris" />
     <sql-case id="show_tables_with_where_expr" value="SHOW EXTENDED FULL 
TABLES FROM `sharding_db` WHERE `table_type` = ?" db-types="MySQL" />
     <sql-case id="show_tables_with_where_expr_no_parameter" value="SHOW 
EXTENDED FULL TABLES FROM `sharding_db` WHERE `table_type` = 'BASE TABLE'" 
db-types="MySQL" />
-    <sql-case id="show_character_set" value="SHOW CHARACTER SET" 
db-types="MySQL" />
-    <sql-case id="show_character_set_with_like_pattern" value="SHOW CHARACTER 
SET LIKE 'latin%'" db-types="MySQL" />
-    <sql-case id="show_character_set_with_where_expr" value="SHOW CHARACTER 
SET WHERE `Charset` = ?" db-types="MySQL" />
-    <sql-case id="show_character_set_with_where_expr_no_parameter" value="SHOW 
CHARACTER SET WHERE `Charset` = 'latin1'" db-types="MySQL" />
-    <sql-case id="show_collation" value="SHOW COLLATION" db-types="MySQL" />
-    <sql-case id="show_collation_with_like_pattern" value="SHOW COLLATION LIKE 
'latin%'" db-types="MySQL" />
-    <sql-case id="show_collation_with_where_expr" value="SHOW COLLATION WHERE 
Charset = ?" db-types="MySQL" />
-    <sql-case id="show_collation_with_where_expr_no_parameter" value="SHOW 
COLLATION WHERE Charset = 'latin1'" db-types="MySQL" />
-    <sql-case id="show_variables" value="SHOW VARIABLES" db-types="MySQL" />
-    <sql-case id="show_global_variables" value="SHOW GLOBAL VARIABLES" 
db-types="MySQL" />
-    <sql-case id="show_session_variables" value="SHOW SESSION VARIABLES" 
db-types="MySQL" />
-    <sql-case id="show_variables_with_like_pattern" value="SHOW SESSION 
VARIABLES LIKE '%size%'" db-types="MySQL" />
-    <sql-case id="show_variables_with_where_expr" value="SHOW GLOBAL VARIABLES 
WHERE variable_name = ?" db-types="MySQL" />
+    <sql-case id="show_character_set" value="SHOW CHARACTER SET" 
db-types="MySQL,Doris" />
+    <sql-case id="show_character_set_with_like_pattern" value="SHOW CHARACTER 
SET LIKE 'latin%'" db-types="MySQL,Doris" />
+    <sql-case id="show_character_set_with_where_expr" value="SHOW CHARACTER 
SET WHERE `Charset` = ?" db-types="MySQL,Doris" />
+    <sql-case id="show_character_set_with_where_expr_no_parameter" value="SHOW 
CHARACTER SET WHERE `Charset` = 'latin1'" db-types="MySQL,Doris" />
+    <sql-case id="show_collation" value="SHOW COLLATION" 
db-types="MySQL,Doris" />
+    <sql-case id="show_collation_with_like_pattern" value="SHOW COLLATION LIKE 
'latin%'" db-types="MySQL,Doris" />
+    <sql-case id="show_collation_with_where_expr" value="SHOW COLLATION WHERE 
Charset = ?" db-types="MySQL,Doris" />
+    <sql-case id="show_collation_with_where_expr_no_parameter" value="SHOW 
COLLATION WHERE Charset = 'latin1'" db-types="MySQL,Doris" />
+    <sql-case id="show_variables" value="SHOW VARIABLES" 
db-types="MySQL,Doris" />
+    <sql-case id="show_global_variables" value="SHOW GLOBAL VARIABLES" 
db-types="MySQL,Doris" />
+    <sql-case id="show_session_variables" value="SHOW SESSION VARIABLES" 
db-types="MySQL,Doris" />
+    <sql-case id="show_variables_with_like_pattern" value="SHOW SESSION 
VARIABLES LIKE '%size%'" db-types="MySQL,Doris" />
+    <sql-case id="show_variables_with_where_expr" value="SHOW GLOBAL VARIABLES 
WHERE variable_name = ?" db-types="MySQL,Doris" />
     <sql-case id="show_variables_with_where_expr_no_parameter" value="SHOW 
VARIABLES WHERE variable_name = 'max_join_size'" db-types="MySQL,Doris" />
     <sql-case id="show_binlog_events_with_log_name" value="SHOW BINLOG EVENTS 
IN 'log_name'" db-types="MySQL" />
     <sql-case id="show_binlog_events_with_from_pos" value="SHOW BINLOG EVENTS 
FROM 1" db-types="MySQL" />
@@ -122,8 +122,8 @@
     <sql-case id="show_engine_mutex" value="SHOW ENGINE INNODB MUTEX" 
db-types="MySQL" />
     <sql-case id="show_binary_logs" value="SHOW BINARY LOGS" db-types="MySQL" 
/>
     <sql-case id="show_master_logs" value="SHOW MASTER LOGS" db-types="MySQL" 
/>
-    <sql-case id="show_engines" value="SHOW ENGINES" db-types="MySQL" />
-    <sql-case id="show_storage_engines" value="SHOW STORAGE ENGINES" 
db-types="MySQL" />
+    <sql-case id="show_engines" value="SHOW ENGINES" db-types="MySQL,Doris" />
+    <sql-case id="show_storage_engines" value="SHOW STORAGE ENGINES" 
db-types="MySQL,Doris" />
     <sql-case id="show_create_database" value="SHOW CREATE DATABASE 
schema_name" db-types="MySQL" />
     <sql-case id="show_create_database_if_not_exist" value="SHOW CREATE 
DATABASE IF NOT EXISTS schema_name" db-types="MySQL" />
     <sql-case id="show_create_schema" value="SHOW CREATE SCHEMA schema_name" 
db-types="MySQL" />
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dal/use-database.xml 
b/test/it/parser/src/main/resources/sql/supported/dal/use-database.xml
index ad1ceb336b1..074fbccfdab 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/use-database.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/use-database.xml
@@ -17,6 +17,6 @@
   -->
 
 <sql-cases>
-    <sql-case id="use_database" value="USE test_db;" db-types="MySQL,Hive" />
+    <sql-case id="use_database" value="USE test_db;" 
db-types="MySQL,Hive,Doris" />
     <sql-case id="use_default" value="USE DEFAULT;" db-types="Hive" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dcl/grant-user.xml 
b/test/it/parser/src/main/resources/sql/supported/dcl/grant-user.xml
index 1c49b5d6c3c..7540d7cd38b 100644
--- a/test/it/parser/src/main/resources/sql/supported/dcl/grant-user.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dcl/grant-user.xml
@@ -152,4 +152,30 @@
     <sql-case id="grant_execute_on_xml_schema_collection" value="GRANT EXECUTE 
ON XML SCHEMA COLLECTION::schema1.collection1 TO user1" db-types="SQLServer" />
     <sql-case id="grant_usage_on_client_master_key" value="GRANT USAGE ON 
CLIENT_MASTER_KEY MyCMK1 to user1" db-types="openGauss" />
     <sql-case id="grant_usage_on_column_encryption_key" value="GRANT USAGE ON 
COLUMN_ENCRYPTION_KEY MyCEK1 to user1" db-types="openGauss" />
+    <sql-case id="grant_usage_doris" value="GRANT USAGE ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_index_doris" value="GRANT INDEX ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_references_doris" value="GRANT REFERENCES ON *.* TO 
user1" db-types="Doris" />
+    <sql-case id="grant_alter_doris" value="GRANT ALTER ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_drop_doris" value="GRANT DROP ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_execute_doris" value="GRANT EXECUTE ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_reload_doris" value="GRANT RELOAD ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_shutdown_doris" value="GRANT SHUTDOWN ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_process_doris" value="GRANT PROCESS ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_file_doris" value="GRANT FILE ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_show_databases_doris" value="GRANT SHOW DATABASES ON 
*.* TO user1" db-types="Doris" />
+    <sql-case id="grant_super_doris" value="GRANT SUPER ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_create_tmp_tables_doris" value="GRANT CREATE TEMPORARY 
TABLES ON *.* TO user1" db-types="Doris" />
+    <sql-case id="grant_lock_tables_doris" value="GRANT LOCK TABLES ON *.* TO 
user1" db-types="Doris" />
+    <sql-case id="grant_replication_slave_doris" value="GRANT REPLICATION 
SLAVE ON *.* TO user1" db-types="Doris" />
+    <sql-case id="grant_replication_client_doris" value="GRANT REPLICATION 
CLIENT ON *.* TO user1" db-types="Doris" />
+    <sql-case id="grant_create_view_doris" value="GRANT CREATE VIEW ON *.* TO 
user1" db-types="Doris" />
+    <sql-case id="grant_show_view_doris" value="GRANT SHOW VIEW ON *.* TO 
user1" db-types="Doris" />
+    <sql-case id="grant_create_routine_doris" value="GRANT CREATE ROUTINE ON 
*.* TO user1" db-types="Doris" />
+    <sql-case id="grant_alter_routine_doris" value="GRANT ALTER ROUTINE ON *.* 
TO user1" db-types="Doris" />
+    <sql-case id="grant_create_user_doris" value="GRANT CREATE USER ON *.* TO 
user1" db-types="Doris" />
+    <sql-case id="grant_trigger_doris" value="GRANT TRIGGER ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_event_doris" value="GRANT EVENT ON *.* TO user1" 
db-types="Doris" />
+    <sql-case id="grant_create_tablespace_doris" value="GRANT CREATE 
TABLESPACE ON *.* TO user1" db-types="Doris" />
+    <sql-case id="grant_create_role_privilege_doris" value="GRANT CREATE ROLE 
ON *.* TO user1" db-types="Doris" />
+    <sql-case id="grant_drop_role_privilege_doris" value="GRANT DROP ROLE ON 
*.* TO user1" db-types="Doris" />
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dcl/revoke-user.xml 
b/test/it/parser/src/main/resources/sql/supported/dcl/revoke-user.xml
index a43efdc8e38..3de18f94bbd 100644
--- a/test/it/parser/src/main/resources/sql/supported/dcl/revoke-user.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dcl/revoke-user.xml
@@ -132,4 +132,30 @@
     <sql-case id="revoke_grant_option_on_procedure_from_user" value="REVOKE IF 
EXISTS GRANT OPTION ON PROCEDURE rngp_db.rngp_proc FROM rngp_user" 
db-types="MySQL" />
     <sql-case id="revoke_alter_execute_on_procedure_from_user" value="REVOKE 
IF EXISTS ALTER ROUTINE, EXECUTE ON PROCEDURE rngp_db.rngp_proc FROM rngp_user" 
db-types="MySQL" />
     <sql-case id="revoke_grant_option_on_procedure_from_role" value="REVOKE IF 
EXISTS GRANT OPTION ON PROCEDURE rngp_db.rngp_proc FROM rngp_role" 
db-types="MySQL" />
+    <sql-case id="revoke_usage_doris" value="REVOKE USAGE ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_index_doris" value="REVOKE INDEX ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_references_doris" value="REVOKE REFERENCES ON *.* 
FROM user1" db-types="Doris" />
+    <sql-case id="revoke_alter_doris" value="REVOKE ALTER ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_drop_doris" value="REVOKE DROP ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_execute_doris" value="REVOKE EXECUTE ON *.* FROM 
user1" db-types="Doris" />
+    <sql-case id="revoke_reload_doris" value="REVOKE RELOAD ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_shutdown_doris" value="REVOKE SHUTDOWN ON *.* FROM 
user1" db-types="Doris" />
+    <sql-case id="revoke_process_doris" value="REVOKE PROCESS ON *.* FROM 
user1" db-types="Doris" />
+    <sql-case id="revoke_file_doris" value="REVOKE FILE ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_show_databases_doris" value="REVOKE SHOW DATABASES ON 
*.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_super_doris" value="REVOKE SUPER ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_create_tmp_tables_doris" value="REVOKE CREATE 
TEMPORARY TABLES ON *.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_lock_tables_doris" value="REVOKE LOCK TABLES ON *.* 
FROM user1" db-types="Doris" />
+    <sql-case id="revoke_replication_slave_doris" value="REVOKE REPLICATION 
SLAVE ON *.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_replication_client_doris" value="REVOKE REPLICATION 
CLIENT ON *.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_create_view_doris" value="REVOKE CREATE VIEW ON *.* 
FROM user1" db-types="Doris" />
+    <sql-case id="revoke_show_view_doris" value="REVOKE SHOW VIEW ON *.* FROM 
user1" db-types="Doris" />
+    <sql-case id="revoke_create_routine_doris" value="REVOKE CREATE ROUTINE ON 
*.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_alter_routine_doris" value="REVOKE ALTER ROUTINE ON 
*.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_create_user_doris" value="REVOKE CREATE USER ON *.* 
FROM user1" db-types="Doris" />
+    <sql-case id="revoke_trigger_doris" value="REVOKE TRIGGER ON *.* FROM 
user1" db-types="Doris" />
+    <sql-case id="revoke_event_doris" value="REVOKE EVENT ON *.* FROM user1" 
db-types="Doris" />
+    <sql-case id="revoke_create_tablespace_doris" value="REVOKE CREATE 
TABLESPACE ON *.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_create_role_privilege_doris" value="REVOKE CREATE 
ROLE ON *.* FROM user1" db-types="Doris" />
+    <sql-case id="revoke_drop_role_privilege_doris" value="REVOKE DROP ROLE ON 
*.* FROM user1" db-types="Doris" />
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/create-database.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/create-database.xml
index 090f169d4f5..94935cd4336 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-database.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-database.xml
@@ -18,7 +18,7 @@
 
 <sql-cases>
     <sql-case id="create_database" value="CREATE DATABASE lusiadas" 
db-types="PostgreSQL,openGauss,SQLServer" />
-    <sql-case id="create_database_with_back_quote" value="CREATE DATABASE 
`lusiadas`" db-types="MySQL" />
+    <sql-case id="create_database_with_back_quote" value="CREATE DATABASE 
`lusiadas`" db-types="MySQL,Doris" />
     <sql-case id="create_database_owner" value="CREATE DATABASE sales OWNER 
salesapp TABLESPACE salesspace" db-types="PostgreSQL,openGauss" />
     <sql-case id="create_database_with_location_and_encoding" value="CREATE 
DATABASE music2
         LC_COLLATE 'sv_SE.iso885915' LC_CTYPE 'sv_SE.iso885915'
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml
index 624a6aeacd3..bf648f93a22 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-view.xml
@@ -20,7 +20,7 @@
     <sql-case id="create_view_with_udf" value="CREATE VIEW V_T1_C AS SELECT 
DB29023216.TESTFUNC()" db-types="MySQL" />
     <sql-case id="create_view_with_udf_nested_fun" value="CREATE VIEW V_T1_C 
AS SELECT DB29023216.TESTFUNC(NOW())" db-types="MySQL" />
     <sql-case id="create_view_with_udf_arg" value="CREATE VIEW V_T1_C AS 
SELECT DB29023216.TESTFUNC(1,2,3,4)" db-types="MySQL" />
-    <sql-case id="create_view" value="CREATE VIEW comedies AS SELECT * FROM 
films WHERE kind = 'Comedy'" db-types="MySQL,PostgreSQL,openGauss,SQLServer" />
+    <sql-case id="create_view" value="CREATE VIEW comedies AS SELECT * FROM 
films WHERE kind = 'Comedy'" 
db-types="MySQL,PostgreSQL,openGauss,SQLServer,Doris" />
     <sql-case id="create_view_with_check_option" value="CREATE VIEW 
universal_comedies AS SELECT * FROM comedies WHERE classification = 'U' WITH 
LOCAL CHECK OPTION" db-types="PostgreSQL,openGauss" />
     <sql-case id="create_view_with_recursive" value="CREATE RECURSIVE VIEW 
public.nums_1_100 (n) AS VALUES (1) UNION ALL SELECT n+1 FROM nums_1_100 WHERE 
n = 100" db-types="PostgreSQL,openGauss" />
     <sql-case id="create_view_with_option" value="CREATE OR REPLACE TEMP view 
order_view (order_id,user_id) WITH (security_barrier=TRUE) AS SELECT * FROM 
t_order" db-types="PostgreSQL,openGauss" />
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 06842aae135..563281fe177 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
@@ -17,7 +17,7 @@
   -->
 
 <sql-cases>
-    <sql-case id="drop_database_if_exist" value="DROP DATABASE IF EXISTS 
database1" db-types="PostgreSQL,openGauss,SQLServer" />
+    <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_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" />
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 ebcde77c257..530042aaf24 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
@@ -17,7 +17,7 @@
   -->
 
 <sql-cases>
-    <sql-case id="drop_view" value="DROP VIEW kinds" db-types="PostgreSQL, 
openGauss, SQLServer, Oracle" />
+    <sql-case id="drop_view" value="DROP VIEW kinds" db-types="PostgreSQL, 
openGauss, SQLServer, Oracle,Doris" />
     <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" />
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/prepared.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/prepared.xml
index fec26040cf4..39806b0ab63 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/prepared.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/prepared.xml
@@ -17,12 +17,12 @@
   -->
 
 <sql-cases>
-    <sql-case id="prepare_with_drop" value="PREPARE drop_stmt FROM @drop" 
db-types="MySQL" />
-    <sql-case id="prepare_with_statement" value="PREPARE ps1 FROM &apos;SHOW 
TABLES FROM no_such_schema&apos;" db-types="MySQL" />
-    <sql-case id="prepare_with_var" value="PREPARE ps1 FROM @create" 
db-types="MySQL" />
-    <sql-case id="execute_with_statement" value="EXECUTE stmt" 
db-types="MySQL" />
-    <sql-case id="execute_with_statement_and_using" value="EXECUTE stmt USING 
@a, @b" db-types="MySQL" />
-    <sql-case id="deallocate_statement" value="DEALLOCATE PREPARE stmt1" 
db-types="MySQL" />
-    <sql-case id="drop_statement" value="DROP PREPARE stmt1" db-types="MySQL" 
/>
-    <sql-case id="execute_stmt_with_using" value="EXECUTE STMT USING @skip, 
@numrows" db-types="MySQL"/>
+    <sql-case id="prepare_with_drop" value="PREPARE drop_stmt FROM @drop" 
db-types="MySQL,Doris" />
+    <sql-case id="prepare_with_statement" value="PREPARE ps1 FROM &apos;SHOW 
TABLES FROM no_such_schema&apos;" db-types="MySQL,Doris" />
+    <sql-case id="prepare_with_var" value="PREPARE ps1 FROM @create" 
db-types="MySQL,Doris" />
+    <sql-case id="execute_with_statement" value="EXECUTE stmt" 
db-types="MySQL,Doris" />
+    <sql-case id="execute_with_statement_and_using" value="EXECUTE stmt USING 
@a, @b" db-types="MySQL,Doris" />
+    <sql-case id="deallocate_statement" value="DEALLOCATE PREPARE stmt1" 
db-types="MySQL,Doris" />
+    <sql-case id="drop_statement" value="DROP PREPARE stmt1" 
db-types="MySQL,Doris" />
+    <sql-case id="execute_stmt_with_using" value="EXECUTE STMT USING @skip, 
@numrows" db-types="MySQL,Doris"/>
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/truncate.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/truncate.xml
index 7e73561cc7b..e27439f8344 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/truncate.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/truncate.xml
@@ -17,7 +17,7 @@
   -->
 
 <sql-cases>
-    <sql-case id="truncate_table" value="TRUNCATE TABLE t_log" 
db-types="H2,MySQL,PostgreSQL,openGauss,Oracle,SQLServer" />
+    <sql-case id="truncate_table" value="TRUNCATE TABLE t_log" 
db-types="H2,MySQL,PostgreSQL,openGauss,Oracle,SQLServer,Doris" />
     <sql-case id="truncate_table_only" value="TRUNCATE TABLE ONLY t_log" 
db-types="PostgreSQL,openGauss" />
     <sql-case id="truncate_table_with_space" value="    TRUNCATE TABLE
         t_order    " db-types="MySQL" />
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
index 4c2aac549e8..60589306266 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
@@ -27,8 +27,8 @@
     <sql-case id="select_with_expression_for_postgresql" value="SELECT 
o.order_id + 1 * 2 as exp FROM t_order AS o ORDER BY o.order_id" 
db-types="PostgreSQL,openGauss" />
     <sql-case id="select_with_encode_function" value="SELECT 
ENCODE(test_datetype_col::bytea,'escape') FROM test_bytea" 
db-types="PostgreSQL,openGauss" />
     <sql-case id="select_with_date_function" value="SELECT 
DATE(i.creation_date) AS creation_date FROM `t_order_item` AS i ORDER BY 
DATE(i.creation_date) DESC" db-types="MySQL" />
-    <sql-case id="select_with_regexp" value="SELECT * FROM t_order_item t 
WHERE t.status REGEXP ? AND t.item_id IN (?, ?)" db-types="MySQL" />
-    <sql-case id="select_with_rlike" value="SELECT * FROM t_order_item t WHERE 
t.status RLIKE ? AND t.item_id IN (?, ?)" db-types="MySQL" />
+    <sql-case id="select_with_regexp" value="SELECT * FROM t_order_item t 
WHERE t.status REGEXP ? AND t.item_id IN (?, ?)" db-types="MySQL,Doris" />
+    <sql-case id="select_with_rlike" value="SELECT * FROM t_order_item t WHERE 
t.status RLIKE ? AND t.item_id IN (?, ?)" db-types="MySQL,Doris" />
     <sql-case id="select_with_case_expression" value="select t.*,o.item_id as 
item_id,(case when t.status = 'init' then '已启用' when t.status = 'failed' then 
'已停用' end) as stateName from t_order t left join t_order_item as o on 
o.order_id =t.order_id where t.order_id=1000 limit 1" db-types="MySQL,H2" />
     <sql-case id="select_where_with_expr_with_or" value="SELECT * FROM t_order 
WHERE t_order.order_id = ? OR ? = t_order.order_id" db-types="MySQL" />
     <sql-case id="select_where_with_expr_with_or_sign" value="SELECT * FROM 
t_order WHERE t_order.order_id = ? || ? = t_order.order_id" db-types="MySQL" />
@@ -52,7 +52,7 @@
     <sql-case id="select_where_with_predicate_with_like" value="SELECT * FROM 
t_order WHERE t_order.order_id NOT LIKE '1%' ESCAPE '$'" 
db-types="MySQL,Presto" />
     <sql-case id="select_where_with_predicate_with_not_like" value="SELECT * 
FROM t_order WHERE t_order.status NOT LIKE '1%'" 
db-types="MySQL,PostgreSQL,openGauss" />
     <sql-case id="select_where_with_predicate_with_regexp" value="SELECT * 
FROM t_order WHERE t_order.order_id NOT REGEXP '[123]'" db-types="MySQL,Presto" 
/>
-    <sql-case id="select_where_with_predicate_with_rlike" value="SELECT * FROM 
t_order WHERE t_order.order_id NOT RLIKE '[123]'" db-types="MySQL,Presto" />
+    <sql-case id="select_where_with_predicate_with_rlike" value="SELECT * FROM 
t_order WHERE t_order.order_id NOT RLIKE '[123]'" db-types="MySQL,Presto,Doris" 
/>
     <sql-case id="select_where_with_bit_expr_with_vertical_bar" value="SELECT 
* FROM t_order WHERE t_order.order_id | ?" db-types="MySQL" />
     <sql-case id="select_where_with_bit_expr_with_ampersand" value="SELECT * 
FROM t_order WHERE t_order.order_id &amp; ?" db-types="MySQL" />
     <sql-case id="select_where_with_bit_expr_with_signed_left_shift" 
value="SELECT * FROM t_order WHERE t_order.order_id &lt;&lt; ?" 
db-types="MySQL" />
@@ -102,7 +102,10 @@
     <sql-case id="select_with_regular_function" value="SELECT A(1) FROM 
t_order WHERE A(1) = 1 GROUP BY A(order_id) ORDER BY A(order_id)" 
db-types="MySQL,Oracle,SQLServer" />
     <sql-case id="select_with_regular_function_for_sql92" value="SELECT A(1) 
FROM t_order WHERE A(1) = 1" db-types="MySQL,Oracle,SQLServer,H2,SQL92" />
     <sql-case id="select_with_regular_function_utc_timestamp" value="SELECT 
TIMEDIFF(NOW(), UTC_TIMESTAMP())" db-types="MySQL" />
-    <sql-case id="select_with_collate_with_marker" value="SELECT * FROM 
t_order WHERE order_id COLLATE ?" db-types="MySQL,Presto" />
+    <sql-case id="select_with_collate_with_marker" value="SELECT * FROM 
t_order WHERE order_id COLLATE ?" db-types="MySQL,Presto,Doris" />
+
+    <sql-case id="select_safe_equal" value="SELECT 1 &lt;=&gt; 1" 
db-types="Doris" />
+    <sql-case id="select_string_concat_with_double_bar" value="SELECT 'a' || 
'b'" db-types="Doris" />
     <sql-case id="select_age_for_postgres" value="SELECT * FROM 
cypher('sharding_test_1', $$ CREATE (n) $$) as (a agtype)" 
db-types="PostgreSQL" />
     <sql-case id="select_datetime_expression" value="SELECT SYSTIMESTAMP AT 
TIME ZONE 'UTC' FROM DUAL;" db-types="Oracle" />
     <sql-case id="select_between_expression" value="SELECT item_id BETWEEN 1 
AND order_id, status FROM t_order_item;" db-types="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 fe7a1f3bf46..4cd7fe31227 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
@@ -39,7 +39,7 @@
     <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_with_trim_expr_from_expr_and_both" value="SELECT 
TRIM(BOTH `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,Presto" />
+    <sql-case id="select_values" value="SELECT VALUES(order_id) FROM t_order" 
db-types="MySQL,Presto,Doris" />
     <sql-case id="select_current_user_brackets" value="SELECT CURRENT_USER()" 
db-types="MySQL,Doris" />
     <sql-case id="select_extract_function" value="SELECT EXTRACT(YEAR FROM 
TIMESTAMP '2001-02-16 20:38:40')" db-types="PostgreSQL,openGauss" />
     <sql-case id="select_extract_function_week" value="SELECT EXTRACT(WEEK 
FROM TIMESTAMP '2001-02-16 20:38:40')" db-types="PostgreSQL,openGauss" />
@@ -212,7 +212,7 @@
     <sql-case id="select_round" value="SELECT ROUND(1.58)" db-types="MySQL" />
     <sql-case id="select_row_count" value="SELECT ROW_COUNT()" 
db-types="MySQL" />
     <sql-case id="select_md5" value="SELECT MD5('testing')" 
db-types="MySQL,Doris" />
-    <sql-case id="select_member_of" value="SELECT 'ab' MEMBER OF('[23, 
&quot;abc&quot;, 17, &quot;ab&quot;, 10]')" db-types="MySQL" />
+    <sql-case id="select_member_of" value="SELECT 'ab' MEMBER OF('[23, 
&quot;abc&quot;, 17, &quot;ab&quot;, 10]')" db-types="MySQL,Doris" />
     <sql-case id="select_microsecond" value="SELECT 
MICROSECOND('12:00:00.123456')" db-types="MySQL" />
     <sql-case id="select_mid" value="SELECT MID('foobarbar' from 4)" 
db-types="MySQL" />
     <sql-case id="select_minute" value="SELECT MINUTE('2008-02-03 10:05:03')" 
db-types="MySQL,Doris" />
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 da99f51a5ae..53c303f6d85 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
@@ -27,7 +27,7 @@
     <sql-case id="select_with_in" value="SELECT b, b IN ('20161213'), b in 
('20161213', 0) FROM t2" db-types="MySQL" />
     <sql-case id="select_with_st_geom_from_text" value="SELECT 
ST_GeomFromText('POINT(0 0)') IN (SELECT b FROM t1) AS result" db-types="MySQL" 
/>
     <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" />
+    <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_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" />
@@ -89,7 +89,7 @@
     <sql-case id="select_with_date_format_function" value="SELECT * FROM 
t_order WHERE DATE_FORMAT(current_date, '%Y-%m-%d') = '2019-12-18'" 
db-types="MySQL" />
     <sql-case id="select_with_spatial_function" value="SELECT * FROM t_order 
WHERE ST_DISTANCE_SPHERE(POINT(113.358772, 23.1273723), 
POINT(user_id,order_id)) != 0" db-types="MySQL" />
     <sql-case id="select_current_user" value="SELECT CURRENT_USER" 
db-types="PostgreSQL,openGauss" />
-    <sql-case id="select_with_match_against" value="SELECT * FROM t_order_item 
WHERE MATCH(t_order_item.description) AGAINST (? IN NATURAL LANGUAGE MODE) AND 
user_id = ?" db-types="MySQL" />
+    <sql-case id="select_with_match_against" value="SELECT * FROM t_order_item 
WHERE MATCH(t_order_item.description) AGAINST (? IN NATURAL LANGUAGE MODE) AND 
user_id = ?" db-types="MySQL,Doris" />
     <sql-case id="select_with_json_separator" value="select 
content_json->>'$.nation' as nation,content_json->>'$.title' as title from 
tb_content_json b where b.content_id=1" db-types="MySQL" />
     <sql-case id="select_with_json_value_return_type" value="SELECT * FROM 
t_order WHERE JSON_VALUE(items, '$.name' RETURNING VARCHAR(100)) = 'jack'" 
db-types="MySQL" />
     <sql-case id="select_with_convert_function1" value="SELECT 
CONVERT(SUBSTRING(content, 5) , SIGNED) AS signed_content FROM t_order WHERE 
order_id = 1" db-types="MySQL" />
@@ -118,8 +118,8 @@
     <sql-case id="select_with_jsonb_path_delete" value="SELECT 
content_json::jsonb#-'{title}' FROM tb_content_json" 
db-types="PostgreSQL,openGauss" />
     <sql-case id="select_with_jsonb_path_contain_any_value" value="SELECT 
content_json::jsonb @?'$.keyword[*]?(@==&quot;ss&quot;)' FROM tb_content_json" 
db-types="PostgreSQL,openGauss" />
     <sql-case id="select_with_jsonb_path_predicate_check" value="SELECT 
content_json::jsonb@@'$.keyword[*]==&quot;ss&quot;' FROM tb_content_json" 
db-types="PostgreSQL,openGauss" />
-    <sql-case id="select_with_assignment_operator" value="SELECT @rn := 1, 
@now_code := '' FROM t_order" db-types="MySQL" />
-    <sql-case id="select_with_assignment_operator_and_keyword" value="SELECT 
@KEY := '', @num := 123 FROM t_order" db-types="MySQL" />
+    <sql-case id="select_with_assignment_operator" value="SELECT @rn := 1, 
@now_code := '' FROM t_order" db-types="MySQL,Doris" />
+    <sql-case id="select_with_assignment_operator_and_keyword" value="SELECT 
@KEY := '', @num := 123 FROM t_order" db-types="MySQL,Doris" />
     <sql-case id="select_from_dual" value="SELECT 1 FROM DUAL" 
db-types="MySQL" />
     <sql-case id="select_with_cast_as_signed" value="SELECT 
user_id,CAST(order_id AS SIGNED) FROM t_order" db-types="MySQL" />
     <sql-case id="select_with_cast_as_unsigned" value="SELECT CAST(order_id AS 
UNSIGNED),user_id FROM t_order" db-types="MySQL" />
@@ -309,6 +309,8 @@
     <sql-case id="select_with_index_hints1" value="SELECT * FROM t1 USE INDEX 
(i1) IGNORE INDEX (i2) USE INDEX (i2);" db-types="MySQL,Doris"/>
     <sql-case id="select_with_index_hints2" value="SELECT * FROM t1 USE INDEX 
() IGNORE INDEX (i2) USE INDEX (i1) USE INDEX (i2);" db-types="MySQL,Doris"/>
     <sql-case id="select_with_index_hints3" value="SELECT * FROM t1 USE INDEX 
(i1,i2) IGNORE INDEX (i2);" db-types="MySQL,Doris"/>
+    <sql-case id="select_with_force_index_for_order_by" value="SELECT * FROM 
t1 FORCE INDEX FOR ORDER BY (idx1) ORDER BY id" db-types="MySQL,Doris" />
+    <sql-case id="select_with_force_index_for_group_by" value="SELECT * FROM 
t1 FORCE INDEX FOR GROUP BY (idx1) GROUP BY id" db-types="MySQL,Doris" />
     <sql-case id="select_with_reserved_word_with_table_ref" value="select 
xxx.condition from xxx" db-types="MySQL,Doris"/>
     <sql-case id="select_with_reserved_word" value="select describe from xxx" 
db-types="MySQL,Doris"/>
     <sql-case id="select_with_nvl_function_and_interval_hour" value="SELECT * 
FROM t_order t WHERE t.CREATE_TIME &lt;= nvl(END_TIME, sysdate) - INTERVAL ? 
HOUR AND t.STATUS = 'FAILURE'" db-types="Oracle"/>

Reply via email to