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 f37dcd6cfe3 fix:Support for the COLLATION identifier (#36204)
f37dcd6cfe3 is described below
commit f37dcd6cfe3d3ab7b0ce3c2cf23ba34b252c3cce
Author: cxy <[email protected]>
AuthorDate: Thu Aug 7 18:26:02 2025 +0800
fix:Support for the COLLATION identifier (#36204)
---
.../src/main/antlr4/imports/sqlserver/BaseRule.g4 | 2 +-
.../parser/src/main/resources/case/dml/select.xml | 29 ++++++++++++++++++++++
.../main/resources/sql/supported/dml/select.xml | 1 +
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git
a/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
b/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
index 8afdb57f678..565c063e38e 100644
--- a/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
+++ b/parser/sql/dialect/sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
@@ -121,7 +121,7 @@ unreservedWord
| ELASTIC_POOL | SERVICE_OBJECTIVE | DATABASE_NAME | ALLOW_CONNECTIONS |
GEO | NAMED | DATEFIRST | BACKUP_STORAGE_REDUNDANCY |
FORCE_FAILOVER_ALLOW_DATA_LOSS | SECONDARY | FAILOVER |
DEFAULT_FULLTEXT_LANGUAGE
| DEFAULT_LANGUAGE | INLINE | NESTED_TRIGGERS | TRANSFORM_NOISE_WORDS |
TWO_DIGIT_YEAR_CUTOFF | PERSISTENT_LOG_BUFFER | DIRECTORY_NAME | DATEFORMAT |
DELAYED_DURABILITY | TRANSFER | SCHEMA | PASSWORD | AUTHORIZATION
| MEMBER | SEARCH | TEXT | SECOND | PRECISION | VIEWS | PROVIDER | COLUMNS
| SUBSTRING | RETURNS | SIZE | CONTAINS | MONTH | INPUT | YEAR
- | TIMESTAMP | TRIM | USER | RIGHT | JSON | SID | OPENQUERY | ACTION |
TARGET | HOUR | MINUTE | TABLE | NODES | VALUE | EXIST | CHANGETABLE | VERSION
| CHANGES | MODEL | AI_GENERATE_EMBEDDINGS | PARAMETERS | USE | FREETEXTTABLE |
NCHAR | LEFT | RANK | ROLLUP | PIVOT | UNPIVOT | PARSE | TRY_PARSE |
HIERARCHYID | PATINDEX | POSITION | FORCESEEK | FORCESCAN | NOEXPAND |
SPATIAL_WINDOW_MAX_CELLS | LANGUAGE | CATALOG | PRODUCT | SYSTEM | TABLESAMPLE
| LABEL | VALUES
+ | TIMESTAMP | TRIM | USER | RIGHT | JSON | SID | OPENQUERY | ACTION |
TARGET | HOUR | MINUTE | TABLE | NODES | VALUE | EXIST | CHANGETABLE | VERSION
| CHANGES | MODEL | AI_GENERATE_EMBEDDINGS | PARAMETERS | USE | FREETEXTTABLE |
NCHAR | LEFT | RANK | ROLLUP | PIVOT | UNPIVOT | PARSE | TRY_PARSE |
HIERARCHYID | PATINDEX | POSITION | FORCESEEK | FORCESCAN | NOEXPAND |
SPATIAL_WINDOW_MAX_CELLS | LANGUAGE | CATALOG | PRODUCT | SYSTEM | TABLESAMPLE
| LABEL | VALUES | COLLATION
;
databaseName
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 c38e72868ff..935d234d3d5 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -11516,4 +11516,33 @@
</function-table>
</from>
</select>
+
+ <select sql-case-id="select_collation_identifier">
+ <projections start-index="7" stop-index="136">
+ <expression-projection alias="Collation"
text="DATABASEPROPERTYEX('AdventureWorks2022', 'Collation')" start-index="7"
stop-index="72">
+ <expr>
+ <function function-name="DATABASEPROPERTYEX"
text="DATABASEPROPERTYEX('AdventureWorks2022', 'Collation')" start-index="7"
stop-index="59">
+ <parameter>
+ <literal-expression value="AdventureWorks2022"
start-index="26" stop-index="45"/>
+ </parameter>
+ <parameter>
+ <literal-expression value="Collation"
start-index="48" stop-index="58"/>
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ <expression-projection alias="Edition"
text="DATABASEPROPERTYEX('AdventureWorks2022', 'Edition')" start-index="75"
stop-index="136">
+ <expr>
+ <function function-name="DATABASEPROPERTYEX"
text="DATABASEPROPERTYEX('AdventureWorks2022', 'Edition')" start-index="75"
stop-index="125">
+ <parameter>
+ <literal-expression value="AdventureWorks2022"
start-index="94" stop-index="113"/>
+ </parameter>
+ <parameter>
+ <literal-expression value="Edition"
start-index="116" stop-index="124"/>
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ </projections>
+ </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 24864bb0c0d..415828e4d7e 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
@@ -361,4 +361,5 @@
<sql-case id="select_from_tablesample" value="SELECT * FROM Sales.Customer
TABLESAMPLE SYSTEM(10 PERCENT);" db-types="SQLServer"/>
<sql-case id="select_option_clause" value="SELECT ProductID, OrderQty FROM
Sales.SalesOrderDetail WHERE UnitPrice < 5.00 GROUP BY ProductID, OrderQty
OPTION (HASH GROUP, LABEL = N'label1');" db-types="SQLServer"/>
<sql-case id="select_from_value_function" value="SELECT a, b FROM (VALUES
(1, 2), (3, 4)) AS MyTable(a, b);" db-types="SQLServer"/>
+ <sql-case id="select_collation_identifier" value="SELECT
DATABASEPROPERTYEX('AdventureWorks2022', 'Collation') AS Collation,
DATABASEPROPERTYEX('AdventureWorks2022', 'Edition') AS Edition;"
db-types="SQLServer"/>
</sql-cases>