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

commit e74bd66e9afa9e0d1756769f5f7df66f05ad6977
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Jan 7 18:23:05 2026 +0800

    Add more test cases on Doris SQL parser (#37673)
    
    * Refactor PropertiesBuilder
    
    * Add more test cases on Doris SQL parser
    
    * Add more test cases on Doris SQL parser
---
 .../parser/src/main/resources/case/dcl/grant.xml   |  2 +
 .../src/main/resources/case/ddl/create-table.xml   |  8 ++++
 .../src/main/resources/case/ddl/create-view.xml    | 16 +++++++
 .../src/main/resources/case/dml/select-into.xml    | 10 ++++
 .../main/resources/case/dml/select-pagination.xml  | 25 ++++++++++
 .../main/resources/case/dml/select-sub-query.xml   |  6 +--
 .../src/main/resources/case/dml/select-window.xml  | 13 +++++
 .../parser/src/main/resources/case/dml/select.xml  | 56 ++++++++++++++++++++++
 .../src/main/resources/sql/supported/dal/reset.xml |  8 ++--
 .../src/main/resources/sql/supported/dal/show.xml  | 10 ++--
 .../resources/sql/supported/dcl/grant-user.xml     |  1 +
 .../resources/sql/supported/ddl/create-table.xml   |  4 +-
 .../resources/sql/supported/ddl/create-view.xml    |  1 +
 .../main/resources/sql/supported/dml/handler.xml   |  4 +-
 .../main/resources/sql/supported/dml/import.xml    |  4 +-
 .../resources/sql/supported/dml/select-into.xml    |  1 +
 .../resources/sql/supported/dml/select-join.xml    |  4 +-
 .../sql/supported/dml/select-order-by.xml          |  2 +-
 .../sql/supported/dml/select-pagination.xml        |  2 +
 .../sql/supported/dml/select-sub-query.xml         | 10 ++--
 .../resources/sql/supported/dml/select-window.xml  |  1 +
 .../main/resources/sql/supported/dml/select.xml    |  7 ++-
 22 files changed, 168 insertions(+), 27 deletions(-)

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 ac739f8f2b1..023a61bb8cc 100644
--- a/test/it/parser/src/main/resources/case/dcl/grant.xml
+++ b/test/it/parser/src/main/resources/case/dcl/grant.xml
@@ -223,6 +223,8 @@
         <!--<table name="ds_0" start-index="24" stop-index="27" />-->
     </grant>
     
+    <grant sql-case-id="grant_all_on_database_doris" />
+    
     <grant sql-case-id="grant_view_definition_on_availability_group" />
     <grant sql-case-id="grant_take_ownership_on_availability_group" />
     <grant sql-case-id="grant_control_on_availability_group" />
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 9a141181864..2ced010ff1f 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
@@ -2061,6 +2061,14 @@
     
     <create-table sql-case-id="create_table_with_select">
         <table name="t_order_new" start-index="13" stop-index="23"/>
+        <select>
+            <projections start-index="35" stop-index="35">
+                <shorthand-projection start-index="35" stop-index="35" />
+            </projections>
+            <from>
+                <simple-table name="t_order" start-index="42" stop-index="48" 
/>
+            </from>
+        </select>
     </create-table>
     
     <create-table 
sql-case-id="create_table_organization_index_parallel_with_select">
diff --git a/test/it/parser/src/main/resources/case/ddl/create-view.xml 
b/test/it/parser/src/main/resources/case/ddl/create-view.xml
index 69556758a17..c6bee611eb3 100644
--- a/test/it/parser/src/main/resources/case/ddl/create-view.xml
+++ b/test/it/parser/src/main/resources/case/ddl/create-view.xml
@@ -94,6 +94,22 @@
             </where>
         </select>
     </create-view>
+
+    <create-view sql-case-id="create_view_with_columns_doris" 
view-definition="SELECT k1, k2 FROM example_table">
+        <view name="example_view" start-index="12" stop-index="23">
+            <column name="c1" start-index="26" stop-index="27" />
+            <column name="c2" start-index="30" stop-index="31" />
+        </view>
+        <select>
+            <projections start-index="44" stop-index="49">
+                <column-projection name="k1" start-index="44" stop-index="45" 
/>
+                <column-projection name="k2" start-index="48" stop-index="49" 
/>
+            </projections>
+            <from>
+                <simple-table name="example_table" start-index="56" 
stop-index="68" />
+            </from>
+        </select>
+    </create-view>
     
     <create-view sql-case-id="create_view_with_check_option" 
view-definition="SELECT * FROM comedies WHERE classification = 'U'">
         <view name="universal_comedies" start-index="12" stop-index="29" />
diff --git a/test/it/parser/src/main/resources/case/dml/select-into.xml 
b/test/it/parser/src/main/resources/case/dml/select-into.xml
index 09e6fe63091..5cce78d5eb2 100644
--- a/test/it/parser/src/main/resources/case/dml/select-into.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-into.xml
@@ -445,4 +445,14 @@
         </projections>
         <outfile start-index="36" stop-index="140" 
file-path="hdfs://path/to/result_" />
     </select>
+
+    <select sql-case-id="select_into_table_doris">
+        <from start-index="14" stop-index="20">
+            <simple-table name="t_order" start-index="14" stop-index="20" />
+        </from>
+        <projections distinct-row="false" start-index="7" stop-index="7">
+            <shorthand-projection start-index="7" stop-index="7" />
+        </projections>
+        <into-table name="t_backup" start-index="27" stop-index="34" />
+    </select>
 </sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/dml/select-pagination.xml 
b/test/it/parser/src/main/resources/case/dml/select-pagination.xml
index 6dd946bb74d..46c0648b8fc 100644
--- a/test/it/parser/src/main/resources/case/dml/select-pagination.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-pagination.xml
@@ -2097,6 +2097,31 @@
         </limit>
     </select>
 
+    <select sql-case-id="select_limit_only_doris">
+        <from>
+            <simple-table name="t_order" start-index="14" stop-index="20" />
+        </from>
+        <projections start-index="7" stop-index="7">
+            <shorthand-projection start-index="7" stop-index="7" />
+        </projections>
+        <limit start-index="22" stop-index="28">
+            <row-count value="5" start-index="28" stop-index="28" />
+        </limit>
+    </select>
+
+    <select sql-case-id="select_limit_with_params_doris" parameters="1, 2">
+        <from>
+            <simple-table name="t_order" start-index="14" stop-index="20" />
+        </from>
+        <projections start-index="7" stop-index="7">
+            <shorthand-projection start-index="7" stop-index="7" />
+        </projections>
+        <limit start-index="22" stop-index="31">
+            <row-count value="2" parameter-index="1" start-index="31" 
stop-index="31" />
+            <offset value="1" parameter-index="0" start-index="28" 
stop-index="28" />
+        </limit>
+    </select>
+
 <!--        <select 
sql-case-id="select_pagination_with_first_and_expr_value">-->
 <!--            <limit start-index="7" stop-index="17">-->
 <!--                <row-count value="1" start-index="13" stop-index="17"/>-->
diff --git a/test/it/parser/src/main/resources/case/dml/select-sub-query.xml 
b/test/it/parser/src/main/resources/case/dml/select-sub-query.xml
index 00a6df6bd89..414aa6f50bd 100644
--- a/test/it/parser/src/main/resources/case/dml/select-sub-query.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-sub-query.xml
@@ -335,8 +335,8 @@
     
     <select sql-case-id="select_with_exists_sub_query_with_project">
         <projections start-index="7" stop-index="36">
-            <expression-projection start-index="7" stop-index="36" 
text="EXISTS (SELECT 1 FROM t_order)" literal-text="EXISTS (SELECT 1 FROM 
t_order)">
-                <subquery start-index="15" stop-index="35">
+            <subquery-projection start-index="14" stop-index="36" text="EXISTS 
(SELECT 1 FROM t_order)" literal-text="EXISTS (SELECT 1 FROM t_order)">
+                <subquery>
                     <select>
                         <from>
                             <simple-table name="t_order" start-index="29" 
