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 9be867c447f Add SQL parser test cases for Hive (#37699)
9be867c447f is described below

commit 9be867c447fbbaa4fcf8944019cdc091e230270f
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jan 10 15:16:51 2026 +0800

    Add SQL parser test cases for Hive (#37699)
---
 .../src/main/resources/case/dml/select-hive.xml    | 40 ++++++++++++++++++++++
 .../main/resources/sql/supported/dml/delete.xml    |  2 +-
 .../main/resources/sql/supported/dml/presto.xml    | 12 +++----
 .../sql/supported/dml/select-distinct.xml          |  2 +-
 .../sql/supported/dml/select-expression.xml        |  6 ++--
 .../resources/sql/supported/dml/select-hive.xml    |  2 ++
 .../sql/supported/dml/select-pagination.xml        |  2 +-
 .../sql/supported/dml/select-special-function.xml  | 10 +++---
 .../sql/supported/dml/select-sub-query.xml         |  2 +-
 .../main/resources/sql/supported/dml/select.xml    |  2 +-
 .../main/resources/sql/supported/dml/update.xml    |  2 +-
 .../main/resources/sql/supported/dml/values.xml    |  2 +-
 12 files changed, 63 insertions(+), 21 deletions(-)

diff --git a/test/it/parser/src/main/resources/case/dml/select-hive.xml 
b/test/it/parser/src/main/resources/case/dml/select-hive.xml
index b6576163f69..c7b89faf0d1 100644
--- a/test/it/parser/src/main/resources/case/dml/select-hive.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-hive.xml
@@ -575,4 +575,44 @@
         </from>
     </select>
 
+    <select sql-case-id="hive_select_literals_dual">
+        <projections start-index="7" stop-index="37">
+            <expression-projection text="DATE'2024-01-01'" start-index="7" 
stop-index="23">
+                <expr>
+                    <common-expression text="DATE'2024-01-01'" start-index="7" 
stop-index="23" />
+                </expr>
+            </expression-projection>
+            <expression-projection text="0x1F" start-index="26" 
stop-index="29">
+                <expr>
+                    <common-expression text="0x1F" start-index="26" 
stop-index="29" />
+                </expr>
+            </expression-projection>
+            <expression-projection text="B'101'" start-index="32" 
stop-index="37">
+                <expr>
+                    <common-expression text="B'101'" start-index="32" 
stop-index="37" />
+                </expr>
+            </expression-projection>
+        </projections>
+        <from>
+            <simple-table name="DUAL" start-index="44" stop-index="47" />
+        </from>
+    </select>
+
+    <select sql-case-id="hive_select_owner_function">
+        <projections start-index="7" stop-index="23">
+            <expression-projection text="analytics.fn(col)" start-index="7" 
stop-index="23">
+                <expr>
+                    <function function-name="analytics.fn(col)" 
text="analytics.fn(col)" start-index="7" stop-index="23">
+                        <parameter>
+                            <column name="col" start-index="20" 
stop-index="22" />
+                        </parameter>
+                    </function>
+                </expr>
+            </expression-projection>
+        </projections>
+        <from>
+            <simple-table name="t_func_owner" start-index="30" stop-index="41" 
/>
+        </from>
+    </select>
+
 </sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/delete.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/delete.xml
index f78241e1f4a..098d98b152f 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/delete.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/delete.xml
@@ -22,7 +22,7 @@
     <sql-case id="delete_with_special_character_without_sharding_value" 
value="DELETE FROM `t_order` WHERE `status`='init'" db-types="MySQL,Doris" />
     <sql-case id="delete_with_alias" value="DELETE FROM t_order AS o WHERE 
status=?" db-types="MySQL,SQLServer,Doris" />
     <sql-case id="delete_with_alias_without_as" value="DELETE 
product_price_history pp WHERE (product_id, currency_code, effective_from_date) 
IN (SELECT product_id, currency_code, MAX(effective_from_date) FROM 
product_price_history GROUP BY product_id, currency_code)" db-types="Oracle" />
-    <sql-case id="delete_with_order_by_row_count" value="DELETE FROM t_order 
WHERE order_id = ? AND user_id = ? AND status=? ORDER BY order_id LIMIT ?" 
db-types="MySQL,Doris" />
+    <sql-case id="delete_with_order_by_row_count" value="DELETE FROM t_order 
WHERE order_id = ? AND user_id = ? AND status=? ORDER BY order_id LIMIT ?" 
db-types="MySQL,Doris,Hive" />
     <sql-case id="delete_with_output_clause" value="DELETE FROM t_order OUTPUT 
DELETED.order_id, DELETED.user_id INTO @MyTableVar (temp_order_id, 
temp_user_id) WHERE order_id = ?" db-types="SQLServer" />
     <sql-case id="delete_with_output_clause_without_output_table_columns" 
value="DELETE FROM t_order OUTPUT DELETED.order_id, DELETED.user_id INTO 
@MyTableVar WHERE order_id = ?" db-types="SQLServer" />
     <sql-case id="delete_with_output_clause_without_output_table" 
value="DELETE FROM t_order OUTPUT DELETED.order_id, DELETED.user_id WHERE 
order_id = ?" db-types="SQLServer" />
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/presto.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/presto.xml
index b54de1e86e6..d2962179ee6 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/presto.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/presto.xml
@@ -23,10 +23,10 @@
     <sql-case id="presto_select_not_flag" value="SELECT * FROM t_order WHERE 
NOT flag" db-types="Presto" />
     <sql-case id="presto_select_not_exists_subquery" value="SELECT * FROM 
t_order WHERE NOT EXISTS (SELECT 1)" db-types="Presto" />
     <sql-case id="presto_select_assignment_operator" value="SELECT * FROM 
t_order WHERE order_id := 1" db-types="Presto" />
-    <sql-case id="presto_select_predicate_variants" value="SELECT * FROM 
t_order WHERE order_id NOT BETWEEN 1 AND 5 AND status REGEXP '[12]' AND status 
RLIKE '[34]' AND status LIKE 'ok'" db-types="Presto" />
+    <sql-case id="presto_select_predicate_variants" value="SELECT * FROM 
t_order WHERE order_id NOT BETWEEN 1 AND 5 AND status REGEXP '[12]' AND status 
RLIKE '[34]' AND status LIKE 'ok'" db-types="Presto,Hive" />
     <sql-case id="presto_select_case_binary_variable" value="SELECT CASE 
catalog.schem1.order_id WHEN 1 THEN 'one' ELSE 'other' END, BINARY status, 
@user_value FROM t_order" db-types="Presto" />
     <sql-case id="presto_select_concat_match_interval" value="SELECT status || 
'X', MATCH(status) AGAINST ('kw'), INTERVAL '1' DAY, catalog.fn(order_id) FROM 
t_order" db-types="Presto" />
-    <sql-case id="presto_select_is_true" value="SELECT * FROM t_order WHERE 
flag IS TRUE" db-types="Presto" />
+    <sql-case id="presto_select_is_true" value="SELECT * FROM t_order WHERE 
flag IS TRUE" db-types="Presto,Hive" />
     <sql-case id="presto_select_xor" value="SELECT * FROM t_order WHERE flag 
XOR 1" db-types="Presto" />
     <sql-case id="presto_select_safe_equal" value="SELECT * FROM t_order WHERE 
flag &lt;=&gt; TRUE" db-types="Presto" />
     <sql-case id="presto_select_member_of" value="SELECT * FROM t_order WHERE 
order_id MEMBER OF(&quot;[1,2]&quot;)" db-types="Presto" />
@@ -46,7 +46,7 @@
     <sql-case id="presto_select_group_concat" value="SELECT 
GROUP_CONCAT(order_id) FROM t_order" db-types="Presto" />
     <sql-case id="presto_select_limit_only" value="SELECT * FROM t_order LIMIT 
5" db-types="Presto" />
     <sql-case id="presto_select_current_time_precision" value="SELECT 
CURRENT_TIME(3)" db-types="Presto,Doris" />
-    <sql-case id="presto_select_predicate_not_variants" value="SELECT * FROM 
t_order WHERE flag IS NOT NULL AND status NOT LIKE '%x%' AND status NOT REGEXP 
'[12]' AND status NOT RLIKE '[34]' AND order_id NOT IN (1, 2)" 
db-types="Presto" />
+    <sql-case id="presto_select_predicate_not_variants" value="SELECT * FROM 
t_order WHERE flag IS NOT NULL AND status NOT LIKE '%x%' AND status NOT REGEXP 
'[12]' AND status NOT RLIKE '[34]' AND order_id NOT IN (1, 2)" 
db-types="Presto,Hive" />
     <sql-case id="presto_select_collate_params" value="SELECT 'a' COLLATE 
utf8mb4_bin, 'b' COLLATE latin1_bin FROM t_order" db-types="Presto" />
     <sql-case id="presto_select_agg_group_having_order" value="SELECT DISTINCT 
status, COUNT(DISTINCT order_id) AS cnt FROM t_order GROUP BY status HAVING 
COUNT(*) > 1 ORDER BY 2 DESC, status ASC" db-types="Presto" />
     <sql-case id="presto_select_window_clause" value="SELECT ROW_NUMBER() OVER 
win FROM t_order WINDOW win AS (PARTITION BY status ORDER BY order_id ROWS 
BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)" db-types="Presto" />
@@ -97,9 +97,9 @@
     <sql-case id="presto_delete_table_alias" value="DELETE FROM t_order AS o 
WHERE flag = 1" db-types="Presto" />
     <sql-case id="presto_select_lock_share_of_nowait" value="SELECT * FROM 
t_order FOR SHARE OF t_order NOWAIT" db-types="Presto" />
     <sql-case id="presto_select_lock_skip_locked" value="SELECT * FROM t_order 
FOR UPDATE OF t_order SKIP LOCKED" db-types="Presto" />
-    <sql-case id="presto_select_is_null" value="SELECT * FROM t_order WHERE 
flag IS NULL" db-types="Presto" />
-    <sql-case id="presto_select_is_not_true" value="SELECT * FROM t_order 
WHERE flag IS NOT TRUE" db-types="Presto" />
-    <sql-case id="presto_select_is_false" value="SELECT * FROM t_order WHERE 
flag IS FALSE" db-types="Presto" />
+    <sql-case id="presto_select_is_null" value="SELECT * FROM t_order WHERE 
flag IS NULL" db-types="Presto,Hive" />
+    <sql-case id="presto_select_is_not_true" value="SELECT * FROM t_order 
WHERE flag IS NOT TRUE" db-types="Presto,Hive" />
+    <sql-case id="presto_select_is_false" value="SELECT * FROM t_order WHERE 
flag IS FALSE" db-types="Presto,Hive" />
     <sql-case id="presto_select_in_param_markers" value="SELECT * FROM t_order 
WHERE order_id IN (?, ?)" db-types="Presto" />
     <sql-case id="presto_select_distinctrow" value="SELECT DISTINCTROW * FROM 
t_order" db-types="Presto" />
 </sql-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-distinct.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-distinct.xml
index 8901e853b06..f8840ece0d4 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-distinct.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-distinct.xml
@@ -34,7 +34,7 @@
     <sql-case id="select_distinct_with_star" value="SELECT DISTINCT * FROM 
t_order WHERE order_id > 1100 ORDER BY order_id" />
     <sql-case id="select_distinct_with_owner_star" value="SELECT DISTINCT 
t_order.*, t_order_item.order_id FROM t_order, t_order_item WHERE 
t_order.order_id = t_order_item.order_id ORDER BY t_order.order_id" />
     <sql-case id="select_distinct_with_sum" value="SELECT SUM(DISTINCT 
order_id) s FROM t_order WHERE order_id &lt; 1100" />
-    <sql-case id="select_distinct_with_count" value="SELECT COUNT(DISTINCT 
order_id) c FROM t_order WHERE order_id &lt; 1100" />
+    <sql-case id="select_distinct_with_count" value="SELECT COUNT(DISTINCT 
order_id) c FROM t_order WHERE order_id &lt; 1100" 
db-types="MySQL,PostgreSQL,openGauss,Doris" />
     <sql-case id="select_distinct_with_avg" value="SELECT AVG(DISTINCT 
