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>