This is an automated email from the ASF dual-hosted git repository.

chengzhang 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 c0bad80cf3b Support for the USE HINT query hint (#36354)
c0bad80cf3b is described below

commit c0bad80cf3b423a6d6df06443c91fefa506d4349
Author: cxy <xiaosaxiao...@qq.com>
AuthorDate: Tue Aug 19 16:13:31 2025 +0800

    Support for the USE HINT query hint (#36354)
---
 .../sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4  | 3 ++-
 test/it/parser/src/main/resources/case/dml/select.xml            | 9 +++++++++
 test/it/parser/src/main/resources/sql/supported/dml/select.xml   | 1 +
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
 
b/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
index f21016fb02c..2be1723e129 100644
--- 
a/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
+++ 
b/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
@@ -348,7 +348,7 @@ queryHint
     | QUERYTRACEON INT_NUM_
     | RECOMPILE
     | ROBUST PLAN
-    | USE HINT LP_ useHitName* RP_
+    | USE HINT LP_ useHitName (COMMA_ useHitName)* RP_
     | USE PLAN NCHAR_TEXT
     | LABEL EQ_ stringLiterals
     ;
@@ -376,6 +376,7 @@ useHitName
     | SQ_ FORCE_LEGACY_CARDINALITY_ESTIMATION SQ_
     | SQ_ QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n SQ_
     | SQ_ QUERY_PLAN_PROFILE SQ_
+    | stringLiterals
     ;
 
 forClause
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 5624e5f862f..d8fa4ddaa35 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -11742,4 +11742,13 @@
             <simple-table name="Person" start-index="14" stop-index="19" />
         </from>
     </select>
+
+    <select sql-case-id="select_use_hint">
+        <projections start-index="7" stop-index="7">
+            <shorthand-projection start-index="7" stop-index="7" />
+        </projections>
+        <from>
+            <simple-table name="Person" start-index="14" stop-index="19" />
+        </from>
+    </select>
 </sql-parser-test-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 e2c25f54a72..0aff6116e47 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
@@ -372,4 +372,5 @@
     <sql-case id="select_maxrecursion_hint" value="SELECT * FROM Person OPTION 
(MAXRECURSION 2);" db-types="SQLServer"/>
     <sql-case id="select_optimize_for_hint" value="SELECT * FROM Person OPTION 
( OPTIMIZE FOR (@city_name = 'Seattle', @postal_code UNKNOWN) );" 
db-types="SQLServer"/>
     <sql-case id="select_fast_hint" value="SELECT * FROM Person OPTION (HASH 
GROUP, FAST 10);" db-types="SQLServer"/>
+    <sql-case id="select_use_hint" value="SELECT * FROM Person OPTION 
(RECOMPILE, USE HINT ('ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES', 
'DISABLE_PARAMETER_SNIFFING'));" db-types="SQLServer"/>
 </sql-cases>

Reply via email to