stop-index="35" />
@@ -346,7 +346,7 @@
                         </projections>
                     </select>
                 </subquery>
-            </expression-projection>
+            </subquery-projection>
         </projections>
     </select>
 
diff --git a/test/it/parser/src/main/resources/case/dml/select-window.xml 
b/test/it/parser/src/main/resources/case/dml/select-window.xml
index fe72a2869d5..ade7d269592 100644
--- a/test/it/parser/src/main/resources/case/dml/select-window.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-window.xml
@@ -92,4 +92,17 @@
             <simple-table name="t_order" start-index="53" stop-index="59" />
         </from>
     </select>
+
+    <select sql-case-id="select_window_frame_doris">
+        <projections start-index="7" stop-index="86">
+            <aggregation-projection type="SUM" expression="SUM(v) OVER 
(PARTITION BY k ORDER BY v ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)" 
start-index="7" stop-index="86">
+                <parameter>
+                    <column name="v" start-index="11" stop-index="11" />
+                </parameter>
+            </aggregation-projection>
+        </projections>
+        <from>
+            <simple-table name="t_order" start-index="93" stop-index="99" />
+        </from>
+    </select>
 </sql-parser-test-cases>
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 c7895e4a2c2..a710b34292f 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -9916,6 +9916,19 @@
         </group-by>
     </select>
 
+    <select sql-case-id="select_with_force_index_for_join">
+        <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 JOIN (idx1)" 
start-index="17" stop-index="43">
+                    <hint-index-name name="idx1" start-index="39" 
stop-index="42" />
+                </index-hint>
+            </simple-table>
+        </from>
+    </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" >
@@ -11878,4 +11891,47 @@
             </expression-projection>
         </projections>
     </select>