order_id) FROM t_order WHERE order_id &lt; 1100" db-types="MySQL" />
     <!--TODO The metadata of MySQL is different from which of H2. For now, we 
could only specify one db-types from MySQL or H2. We need to support different 
expected data in one case.-->
     <sql-case id="select_distinct_with_count_sum" value="SELECT COUNT(DISTINCT 
order_id), SUM(DISTINCT order_id) FROM t_order WHERE order_id &lt; 1100" 
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 38d0a3654ee..b103c74394d 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,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_regexp" value="SELECT * FROM t_order_item t 
WHERE t.status REGEXP ? AND t.item_id IN (?, ?)" db-types="MySQL,Doris,Hive" />
+    <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,Hive" />
     <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,Doris" 
/>
+    <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,Hive" />
     <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 &amp; ?" 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 &lt;&lt; ?" 
db-types="MySQL" />
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-hive.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-hive.xml
index d692e35e73d..5f21c628f4d 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-hive.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-hive.xml
@@ -43,4 +43,6 @@
     <sql-case id="hive_select_order_limit_param" value="SELECT * FROM t_order 
ORDER BY 1, price + 1 DESC LIMIT 1 OFFSET 1" db-types="Hive" />
     <sql-case id="hive_select_case_variables" value="SELECT CASE WHEN a &gt; 1 
