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 <=> 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
"192.168.1.101:9010"" db-types="Doris" />
<sql-case id="alter_system_drop_follower" value="ALTER SYSTEM DROP
FOLLOWER "192.168.1.100:9010"" db-types="Doris" />
<sql-case id="alter_system_drop_observer" value="ALTER SYSTEM DROP
OBSERVER "192.168.1.101:9010"" 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 'SHOW
TABLES FROM no_such_schema'" 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 'SHOW
TABLES FROM no_such_schema'" 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 & ?" 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 << ?"
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 <=> 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,
"abc", 17, "ab", 10]')" db-types="MySQL" />
+ <sql-case id="select_member_of" value="SELECT 'ab' MEMBER OF('[23,
"abc", 17, "ab", 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
<< (_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[*]?(@=="ss")' FROM tb_content_json"
db-types="PostgreSQL,openGauss" />
<sql-case id="select_with_jsonb_path_predicate_check" value="SELECT
content_json::jsonb@@'$.keyword[*]=="ss"' 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 <= nvl(END_TIME, sysdate) - INTERVAL ?
HOUR AND t.STATUS = 'FAILURE'" db-types="Oracle"/>