+
+    <select sql-case-id="select_true_literal_doris">
+        <projections start-index="7" stop-index="10">
+            <expression-projection text="true" start-index="7" stop-index="10">
+                <expr>
+                    <literal-expression value="true" start-index="7" 
stop-index="10" />
+                </expr>
+            </expression-projection>
+        </projections>
+    </select>
+
+    <select sql-case-id="select_false_literal_doris">
+        <projections start-index="7" stop-index="11">
+            <expression-projection text="false" start-index="7" 
stop-index="11">
+                <expr>
+                    <literal-expression value="false" start-index="7" 
stop-index="11" />
+                </expr>
+            </expression-projection>
+        </projections>
+    </select>
+
+    <select sql-case-id="select_null_literal_doris">
+        <projections start-index="7" stop-index="10">
+            <expression-projection text="null" start-index="7" stop-index="10">
+                <expr>
+                    <literal-expression value="null" start-index="7" 
stop-index="10" />
+                </expr>
+            </expression-projection>
+        </projections>
+    </select>
+
+    <select sql-case-id="select_from_dual_doris">
+        <projections start-index="7" stop-index="7">
+            <expression-projection text="1" start-index="7" stop-index="7">
+                <expr>
+                    <literal-expression value="1" start-index="7" 
stop-index="7" />
+                </expr>
+            </expression-projection>
+        </projections>
+        <from start-index="9" stop-index="17">
+            <simple-table name="DUAL" start-index="14" stop-index="17" />
+        </from>
+    </select>
 </sql-parser-test-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 72adeb7cd1e..16acfdf3b4b 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
@@ -22,10 +22,10 @@
     <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_master_with_binlog" value="RESET MASTER TO 10" 
db-types="MySQL,Doris" />
+    <sql-case id="reset_slave_with_all" value="RESET SLAVE ALL" 
db-types="MySQL,Doris" />
+    <sql-case id="reset_slave_with_channel" value="RESET SLAVE FOR CHANNEL 
'TEST_CHANNEL'" db-types="MySQL,Doris" />
+    <sql-case id="reset_slave_with_all_channel" value="RESET SLAVE ALL FOR 
CHANNEL 'TEST_CHANNEL'" db-types="MySQL,Doris" />
     <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" 
/>
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 7f678fc8e95..1c11624d74c 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
@@ -99,8 +99,8 @@
     <sql-case id="show_tables_from_schema" value="SHOW TABLES FROM 
`sharding_db`" db-types="MySQL" />
     <sql-case id="show_tables_in_schema" value="SHOW TABLES IN `sharding_db`" 
db-types="MySQL" />
     <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_tables_with_where_expr" value="SHOW EXTENDED FULL 
TABLES FROM `sharding_db` WHERE `table_type` = ?" db-types="MySQL,Doris" />
+    <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,Doris" />
     <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" />
@@ -141,10 +141,10 @@
     <sql-case id="show_profile" value="SHOW PROFILE LIMIT 1, 2" 
db-types="MySQL" />
     <sql-case id="show_profiles" value="SHOW PROFILES" db-types="MySQL" />
     <sql-case id="show_charset" value="SHOW CHARSET" db-types="MySQL" />
-    <sql-case id="show_warnings_limit" value="SHOW WARNINGS limit 1" 
db-types="MySQL" />
-    <sql-case id="show_warnings_count" value="SHOW COUNT(*) WARNINGS" 
db-types="MySQL" />
+    <sql-case id="show_warnings_limit" value="SHOW WARNINGS limit 1" 
db-types="MySQL,Doris" />
+    <sql-case id="show_warnings_count" value="SHOW COUNT(*) WARNINGS" 
db-types="MySQL,Doris" />
     <sql-case id="show_search_path" value="SHOW search_path;" 
db-types="PostgreSQL,openGauss" />
-    <sql-case id="show_errors" value="SHOW ERRORS;" db-types="Oracle"/>
+    <sql-case id="show_errors" value="SHOW ERRORS;" db-types="Oracle,Doris"/>
     <sql-case id="show_parameter_smtp_out_server" value="SHOW PARAMETER 
SMTP_OUT_SERVER" db-types="Oracle"/>
     <sql-case id="show_databases_basic" value="SHOW DATABASES;" 
db-types="Hive" />
     <sql-case id="show_schemas_basic" value="SHOW SCHEMAS;" db-types="Hive" />
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 7540d7cd38b..5884e70fbe1 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
@@ -101,6 +101,7 @@
     <sql-case id="grant_all_on_schema" value="GRANT ALL PRIVILEGES ON SCHEMA 
schema1 TO role1" db-types="PostgreSQL,openGauss" />
     <sql-case id="grant_all_on_schema_to_roles" value="GRANT ALL PRIVILEGES ON 
SCHEMA schema1 TO role1, role2" db-types="PostgreSQL,openGauss" />
     <sql-case id="grant_all_on_schema_to_current_user" value="GRANT ALL 