THEN b ELSE c END, @var, @@global.var FROM t_case" db-types="Hive" />
     <sql-case id="hive_select_join_using_comma" value="SELECT * FROM t1 JOIN 
t2 USING (id), t3" db-types="Hive" />
+    <sql-case id="hive_select_literals_dual" value="SELECT DATE '2024-01-01', 
0x1F, B'101' FROM DUAL" db-types="Hive" />
+    <sql-case id="hive_select_owner_function" value="SELECT analytics.fn(col) 
FROM t_func_owner" db-types="Hive" />
 </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 45e5ad82896..0c8379be29d 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
@@ -43,7 +43,7 @@
     <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_limit_with_params_doris" value="SELECT * FROM t_order 
LIMIT ?, ?" db-types="Doris,Hive" />
 <!--    <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-special-function.xml
 
b/test/it/parser/src/main/resources/sql/supported/dml/select-special-function.xml
index bfea68687ba..14b428dc08f 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
@@ -20,17 +20,17 @@
     <sql-case id="select_group_concat_with_order_by" value="SELECT 
GROUP_CONCAT(status ORDER BY status) FROM t_order" db-types="MySQL,Doris" />
     <sql-case id="select_group_concat_with_order_by_for_opengauss" 
value="SELECT GROUP_CONCAT(status ORDER BY status) FROM t_order" 
db-types="openGauss" />
     <sql-case id="select_window_function" value="SELECT order_id, ROW_NUMBER() 
