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 &gt; 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" />

Reply via email to