PRIVILEGES ON SCHEMA schema1 TO CURRENT_USER" db-types="PostgreSQL,openGauss" />
+    <sql-case id="grant_all_on_database_doris" value="GRANT ALL PRIVILEGES ON 
db1.* TO user1" db-types="Doris" />
     <sql-case id="grant_create_on_schema" value="GRANT CREATE ON SCHEMA 
schema1 TO role1" db-types="PostgreSQL,openGauss" />
     <sql-case id="grant_create_on_schemas" value="GRANT CREATE ON SCHEMA 
schema1, schema2 TO role1" db-types="PostgreSQL,openGauss" />
     <sql-case id="grant_all_on_tablespace" value="GRANT ALL PRIVILEGES ON 
TABLESPACE tablespace1 TO role1" db-types="PostgreSQL,openGauss" />
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 c2d2aba987a..07fc7b54909 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
@@ -23,7 +23,7 @@
     <sql-case id="create_table_with_backtick_engine_myisam" value="create 
table `t``1`(a int) engine=myisam" db-types="MySQL" />
     <sql-case id="create_table_with_backtick" value="CREATE TABLE ```t_order` 
(i int)" db-types="MySQL" />
     <sql-case id="create_table_column_with_backtick" value="create table 
`````t_o``r``d``e``r``` (```i` int)" db-types="MySQL" />
-    <sql-case id="create_table_with_like" value="CREATE TABLE t_log LIKE 
t_old_log" db-types="MySQL" />
+    <sql-case id="create_table_with_like" value="CREATE TABLE t_log LIKE 
t_old_log" db-types="MySQL,Doris" />
     <sql-case id="create_table" value="CREATE TABLE t_log(id int PRIMARY KEY, 
status varchar(10))" />
     <sql-case id="create_table_with_engin_charset" value="CREATE TABLE 
t_log(id int PRIMARY KEY, status varchar(10)) ENGINE=InnoDB DEFAULT 
CHARSET=utf8mb4" db-types="MySQL" />
     <sql-case id="create_table_with_keyword" value="CREATE TABLE t_log(id int 
PRIMARY KEY, status boolean)" db-types="PostgreSQL,openGauss" />
@@ -151,7 +151,7 @@
     <sql-case id="create_table_with_partition_less_than" value="CREATE TABLE 