OVER() FROM t_order" db-types="MySQL,Presto" />
-    <sql-case id="select_cast_function" value="SELECT CAST('1' AS UNSIGNED)" 
db-types="MySQL" />
+    <sql-case id="select_cast_function" value="SELECT CAST('1' AS UNSIGNED)" 
db-types="MySQL,Hive" />
     <sql-case id="select_cast_as_year" value="SELECT CAST(-1.1 AS YEAR)" 
db-types="MySQL" />
     <sql-case id="select_cast" value="SELECT CAST(c AT TIME ZONE 'UTC' AS 
DATETIME)" db-types="MySQL" />
     <sql-case id="select_cast_multiset" value="select CAST(MULTISET(SELECT 
cust_address FROM customers c WHERE c.customer_id = cd.customer_id) as 
cust_address_tab_typ) from customer;" db-types="Oracle" />
     <sql-case id="select_convert_function" value="SELECT CONVERT('2020-10-01', 
DATE)" db-types="MySQL" />
-    <sql-case id="select_position" value="SELECT POSITION('bar' IN 
'foobarbar')" db-types="MySQL,Doris" />
+    <sql-case id="select_position" value="SELECT POSITION('bar' IN 
'foobarbar')" db-types="MySQL,Doris,Hive" />
     <sql-case id="select_substring" value="SELECT SUBSTRING('foobarbar' from 
