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>