t_sales (order_id INTEGER NOT NULL, goods_name CHAR(20) NOT NULL, sales_date 
DATE NOT NULL, sales_volume INTEGER, sales_store CHAR(20), PRIMARY KEY ( 
order_id )) PARTITION BY RANGE (sales_date) (PARTITION season1 VALUES LESS 
THAN('2023-04-01 00:00:00'),PARTITION season2 VALUES LESS THAN('2023-07-01 
00:00:00'),PARTITION season3 VALUES LESS THAN('2023-10-01 00:00:00'),PARTITION 
season4 VALUES LESS THAN(MAXVALUE))" [...]
     <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="Oracle"/>
+    <sql-case id="create_table_with_select" value="CREATE TABLE t_order_new AS 
SELECT * FROM t_order" db-types="Oracle,Doris"/>
     <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))
     PARTITION BY RANGE (time_id) (PARTITION costs_old VALUES LESS THAN 
(TO_DATE('01-JAN-2003', 'DD-MON-YYYY')) COMPRESS,
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 bf648f93a22..8ad1238ad3c 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
@@ -21,6 +21,7 @@
     <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,Doris" />
+    <sql-case id="create_view_with_columns_doris" value="CREATE VIEW 
example_view (c1, c2) AS SELECT k1, k2 FROM example_table" db-types="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/dml/handler.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/handler.xml
index b83d597e1db..596671ed3b1 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/handler.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/handler.xml
@@ -17,6 +17,6 @@
   -->
 
 <sql-cases>
-    <sql-case id="handler_table_name_with_close" value="HANDLER t1 CLOSE" 
db-types="MySQL" />
-    <sql-case id="handler_table_name_read_limit" value="handler a1 read first 
limit 9" db-types="MySQL" />
+    <sql-case id="handler_table_name_with_close" value="HANDLER t1 CLOSE" 
db-types="MySQL,Doris" />
+    <sql-case id="handler_table_name_read_limit" value="handler a1 read first 
limit 9" db-types="MySQL,Doris" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/import.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/import.xml
index c8e18ee67aa..64f76b7daca 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/import.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/import.xml
@@ -17,6 +17,6 @@
   -->
 
 <sql-cases>
-    <sql-case id="import_table_from_file" value="IMPORT TABLE FROM 
's1/t1*.sdi'" db-types="MySQL" />
-    <sql-case id="import_table_from_files" value="IMPORT TABLE FROM 
'/tmp/mysql-files/employees.sdi','/tmp/mysql-files/managers.sdi'" 
db-types="MySQL" />
+    <sql-case id="import_table_from_file" value="IMPORT TABLE FROM 
's1/t1*.sdi'" db-types="MySQL,Doris" />
+    <sql-case id="import_table_from_files" value="IMPORT TABLE FROM 
'/tmp/mysql-files/employees.sdi','/tmp/mysql-files/managers.sdi'" 
db-types="MySQL,Doris" />
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-into.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-into.xml
index d72ed723ce8..c799491125f 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-into.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-into.xml
@@ -40,4 +40,5 @@
     <sql-case id="select_into_outfile_doris_with_parquet" value="SELECT * FROM 
t_order INTO OUTFILE 's3://bucket/result_' FORMAT AS PARQUET PROPERTIES 
('s3.endpoint' = 'http://s3.amazonaws.com', 's3.access_key' = 'xxx', 
's3.secret_key' = 'yyy')" db-types="Doris"/>
     <sql-case id="select_into_outfile_doris_with_fields" value="SELECT * FROM 
t_order INTO OUTFILE 'hdfs://path/to/result_' FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '&quot;'" db-types="Doris"/>
     <sql-case id="select_into_outfile_doris_with_fields_and_escaped" 
value="SELECT user_id, status FROM t_order INTO OUTFILE 
'hdfs://path/to/result_' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY 
'&quot;' ESCAPED BY '\\'" db-types="Doris"/>
+    <sql-case id="select_into_table_doris" value="SELECT * FROM t_order INTO 
t_backup" db-types="Doris"/>
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-join.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-join.xml
index 8ab5007033d..94cbecddea7 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-join.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-join.xml
@@ -27,8 +27,8 @@
     <sql-case id="select_cross_apply_join_related_with_alias" value="SELECT 
d.department_name, v.employee_id, v.last_name FROM departments d CROSS APPLY 
(SELECT * FROM employees e WHERE e.department_id = d.department_id) v WHERE 
d.department_name IN ('Marketing', 'Operations', 'Public Relations') ORDER BY 
d.department_name, v.employee_id" db-types="Oracle" />
     <sql-case id="select_natural_join" value="SELECT * FROM t_order o NATURAL 
JOIN t_order_item i WHERE o.order_id = ?" 
db-types="MySQL,PostgreSQL,openGauss,Oracle,Doris" />
     <sql-case id="select_natural_inner_join" value="SELECT * FROM t_order o 
NATURAL INNER JOIN t_order_item i WHERE o.order_id = ?" 
db-types="MySQL,PostgreSQL,openGauss,Oracle" />
-    <sql-case id="select_natural_left_join" value="SELECT * FROM t_order o 
NATURAL LEFT JOIN t_order_item i WHERE o.order_id = ?" 
db-types="MySQL,PostgreSQL,openGauss,Oracle" />
-    <sql-case id="select_natural_right_join" value="SELECT * FROM t_order o 
NATURAL RIGHT JOIN t_order_item i WHERE o.order_id = ?" 
db-types="MySQL,PostgreSQL,openGauss,Oracle" />
+    <sql-case id="select_natural_left_join" value="SELECT * FROM t_order o 
NATURAL LEFT JOIN t_order_item i WHERE o.order_id = ?" 
db-types="MySQL,PostgreSQL,openGauss,Oracle,Doris" />
+    <sql-case id="select_natural_right_join" value="SELECT * FROM t_order o 
NATURAL RIGHT JOIN t_order_item i WHERE o.order_id = ?" 
db-types="MySQL,PostgreSQL,openGauss,Oracle,Doris" />
     <sql-case id="select_natural_full_join" value="SELECT * FROM t_order o 
NATURAL FULL JOIN t_order_item i WHERE o.order_id = ?" 
db-types="PostgreSQL,openGauss,Oracle" />
     <sql-case id="select_with_join_operator" value="SELECT * FROM t_order o , 
t_order_item i WHERE o.order_id(+) = i.order_id" db-types="Oracle" />
     <sql-case id="select_join_with_quote" value="SELECT &quot;u&quot;.*, 
&quot;o&quot;.* FROM t_user &quot;u&quot; INNER JOIN t_order &quot;o&quot; ON 
&quot;u&quot;.user_id = &quot;o&quot;.user_id WHERE &quot;u&quot;.user_id = ?" 
db-types="Oracle" />
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-order-by.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-order-by.xml
index 47dc76524a7..6cc2e5bbbbd 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-order-by.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-order-by.xml
@@ -34,5 +34,5 @@
     <sql-case id="select_order_by_with_table_star_table_name" value="SELECT 
t_order.* FROM t_order ORDER BY t_order.order_id" db-types="H2,MySQL" />
     <sql-case id="select_order_by_with_star_no_table_alias" value="SELECT * 
FROM t_order ORDER BY order_id" db-types="H2,MySQL" />
     <sql-case id="select_order_by_with_table_star_without_table_name" 
value="SELECT i.*, o.* FROM t_order o JOIN t_order_item i ON o.user_id = 
i.user_id AND o.order_id = i.order_id ORDER BY item_id" db-types="H2,MySQL" />
-    <sql-case id="select_order_by_expression_binary_operation" value="select * 
from t_order order by 1+1" db-types="MySQL,Presto" />
+    <sql-case id="select_order_by_expression_binary_operation" value="select * 
from t_order order by 1+1" db-types="MySQL,Presto,Doris" />
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-pagination.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-pagination.xml
index 617c4d523bd..45e5ad82896 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-pagination.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-pagination.xml
@@ -42,6 +42,8 @@
     <sql-case id="select_pagination_with_first_skip" value="SELECT FIRST 1 
SKIP 1 1 a FROM t_order" db-types="Firebird" />
     <sql-case id="select_pagination_with_skip" value="SELECT SKIP 1 1 a FROM 
t_order" db-types="Firebird" />
     <sql-case id="select_limit_offset_doris" value="SELECT * FROM t_order 
LIMIT 5 OFFSET 2" db-types="Doris" />
+    <sql-case id="select_limit_only_doris" value="SELECT * FROM t_order LIMIT 
5" db-types="Doris" />
+    <sql-case id="select_limit_with_params_doris" value="SELECT * FROM t_order 
LIMIT ?, ?" db-types="Doris" />
 <!--    <sql-case id="select_pagination_with_first_and_expr_value" 
value="SELECT FIRST (1+1) 1 a FROM t_order" db-types="Firebird" />-->
 <!--    <sql-case id="select_pagination_with_skip_and_expr_value" 
value="SELECT SKIP (2+2) 1 a FROM t_order" db-types="Firebird" />-->
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-sub-query.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-sub-query.xml
index 82e1a5c448f..3964780891c 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-sub-query.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-sub-query.xml
@@ -22,16 +22,16 @@
     <sql-case id="select_sub_query_with_table" value="SELECT t.* FROM (SELECT 
* FROM t_order WHERE order_id IN (?, ?)) t" />
     <sql-case id="select_with_equal_subquery" value="SELECT * FROM t_order 