-4 for 2)" db-types="MySQL" />
     <sql-case id="select_substr" value="SELECT SUBSTR('foobarbar' from 4)" 
db-types="MySQL,Presto" />
     <sql-case id="select_extract" value="SELECT EXTRACT(YEAR FROM 
'2019-07-02')" db-types="MySQL" />
     <sql-case id="select_extract_from_column" value="SELECT EXTRACT(YEAR FROM 
o.creation_date) FROM t_order o" db-types="MySQL" />
-    <sql-case id="select_char" value="SELECT CHAR(77,121,83,81,'76')" 
db-types="MySQL,Doris" />
+    <sql-case id="select_char" value="SELECT CHAR(77,121,83,81,'76')" 
db-types="MySQL,Doris,Hive" />
     <sql-case id="select_chr_using_nchar_cs" value="SELECT CHR (196 USING 
NCHAR_CS) FROM DUAL;" db-types="Oracle" />
     <sql-case id="select_trim" value="SELECT TRIM('  bar   ')" 
db-types="MySQL,Doris" />
     <sql-case id="select_trim_with_both" value="SELECT TRIM(BOTH ' ' from ' 
bar ')" db-types="MySQL,Doris" />
@@ -136,7 +136,7 @@
     <sql-case id="select_window_with_cume_dist_function" value="SELECT val, 
CUME_DIST() OVER() FROM numbers" db-types="MySQL" />
     <sql-case id="select_curdate_function" value="SELECT CURDATE()" 
db-types="MySQL" />
     <sql-case id="select_current_date_function" value="SELECT CURRENT_DATE()" 
db-types="MySQL" />
-    <sql-case id="select_current_time_function" value="SELECT CURRENT_TIME()" 
db-types="MySQL,Presto" />
+    <sql-case id="select_current_time_function" value="SELECT CURRENT_TIME()" 
db-types="MySQL,Presto,Hive" />
     <sql-case id="select_current_timestamp_function" value="SELECT 
CURRENT_TIMESTAMP()" db-types="MySQL" />
     <sql-case id="select_curtime_function" value="SELECT CURTIME()" 
db-types="MySQL" />
     <sql-case id="select_date_function" value="SELECT DATE('2003-12-31 
01:02:03')" db-types="MySQL" />
@@ -306,7 +306,7 @@
     <sql-case id="select_period_diff" value="SELECT 
PERIOD_DIFF(200802,200703)" db-types="MySQL" />
     <sql-case id="select_percent_rank" value="SELECT PERCENT_RANK() OVER 
(ORDER BY salary) FROM employees;" db-types="MySQL" />
     <sql-case id="select_pi" value="SELECT PI()" db-types="MySQL" />
-    <sql-case id="select_regexp" value="SELECT 'a' REGEXP '^[a-d]'" 
db-types="MySQL" />
+    <sql-case id="select_regexp" value="SELECT 'a' REGEXP '^[a-d]'" 
db-types="MySQL,Hive" />
     <sql-case id="select_with_json_object_function" value="SELECT 
JSON_OBJECT('name' VALUE 'John', 'age' VALUE 30) AS json_data FROM DUAL" 
db-types="Oracle" />
     <sql-case id="select_regexp_function" value="SELECT REGEXP('billie 
eillish', '^billie')" db-types="Doris" />
     <sql-case id="select_regexp_function_with_null" value="SELECT REGEXP(NULL, 
