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 fb783769781 Add SQL parser test cases for Doris (#37782)
fb783769781 is described below
commit fb7837697817e6479cb27cd9a56d727fae9d4d82
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jan 20 01:41:14 2026 +0800
Add SQL parser test cases for Doris (#37782)
---
.../parser/src/main/resources/case/dal/explain.xml | 76 ++++++++++++++++++++++
.../src/main/resources/case/ddl/alter-table.xml | 75 +++++++++++++++++++++
.../main/resources/case/ddl/alter-tablespace.xml | 4 ++
.../src/main/resources/case/ddl/create-table.xml | 11 ++++
.../it/parser/src/main/resources/case/tcl/lock.xml | 1 +
.../main/resources/sql/supported/dal/explain.xml | 4 ++
.../resources/sql/supported/ddl/alter-table.xml | 9 +++
.../sql/supported/ddl/alter-tablespace.xml | 1 +
.../resources/sql/supported/ddl/create-table.xml | 1 +
.../src/main/resources/sql/supported/lcl/lock.xml | 1 +
10 files changed, 183 insertions(+)
diff --git a/test/it/parser/src/main/resources/case/dal/explain.xml
b/test/it/parser/src/main/resources/case/dal/explain.xml
index aa4a3263455..35978595476 100644
--- a/test/it/parser/src/main/resources/case/dal/explain.xml
+++ b/test/it/parser/src/main/resources/case/dal/explain.xml
@@ -80,6 +80,82 @@
</projections>
</select>
</explain>
+
+ <explain sql-case-id="explain_insert_doris" db-types="Doris">
+ <insert>
+ <table name="t_order" start-index="20" stop-index="26" />
+ <columns start-index="28" stop-index="46">
+ <column name="order_id" start-index="29" stop-index="36" />
+ <column name="user_id" start-index="39" stop-index="45" />
+ </columns>
+ <values>
+ <value>
+ <assignment-value>
+ <literal-expression value="1" start-index="56"
stop-index="56" />
+ </assignment-value>
+ <assignment-value>
+ <literal-expression value="1" start-index="59"
stop-index="59" />
+ </assignment-value>
+ </value>
+ </values>
+ </insert>
+ </explain>
+
+ <explain sql-case-id="explain_update_doris" db-types="Doris">
+ <update>
+ <table start-index="15" stop-index="21">
+ <simple-table name="t_order" start-index="15" stop-index="21"
/>
+ </table>
+ <set start-index="23" stop-index="39">
+ <assignment start-index="23" stop-index="39">
+ <column name="status" start-index="27" stop-index="32" />
+ <assignment-value>
+ <literal-expression value="ok" start-index="36"
stop-index="39" />
+ </assignment-value>
+ </assignment>
+ </set>
+ </update>
+ </explain>
+
+ <explain sql-case-id="explain_delete_doris" db-types="Doris">
+ <delete>
+ <table name="t_order" start-index="20" stop-index="26" />
+ <where start-index="28" stop-index="45" literal-stop-index="45">
+ <expr>
+ <binary-operation-expression start-index="34"
stop-index="45" literal-stop-index="45">
+ <left>
+ <column name="order_id" start-index="34"
stop-index="41" />
+ </left>
+ <operator>=</operator>
+ <right>
+ <literal-expression value="1" start-index="45"
stop-index="45" />
+ <parameter-marker-expression parameter-index="0"
start-index="45" stop-index="45" />
+ </right>
+ </binary-operation-expression>
+ </expr>
+ </where>
+ </delete>
+ </explain>
+
+ <explain sql-case-id="explain_replace_doris" db-types="Doris">
+ <replace>
+ <table name="t_order" start-index="21" stop-index="27" />
+ <columns start-index="31" stop-index="48">
+ <column name="order_id" start-index="31" stop-index="38" />
+ <column name="user_id" start-index="42" stop-index="48" />
+ </columns>
+ <values>
+ <value>
+ <assignment-value>
+ <literal-expression value="1" start-index="59"
stop-index="59" />
+ </assignment-value>
+ <assignment-value>
+ <literal-expression value="1" start-index="62"
stop-index="62" />
+ </assignment-value>
+ </value>
+ </values>
+ </replace>
+ </explain>
<explain sql-case-id="explain_update_without_condition">
<update>
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-table.xml
b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
index b7446949e18..456245c71d5 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-table.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
@@ -2601,4 +2601,79 @@
</column-definition>
</add-column>
</alter-table>
+
+ <alter-table sql-case-id="alter_table_add_check_constraint_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <add-constraint constraint-name="ck_order" start-index="24"
stop-index="63" />
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_drop_constraint_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_rename_index_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <rename-index>
+ <index-definition start-index="33" stop-index="39">
+ <index name="idx_old" />
+ </index-definition>
+ <rename-index-definition start-index="44" stop-index="50">
+ <index name="idx_new" />
+ </rename-index-definition>
+ </rename-index>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_with_algorithm_default_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <add-column>
+ <column-definition type="INT" start-index="31" stop-index="45">
+ <column name="col_alg_def" start-index="31" stop-index="41" />
+ </column-definition>
+ </add-column>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_with_algorithm_inplace_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <add-column>
+ <column-definition type="INT" start-index="31" stop-index="49">
+ <column name="col_alg_inplace" start-index="31"
stop-index="45" />
+ </column-definition>
+ </add-column>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_with_algorithm_copy_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <add-column>
+ <column-definition type="INT" start-index="31" stop-index="46">
+ <column name="col_alg_copy" start-index="31" stop-index="42" />
+ </column-definition>
+ </add-column>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_with_lock_default_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <add-column>
+ <column-definition type="INT" start-index="31" stop-index="50">
+ <column name="col_lock_default" start-index="31"
stop-index="46" />
+ </column-definition>
+ </add-column>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_with_lock_shared_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <add-column>
+ <column-definition type="INT" start-index="31" stop-index="49">
+ <column name="col_lock_shared" start-index="31"
stop-index="45" />
+ </column-definition>
+ </add-column>
+ </alter-table>
+
+ <alter-table sql-case-id="alter_table_with_lock_exclusive_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <add-column>
+ <column-definition type="INT" start-index="31" stop-index="52">
+ <column name="col_lock_exclusive" start-index="31"
stop-index="48" />
+ </column-definition>
+ </add-column>
+ </alter-table>
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-tablespace.xml
b/test/it/parser/src/main/resources/case/ddl/alter-tablespace.xml
index 4fc7771a57a..1c24657b155 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-tablespace.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-tablespace.xml
@@ -22,6 +22,10 @@
<rename start-index="31" stop-index="33" name="ts2" />
</alter-tablespace>
+ <alter-tablespace sql-case-id="alter_tablespace_ndb_add_datafile_doris"
db-types="Doris">
+ <tablespace start-index="17" stop-index="22" name="ts_ndb" />
+ </alter-tablespace>
+
<alter-tablespace sql-case-id="alter_tablespace_read_only">
<tablespace start-index="17" stop-index="19" name="ts1" />
</alter-tablespace>
diff --git a/test/it/parser/src/main/resources/case/ddl/create-table.xml
b/test/it/parser/src/main/resources/case/ddl/create-table.xml
index 2614d1f6047..cb75813d7aa 100644
--- a/test/it/parser/src/main/resources/case/ddl/create-table.xml
+++ b/test/it/parser/src/main/resources/case/ddl/create-table.xml
@@ -2133,6 +2133,17 @@
</select>
</create-table>
+ <create-table sql-case-id="create_table_with_comment_doris"
db-types="Doris">
+ <table name="t_comment" start-index="13" stop-index="21" />
+ <column-definition type="INT" start-index="24" stop-index="29">
+ <column name="id" start-index="24" stop-index="25" />
+ </column-definition>
+ <create-table-option start-index="32" stop-index="72">
+ <engine name="olap" start-index="32" stop-index="42" />
+ <comment text="'doris table comment'" start-index="52"
stop-index="72" />
+ </create-table-option>
+ </create-table>
+
<create-table sql-case-id="create_table_with_select_without_query"
db-types="Oracle">
<table name="t_order_new" start-index="13" stop-index="23"/>
</create-table>
diff --git a/test/it/parser/src/main/resources/case/tcl/lock.xml
b/test/it/parser/src/main/resources/case/tcl/lock.xml
index 3ed6cb7ee17..1a715eb979b 100644
--- a/test/it/parser/src/main/resources/case/tcl/lock.xml
+++ b/test/it/parser/src/main/resources/case/tcl/lock.xml
@@ -49,6 +49,7 @@
<table name="t1" alias="b" start-index="36" stop-index="42" />
</lock>
<lock sql-case-id="lock_instance_for_backup" />
+ <lock sql-case-id="lock_instance_for_backup_doris" />
<lock sql-case-id="lock_table_with_read_local">
<table name="t1" start-index="12" stop-index="13" />
</lock>
diff --git a/test/it/parser/src/main/resources/sql/supported/dal/explain.xml
b/test/it/parser/src/main/resources/sql/supported/dal/explain.xml
index 3eae921bab7..7f6f98765b8 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/explain.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/explain.xml
@@ -20,6 +20,10 @@
<sql-case id="explain_extended_select" value="explain extended select 10 %
7, 10 mod 7, 10 div 3" db-types="MySQL" />
<sql-case id="explain_partitions_select" value="explain partitions select
1" db-types="MySQL" />
<sql-case id="explain_select_constant_without_table" value="EXPLAIN SELECT
1 as a" db-types="PostgreSQL, openGauss, MySQL, SQLServer,Doris" />
+ <sql-case id="explain_insert_doris" value="EXPLAIN INSERT INTO t_order
(order_id, user_id) VALUES (1, 1)" db-types="Doris" />
+ <sql-case id="explain_update_doris" value="EXPLAIN UPDATE t_order SET
status = 'ok'" db-types="Doris" />
+ <sql-case id="explain_delete_doris" value="EXPLAIN DELETE FROM t_order
WHERE order_id = 1" db-types="Doris" />
+ <sql-case id="explain_replace_doris" value="EXPLAIN REPLACE INTO t_order
(order_id, user_id) VALUES (1, 1)" db-types="Doris" />
<sql-case id="explain_update_without_condition" value="EXPLAIN UPDATE
t_order SET status = 'finished'" db-types="PostgreSQL, openGauss, MySQL,
SQLServer" />
<sql-case id="explain_insert_without_parameters" value="EXPLAIN INSERT
INTO t_order (order_id, user_id, status) VALUES (1, 1, 'insert')"
db-types="PostgreSQL, openGauss, MySQL, SQLServer" />
<sql-case id="explain_delete_without_sharding_value" value="EXPLAIN DELETE
FROM t_order WHERE status='init'" db-types="PostgreSQL, openGauss, MySQL,
SQLServer" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
index 074037d55f6..07742db8cd3 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
@@ -378,4 +378,13 @@
<sql-case id="alter_table_rename_rollup" value="ALTER TABLE example_table
RENAME ROLLUP rollup1 rollup2" db-types="Doris" />
<sql-case id="alter_table_rename_partition" value="ALTER TABLE
example_table RENAME PARTITION partition1 partition2" db-types="Doris" />
<sql-case id="alter_table_with_algorithm_lock_doris" value="ALTER TABLE
t_order ADD COLUMN col_alg INT, ALGORITHM=INSTANT, LOCK=NONE" db-types="Doris"
/>
+ <sql-case id="alter_table_add_check_constraint_doris" value="ALTER TABLE
t_order ADD CONSTRAINT ck_order CHECK (order_id > 0)" db-types="Doris" />
+ <sql-case id="alter_table_drop_constraint_doris" value="ALTER TABLE
t_order DROP CONSTRAINT ck_order" db-types="Doris" />
+ <sql-case id="alter_table_rename_index_doris" value="ALTER TABLE t_order
RENAME INDEX idx_old TO idx_new" db-types="Doris" />
+ <sql-case id="alter_table_with_algorithm_default_doris" value="ALTER TABLE
t_order ADD COLUMN col_alg_def INT, ALGORITHM=DEFAULT" db-types="Doris" />
+ <sql-case id="alter_table_with_algorithm_inplace_doris" value="ALTER TABLE
t_order ADD COLUMN col_alg_inplace INT, ALGORITHM=INPLACE" db-types="Doris" />
+ <sql-case id="alter_table_with_algorithm_copy_doris" value="ALTER TABLE
t_order ADD COLUMN col_alg_copy INT, ALGORITHM=COPY" db-types="Doris" />
+ <sql-case id="alter_table_with_lock_default_doris" value="ALTER TABLE
t_order ADD COLUMN col_lock_default INT, LOCK=DEFAULT" db-types="Doris" />
+ <sql-case id="alter_table_with_lock_shared_doris" value="ALTER TABLE
t_order ADD COLUMN col_lock_shared INT, LOCK=SHARED" db-types="Doris" />
+ <sql-case id="alter_table_with_lock_exclusive_doris" value="ALTER TABLE
t_order ADD COLUMN col_lock_exclusive INT, LOCK=EXCLUSIVE" db-types="Doris" />
</sql-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-tablespace.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-tablespace.xml
index 3994759776c..e3cad5ea710 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-tablespace.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-tablespace.xml
@@ -18,6 +18,7 @@
<sql-cases>
<sql-case id="alter_tablespace_rename" value="ALTER TABLESPACE ts1 RENAME
TO ts2" db-types="MySQL,Oracle,Doris" />
+ <sql-case id="alter_tablespace_ndb_add_datafile_doris" value="ALTER
TABLESPACE ts_ndb ADD DATAFILE 'ts1.ibd' INITIAL_SIZE 100M ENGINE ndb"
db-types="Doris" />
<sql-case id="alter_tablespace_read_only" value="ALTER TABLESPACE ts1 READ
ONLY" db-types="Oracle" />
<sql-case id="alter_tablespace_read_write" value="ALTER TABLESPACE sales_1
READ WRITE" db-types="Oracle" />
<sql-case id="alter_tablespace_add_datafile" value="ALTER TABLESPACE ts1
ADD DATAFILE" db-types="Oracle" />
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml
index f05367f91ec..cd4e1ad7c5d 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml
@@ -157,6 +157,7 @@
<sql-case id="create_table_with_negative_data_type" value="CREATE TABLE
T(COL1 NUMBER, COL2 NUMBER(3), COL3 NUMBER(3,2), COL4 NUMBER(6,-2))"
db-types="Oracle" />
<sql-case id="create_table_with_ref_data_type" value="CREATE TABLE
location_table (location_number NUMBER, building REF warehouse_typ SCOPE IS
warehouse_table);" db-types="Oracle" />
<sql-case id="create_table_with_select" value="CREATE TABLE t_order_new AS
SELECT * FROM t_order" db-types="Doris"/>
+ <sql-case id="create_table_with_comment_doris" value="CREATE TABLE
t_comment (id INT) ENGINE=olap COMMENT 'doris table comment'" db-types="Doris"
/>
<sql-case id="create_table_with_select_without_query" value="CREATE TABLE
t_order_new AS SELECT * FROM t_order" db-types="Oracle"/>
<sql-case id="create_table_organization_index_parallel_with_select"
value="CREATE TABLE admin_iot3(i PRIMARY KEY, j, k, l) ORGANIZATION INDEX
PARALLEL AS SELECT * FROM hr.jobs" db-types="Oracle" />
<sql-case id="create_table_partition_by_range" value="CREATE TABLE
costs_demo (prod_id NUMBER(6), time_id DATE, unit_cost NUMBER(10,2), unit_price
NUMBER(10,2))
diff --git a/test/it/parser/src/main/resources/sql/supported/lcl/lock.xml
b/test/it/parser/src/main/resources/sql/supported/lcl/lock.xml
index 12549780725..473095965dc 100644
--- a/test/it/parser/src/main/resources/sql/supported/lcl/lock.xml
+++ b/test/it/parser/src/main/resources/sql/supported/lcl/lock.xml
@@ -25,6 +25,7 @@
<sql-case id="lock_table_with_write" value="lock tables t1 WRITE"
db-types="MySQL,Doris" />
<sql-case id="lock_table_with_multi_table" value="lock tables t1 write, t1
as a read, t1 as b read" db-types="MySQL,Doris" />
<sql-case id="lock_instance_for_backup" value="LOCK INSTANCE FOR BACKUP"
db-types="MySQL" />
+ <sql-case id="lock_instance_for_backup_doris" value="LOCK INSTANCE FOR
BACKUP" db-types="Doris" />
<sql-case id="lock_table_with_read_local" value="LOCK TABLES t1 READ
LOCAL" db-types="MySQL" />
<sql-case id="lock_table_with_alias" value="LOCK TABLES t1 READ, t1 as
TableAlias READ" db-types="MySQL,Doris" />
<sql-case id="lock_table_with_only" value="LOCK TABLE ONLY lock_tbl1;"
db-types="PostgreSQL" />