WHERE user_id = (SELECT user_id FROM t_order_item WHERE id = 10)" 
db-types="MySQL, PostgreSQL,openGauss" />
     <sql-case id="select_with_any_subquery" value="SELECT * FROM employees 
WHERE salary = ANY (SELECT salary FROM employees WHERE department_id = 30) 
ORDER BY employee_id;" db-types="Oracle" />
-    <sql-case id="select_with_in_subquery" value="SELECT * FROM t_order WHERE 
user_id IN (SELECT user_id FROM t_order_item WHERE id IN (10, 11))" 
db-types="MySQL,PostgreSQL,openGauss" />
-    <sql-case id="select_with_between_subquery" value="SELECT * FROM t_order 
WHERE user_id BETWEEN (SELECT user_id FROM t_order_item WHERE order_id = 10) 
AND ?" db-types="MySQL, PostgreSQL,openGauss" />
-    <sql-case id="select_with_exists_sub_query_with_project" value="SELECT 
EXISTS (SELECT 1 FROM t_order)" db-types="MySQL,PostgreSQL,openGauss" />
+    <sql-case id="select_with_in_subquery" value="SELECT * FROM t_order WHERE 
user_id IN (SELECT user_id FROM t_order_item WHERE id IN (10, 11))" 
db-types="MySQL,PostgreSQL,openGauss,Doris" />
+    <sql-case id="select_with_between_subquery" value="SELECT * FROM t_order 
WHERE user_id BETWEEN (SELECT user_id FROM t_order_item WHERE order_id = 10) 
AND ?" db-types="MySQL, PostgreSQL,openGauss,Doris" />
+    <sql-case id="select_with_exists_sub_query_with_project" value="SELECT 
EXISTS (SELECT 1 FROM t_order)" db-types="MySQL,PostgreSQL,openGauss,Doris" />
     <sql-case id="select_with_join_table_subquery" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id, u.user_id FROM 
t_order_federate, (SELECT * FROM t_user_info) as u WHERE 
t_order_federate.user_id = u.user_id" db-types="MySQL, PostgreSQL,openGauss, 
SQLServer, SQL92" />
     <sql-case id="select_with_projection_subquery" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id, (SELECT COUNT(user_id) 
FROM t_user_info) FROM t_order_federate" />
     <sql-case id="select_with_projection_subquery_and_multiple_parameters" 
value="SELECT t_order_federate.order_id, t_order_federate.user_id, (SELECT 
CONCAT(order_id, user_id) FROM t_user_info) FROM t_order_federate" />
     <sql-case id="select_with_in_subquery_condition" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id FROM t_order_federate WHERE 
user_id IN (SELECT * FROM t_user_info)" />
     <sql-case id="select_with_between_and_subquery_condition" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id FROM t_order_federate WHERE 
