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 5dff0045c0a Support for the FORCE SINGLE NODE PLAN query hint (#36684)
5dff0045c0a is described below

commit 5dff0045c0a061042d8be3f34bd1194bfb509df0
Author: cxy <[email protected]>
AuthorDate: Wed Sep 24 16:12:06 2025 +0800

    Support for the FORCE SINGLE NODE PLAN query hint (#36684)
---
 .../sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4  | 1 +
 .../src/main/antlr4/imports/sqlserver/SQLServerKeyword.g4        | 8 ++++++++
 test/it/parser/src/main/resources/case/dml/select.xml            | 9 +++++++++
 test/it/parser/src/main/resources/sql/supported/dml/select.xml   | 1 +
 4 files changed, 19 insertions(+)

diff --git 
a/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
 
b/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
index 886feb292e2..8d5c79130d7 100644
--- 
a/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
+++ 
b/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4
@@ -352,6 +352,7 @@ queryHint
     | USE PLAN NCHAR_TEXT
     | LABEL EQ_ stringLiterals
     | FOR TIMESTAMP AS OF stringLiterals
+    | FORCE SINGLE NODE PLAN
     ;
 
 optimizeForParameter
diff --git 
a/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/SQLServerKeyword.g4
 
b/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/SQLServerKeyword.g4
index 8f3306d0ea3..b3c1c55e5d8 100644
--- 
a/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/SQLServerKeyword.g4
+++ 
b/parser/sql/engine/dialect/sqlserver/src/main/antlr4/imports/sqlserver/SQLServerKeyword.g4
@@ -2186,3 +2186,11 @@ ONNX
 WINDOW
     : W I N D O W
     ;
+
+SINGLE
+    : S I N G L E
+    ;
+
+NODE
+    : N O D E
+    ;
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 25b274ea6fb..83b5b6ef234 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -11769,4 +11769,13 @@
             <simple-table name="Person" start-index="14" stop-index="19" />
         </from>
     </select>
+
+    <select sql-case-id="select_force_single_node_plan_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 28d6dadb391..4c09f62fa8a 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
@@ -375,4 +375,5 @@
     <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-case id="select_maxdop_hint" value="SELECT * FROM Person OPTION 
(MAXDOP 2);" db-types="SQLServer"/>
     <sql-case id="select_for_timestamp_as_of_hint" value="SELECT * FROM Person 
OPTION (FOR TIMESTAMP AS OF '2024-03-13T19:39:35.28');" db-types="SQLServer"/>
+    <sql-case id="select_force_single_node_plan_hint" value="SELECT * FROM 
Person OPTION (FORCE SINGLE NODE PLAN);" db-types="SQLServer"/>
 </sql-cases>

Reply via email to