'^billie')" db-types="Doris" />
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 492eadf4939..2c893ca8516 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,7 +22,7 @@
     <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,Doris" />
+    <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,Hive" />
     <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" />
     <sql-case id="select_with_exists_sub_query_with_project_for_doris" 
value="SELECT EXISTS (SELECT 1 FROM t_order)" db-types="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 b7a75296b97..8fd2f7cc09f 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
@@ -126,7 +126,7 @@
     <sql-case id="select_with_jsonb_path_predicate_check" value="SELECT 
content_json::jsonb@@'$.keyword[*]==&quot;ss&quot;' 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,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_from_dual" value="SELECT 1 FROM DUAL" 
db-types="MySQL,Hive" />
     <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" />
     <sql-case id="select_with_cast_as_signed_int" value="SELECT 
user_id,CAST(order_id AS SIGNED INT) FROM t_order" db-types="MySQL" />
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/update.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/update.xml
index d68cef9586f..d876c7d6ca6 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/update.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/update.xml
@@ -31,7 +31,7 @@
     <sql-case id="update_with_column_equal_column" value="update t_order set 
order_id = order_id, status = 'init' where order_id = order_id AND order_id = 
?" db-types="MySQL" />
     <sql-case id="update_with_case_when" value="update stock_freeze_detail set 
row_status=case WHEN (id=?) THEN ? WHEN (id=?) THEN ? WHEN (id=?) THEN ? end,
     update_user=case WHEN (id=?) THEN ? WHEN (id=?) THEN ? WHEN (id=?) THEN ? 
end, update_time=case WHEN (id=?) THEN ? end where  tenant_id = ?" 
db-types="MySQL,Oracle" />
-    <sql-case id="update_with_order_by_row_count" value="UPDATE t_order SET 
status = ? WHERE order_id = ? AND user_id = ? ORDER BY order_id LIMIT ?" 
db-types="MySQL,Presto,Doris" />
+    <sql-case id="update_with_order_by_row_count" value="UPDATE t_order SET 
status = ? WHERE order_id = ? AND user_id = ? ORDER BY order_id LIMIT ?" 
db-types="MySQL,Presto,Doris,Hive" />
     <sql-case id="update_with_number" value="UPDATE t_order SET order_id = ? 
WHERE user_id = ?" db-types="PostgreSQL,openGauss" />
     <sql-case id="update_with_with_clause" value="WITH cte (order_id, user_id, 
status) AS (SELECT order_id, user_id, status FROM t_order) UPDATE t_order SET 
status = ? FROM t_order AS t JOIN cte AS c ON t.order_id = c.order_id WHERE 
c.order_id = ?" db-types="SQLServer" />
     <sql-case id="update_with_from_clause" value="UPDATE t_order SET status = 
? FROM t_order AS t JOIN t_order_item AS i ON t.order_id = i.order_id WHERE 
i.order_id = ?" db-types="PostgreSQL,openGauss,SQLServer" />
diff --git a/test/it/parser/src/main/resources/sql/supported/dml/values.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/values.xml
index 4337786a4a2..939d8916520 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/values.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/values.xml
@@ -18,7 +18,7 @@
 
 <sql-cases>
     <sql-case id="values_with_regexp_replace" value="SELECT REGEXP_REPLACE(e, 
'pattern', 'xyz')FROM (VALUES ROW('Find pattern'), ROW(NULL), ROW('Find 
pattern')) AS v(e)" db-types="MySQL" />
-    <sql-case id="values_with_row" value="values ROW(1,2)" 
db-types="MySQL,Presto,Doris" />
+    <sql-case id="values_with_row" value="values ROW(1,2)" 
db-types="MySQL,Presto,Doris,Hive" />
     <sql-case id="values_with_order_limit" value="VALUES ROW(1,-2,3), 
ROW(5,7,9), ROW(4,6,8) ORDER BY column_1 desc , column_0 desc limit 10" 
db-types="MySQL" />
     <sql-case id="values_with_select" value="values row((select 1), 2)" 
db-types="MySQL" />
 </sql-cases>

Reply via email to