user_id BETWEEN (SELECT user_id FROM t_user_info WHERE information = 'before') 
AND (SELECT user_id FROM t_user_info WHERE information = 'after')" />
-    <sql-case id="select_with_exist_subquery_condition" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id FROM t_order_federate WHERE 
EXISTS (SELECT * FROM t_user_info WHERE t_order_federate.user_id = 
t_user_info.user_id)" db-types="MySQL,PostgreSQL,openGauss" />
-    <sql-case id="select_with_not_exist_subquery_condition" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id FROM t_order_federate WHERE 
NOT EXISTS (SELECT * FROM t_user_info WHERE t_order_federate.user_id = 
t_user_info.user_id)" db-types="MySQL" />
+    <sql-case id="select_with_exist_subquery_condition" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id FROM t_order_federate WHERE 
EXISTS (SELECT * FROM t_user_info WHERE t_order_federate.user_id = 
t_user_info.user_id)" db-types="MySQL,PostgreSQL,openGauss,Doris" />
+    <sql-case id="select_with_not_exist_subquery_condition" value="SELECT 
t_order_federate.order_id, t_order_federate.user_id FROM t_order_federate WHERE 
NOT EXISTS (SELECT * FROM t_user_info WHERE t_order_federate.user_id = 
t_user_info.user_id)" db-types="MySQL,Doris" />
     <sql-case id="select_with_exist_string_split_subquery" value="SELECT 
ProductId, Name, Tags FROM Product WHERE EXISTS (SELECT * FROM 
STRING_SPLIT(Tags, ',') WHERE value IN ('clothing', 'road'))" 
db-types="SQLServer"/>
     <sql-case id="select_sub_query_with_cast_function" value="SELECT 
[T1_1].[BusinessEntityID] AS [BusinessEntityID], [T1_1].[rowguid] AS [rowguid], 
[T1_1].[ModifiedDate] AS [ModifiedDate] FROM  (SELECT [T2_1].[BusinessEntityID] 
AS [BusinessEntityID], [T2_1].[rowguid] AS [rowguid], [T2_1].[ModifiedDate] AS 
[ModifiedDate] FROM [AdventureWorks2022].[Person].[BusinessEntity] AS T2_1 
WHERE ([T2_1].[BusinessEntityID] = CAST ((17907) AS INT))) AS T1_1" 
db-types="SQLServer"/>
     <sql-case id="select_sub_query_with_inner_join" value="SELECT 
[T1_1].[BusinessEntityID] AS [BusinessEntityID], [T1_1].[AddressID] AS 
[AddressID] FROM (SELECT [T2_2].[BusinessEntityID] AS [BusinessEntityID], 
[T2_1].[AddressID] AS [AddressID] FROM 
[AdventureWorks2022].[Person].[BusinessEntityAddress] AS T2_1 INNER JOIN 
[AdventureWorks2022].[Person].[BusinessEntity] AS T2_2 ON 
([T2_1].[BusinessEntityID] = [T2_2].[BusinessEntityID])) AS T1_1" 
db-types="SQLServer"/>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml
index 701b75fa9e3..42c346fcb44 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-window.xml
@@ -20,4 +20,5 @@
     <sql-case id="select_window" value="SELECT user_id, ROW_NUMBER() OVER w AS 
'row_number', RANK() OVER w AS 'rank', DENSE_RANK() OVER w AS 'dense_rank' FROM 
t_order WHERE order_id = ? WINDOW w AS (ORDER BY user_id)" 
db-types="MySQL,Doris" />
     <sql-case id="select_window_partition_order_doris" value="SELECT 
ROW_NUMBER() OVER (PARTITION BY k ORDER BY v) FROM t_order" db-types="Doris" />
     <sql-case id="select_window_lead_lag_doris" value="SELECT LEAD(v) OVER 
