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 08245cbe9bb Add SQL parser test cases for Doris (#37827)
08245cbe9bb is described below
commit 08245cbe9bbc4776f1691137b05b32a1f3d99bba
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jan 24 00:28:25 2026 +0800
Add SQL parser test cases for Doris (#37827)
---
.../src/main/resources/case/ddl/alter-table.xml | 4 ++++
.../src/main/resources/case/ddl/create-table.xml | 28 ++++++++++++++++++++++
.../resources/case/dml/select-special-function.xml | 17 +++++++++++++
.../resources/sql/supported/ddl/alter-table.xml | 1 +
.../resources/sql/supported/ddl/create-table.xml | 3 +++
.../sql/supported/dml/select-special-function.xml | 1 +
6 files changed, 54 insertions(+)
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 00ec61e3a7c..48e364dd440 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
@@ -2547,6 +2547,10 @@
<rename-table name="table2" start-index="26" stop-index="31" />
</alter-table>
+ <alter-table sql-case-id="alter_table_without_actions_doris">
+ <table name="t_order" start-index="12" stop-index="18" />
+ </alter-table>
+
<alter-table sql-case-id="alter_table_rename_column_doris">
<table name="example_table" start-index="12" stop-index="24" />
<rename-column start-index="26" stop-index="44">
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 cb75813d7aa..ab17b1eea0f 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
@@ -2143,6 +2143,34 @@
<comment text="'doris table comment'" start-index="52"
stop-index="72" />
</create-table-option>
</create-table>
+
+ <create-table sql-case-id="create_table_with_unique_constraint_doris"
db-types="Doris">
+ <table name="t_unique" start-index="13" stop-index="20" />
+ <column-definition type="INT" start-index="23" stop-index="28">
+ <column name="id" start-index="23" stop-index="24" />
+ </column-definition>
+ <constraint-definition start-index="31" stop-index="41">
+ <index-column name="id" start-index="39" stop-index="40" />
+ </constraint-definition>
+ </create-table>
+
+ <create-table sql-case-id="create_table_with_foreign_key_constraint_doris"
db-types="Doris">
+ <table name="t_fk" start-index="13" stop-index="16" />
+ <column-definition type="INT" start-index="19" stop-index="24">
+ <column name="id" start-index="19" stop-index="20" />
+ </column-definition>
+ <constraint-definition constraint-name="fk_order" start-index="27"
stop-index="88">
+ <referenced-table name="ref_table" start-index="75"
stop-index="83" />
+ </constraint-definition>
+ </create-table>
+
+ <create-table sql-case-id="create_table_with_inline_reference_doris"
db-types="Doris">
+ <table name="t_col_fk" start-index="13" stop-index="20" />
+ <column-definition type="INT" start-index="23" stop-index="53">
+ <column name="id" start-index="23" stop-index="24" />
+ <referenced-table name="ref_table" start-index="41"
stop-index="49" />
+ </column-definition>
+ </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"/>
diff --git
a/test/it/parser/src/main/resources/case/dml/select-special-function.xml
b/test/it/parser/src/main/resources/case/dml/select-special-function.xml
index 86d34369941..f580c85764c 100644
--- a/test/it/parser/src/main/resources/case/dml/select-special-function.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-special-function.xml
@@ -85,6 +85,23 @@
</projections>
</select>
+ <select sql-case-id="select_extract_function_doris">
+ <projections start-index="7" stop-index="37">
+ <expression-projection text="EXTRACT(YEAR FROM '2020-01-01')"
start-index="7" stop-index="37">
+ <expr>
+ <function function-name="EXTRACT" start-index="7"
stop-index="37" text="EXTRACT(YEAR FROM '2020-01-01')">
+ <parameter>
+ <literal-expression value="YEAR" start-index="15"
stop-index="18" />
+ </parameter>
+ <parameter>
+ <literal-expression value="2020-01-01"
start-index="25" stop-index="36" />
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ </projections>
+ </select>
+
<select sql-case-id="select_cast_as_year">
<projections start-index="7" stop-index="24">
<expression-projection text="CAST(-1.1 AS YEAR)" start-index="7"
stop-index="24">
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 d7d95999e22..2800a1a2d05 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
@@ -374,6 +374,7 @@
<sql-case id="alter_drop_tag_basic" value="ALTER TABLE test DROP TAG
tag1;" db-types="Hive" />
<sql-case id="alter_drop_tag_if_exists" value="ALTER TABLE test DROP TAG
IF EXISTS tag1;" db-types="Hive" />
<sql-case id="alter_table_rename_table_doris" value="ALTER TABLE table1
RENAME table2" db-types="Doris" />
+ <sql-case id="alter_table_without_actions_doris" value="ALTER TABLE
t_order" db-types="Doris" />
<sql-case id="alter_table_rename_column_doris" value="ALTER TABLE
example_table RENAME COLUMN c1 c2" db-types="Doris" />
<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" />
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 cd4e1ad7c5d..739a4a0e9bd 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
@@ -158,6 +158,9 @@
<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_unique_constraint_doris" value="CREATE
TABLE t_unique (id INT, UNIQUE (id))" db-types="Doris" />
+ <sql-case id="create_table_with_foreign_key_constraint_doris"
value="CREATE TABLE t_fk (id INT, CONSTRAINT fk_order FOREIGN KEY (id)
REFERENCES ref_table (id))" db-types="Doris" />
+ <sql-case id="create_table_with_inline_reference_doris" value="CREATE
TABLE t_col_fk (id INT REFERENCES ref_table(id))" 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/dml/select-special-function.xml
b/test/it/parser/src/main/resources/sql/supported/dml/select-special-function.xml
index b74f0fdb13e..d564de60849 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
@@ -45,6 +45,7 @@
<sql-case id="select_extract_function_week" value="SELECT EXTRACT(WEEK
FROM TIMESTAMP '2001-02-16 20:38:40')" db-types="PostgreSQL,openGauss" />
<sql-case id="select_extract_function_quarter" value="SELECT
EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40')"
db-types="PostgreSQL,openGauss" />
<sql-case id="select_extract_function_for_oracle" value="SELECT
EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40') FROM DUAL" db-types="Oracle"
/>
+ <sql-case id="select_extract_function_doris" value="SELECT EXTRACT(YEAR
FROM '2020-01-01')" db-types="Doris" />
<sql-case id="select_mod_function" value="SELECT MOD(order_id, 1) from
t_order" db-types="PostgreSQL,openGauss" />
<sql-case id="select_sys_xml_agg" value="SELECT
SYS_XMLAGG(SYS_XMLGEN(last_name)) XMLAGG FROM employees WHERE last_name LIKE
'R%' ORDER BY xmlagg;" db-types="Oracle" />
<sql-case id="select_set_function" value="SELECT customer_id,
SET(cust_address_ntab) address FROM customers_demo ORDER BY customer_id;"
db-types="Oracle" />