(PARTITION BY k ORDER BY v) FROM t_order" db-types="Doris" />
+    <sql-case id="select_window_frame_doris" value="SELECT SUM(v) OVER 
(PARTITION BY k ORDER BY v ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM 
t_order" db-types="Doris" />
 </sql-cases>
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 53c303f6d85..47405458386 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
@@ -75,7 +75,7 @@
     <sql-case id="select_keyword_table_name_with_double_quotes" value="SELECT 
i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id 
= i.order_id JOIN &quot;select&quot; c ON o.status = c.status WHERE o.user_id 
IN (?, ?) AND o.order_id BETWEEN ? AND ? AND c.status = ? ORDER BY i.item_id" 
db-types="PostgreSQL,openGauss,Oracle" />
     <sql-case id="select_keyword_table_name_with_square_brackets" 
value="SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id 
AND o.order_id = i.order_id JOIN [select] c ON o.status = c.status WHERE 
o.user_id IN (?, ?) AND o.order_id BETWEEN ? AND ? AND c.status = ? ORDER BY 
i.item_id" db-types="SQLServer" />
     <sql-case id="select_alias_as_keyword" value="SELECT length.item_id 
password FROM t_order_item length where length.item_id = ? " 
db-types="MySQL,H2,SQLServer,Oracle" />
-    <sql-case id="select_with_force_index_join" value="SELECT i.* FROM t_order 
o FORCE INDEX(order_index) JOIN t_order_item i ON o.order_id=i.order_id WHERE 
o.order_id = ?" db-types="MySQL" />
+    <sql-case id="select_with_force_index_join" value="SELECT i.* FROM t_order 
o FORCE INDEX(order_index) JOIN t_order_item i ON o.order_id=i.order_id WHERE 
o.order_id = ?" db-types="MySQL,Doris" />
     <sql-case id="select_equal_with_geography" value="SELECT * FROM t_order 
WHERE rule = ?::jsonb AND 
start_point=ST_GeographyFromText('SRID=4326;POINT('||?||' '||?||')') AND 
user_id = ? AND order_id = ?" db-types="PostgreSQL,openGauss" />
     <sql-case id="select_in_with_geography" value="SELECT * FROM t_order WHERE 
rule IN (?::jsonb, ?::jsonb) AND 
start_point=ST_GeographyFromText('SRID=4326;POINT('||?||' '||?||')') AND 
user_id = ? AND order_id = ?" db-types="PostgreSQL,openGauss" />
     <sql-case id="select_between_with_geography" value="SELECT * FROM t_order 
WHERE rule BETWEEN ?::jsonb AND ?::jsonb AND 
start_point=ST_GeographyFromText('SRID=4326;POINT('||?||' '||?||')') AND 
order_id = ?" db-types="PostgreSQL,openGauss" />
@@ -230,10 +230,14 @@
     <sql-case id="select_with_lead_and_lag_function" value="SELECT hire_date, 
LAG(hire_date, 1) OVER (ORDER BY hire_date) AS LAG1, LEAD(hire_date, 1) OVER 
(ORDER BY hire_date) AS LEAD1 FROM employees WHERE department_id = 30 ORDER BY 
hire_date;" db-types="Oracle,MySQL" />
     <sql-case id="select_with_connect_by_root" value="SELECT CONNECT_BY_ROOT 
last_name 'Manager' FROM employees CONNECT BY PRIOR employee_id = manager_id" 
db-types="Oracle" />
     <sql-case id="select_with_ntile_function" value="SELECT NTILE(4) OVER 
(ORDER BY salary DESC) AS quartile FROM employees WHERE department_id = 100 
ORDER BY last_name" db-types="Oracle,MySQL,Doris" />
+    <sql-case id="select_from_dual_doris" value="SELECT 1 FROM DUAL" 
db-types="Doris" />
     <sql-case id="select_date_literal_doris" value="SELECT DATE '2020-01-01'" 
db-types="Doris" />
     <sql-case id="select_hex_literal_doris" value="SELECT 0x1AF" 
db-types="Doris" />
     <sql-case id="select_bit_literal_doris" value="SELECT b'1010'" 
db-types="Doris" />
     <sql-case id="select_collate_clause_doris" value="SELECT 'a' COLLATE 
utf8mb4_bin" db-types="Doris" />
+    <sql-case id="select_true_literal_doris" value="SELECT TRUE" 
db-types="Doris" />
+    <sql-case id="select_false_literal_doris" value="SELECT FALSE" 
db-types="Doris" />
+    <sql-case id="select_null_literal_doris" value="SELECT NULL" 
db-types="Doris" />
     <sql-case id="select_with_percentile_functions" value="SELECT 
department_id, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary DESC) 'Median 
cont', PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY salary DESC) 'Median disc' 
FROM employees GROUP BY department_id" db-types="Oracle" />
     <sql-case id="select_with_keep_clause" value="SELECT salary,MIN(salary) 
KEEP (DENSE_RANK FIRST ORDER BY commission_pct) OVER (PARTITION BY 
department_id) 'Worst', MAX(salary) KEEP (DENSE_RANK LAST ORDER BY 
commission_pct) OVER (PARTITION BY department_id) 'Best' FROM employees ORDER 
BY department_id" db-types="Oracle" />
     <sql-case id="select_with_corr_function" value="SELECT employee_id, 
CORR(SYSDATE - hire_date, salary) FROM employees WHERE department_id in (50, 
80) ORDER BY employee_id" db-types="Oracle" />
@@ -311,6 +315,7 @@
     <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_force_index_for_join" value="SELECT * FROM t1 
FORCE INDEX FOR JOIN (idx1)" db-types="MySQL,Doris" />
     <sql-case id="select_with_reserved_word_with_table_ref" value="select 
xxx.condition from xxx" db-types="MySQL,Doris"/>
     <sql-case id="select_with_reserved_word" value="select describe from xxx" 
db-types="MySQL,Doris"/>
     <sql-case id="select_with_nvl_function_and_interval_hour" value="SELECT * 
FROM t_order t WHERE t.CREATE_TIME &lt;= nvl(END_TIME, sysdate) - INTERVAL ? 
HOUR AND t.STATUS = 'FAILURE'" db-types="Oracle"/>


Reply via email to