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 a3bc0b16650 fix:Enhance support for the IDENTITY function (#36245)
a3bc0b16650 is described below
commit a3bc0b16650c133a528ddca6a210bdb2c6206615
Author: cxy <[email protected]>
AuthorDate: Mon Aug 11 14:31:24 2025 +0800
fix:Enhance support for the IDENTITY function (#36245)
---
.../src/main/antlr4/imports/sqlserver/BaseRule.g4 | 2 +-
.../parser/src/main/resources/case/dml/select.xml | 26 ++++++++++++++++++++++
.../main/resources/sql/supported/dml/select.xml | 1 +
3 files changed, 28 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 d9bf302ee4e..478ca3e534c 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 | COLLATION | VECTOR_SE [...]
+ | 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 | VECTOR_SE [...]
;
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 e2878c26adf..3e139ebd271 100644
--- a/test/it/parser/src/main/resources/case/dml/select.xml
+++ b/test/it/parser/src/main/resources/case/dml/select.xml
@@ -11614,4 +11614,30 @@
<column-item name="Region" start-index="126" stop-index="131"/>
</group-by>
</select>
+
+ <select sql-case-id="select_identity_function">
+ <projections start-index="7" stop-index="33">
+ <expression-projection text="IDENTITY(int,1,1)" alias="ID_Num"
start-index="7" stop-index="33">
+ <expr>
+ <function function-name="IDENTITY" start-index="7"
stop-index="23" text="IDENTITY(int,1,1)">
+ <parameter>
+ <column name="int" start-index="16"
stop-index="18" />
+ </parameter>
+ <parameter>
+ <literal-expression value="1" start-index="20"
stop-index="20" />
+ </parameter>
+ <parameter>
+ <literal-expression value="1" start-index="22"
stop-index="22" />
+ </parameter>
+ </function>
+ </expr>
+ </expression-projection>
+ </projections>
+ <into start-index="37" stop-index="49">
+ <simple-table name="NewTable" start-index="40" stop-index="47"/>
+ </into>
+ <from start-index="50" stop-index="63">
+ <simple-table name="OldTable" start-index="54" stop-index="61"/>
+ </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 2cbac88ce57..3907d7b4ec6 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
@@ -365,4 +365,5 @@
<sql-case id="select_with_temptable_no_alias" value="SELECT * FROM
OPENXML(@idoc, '/ROOT/Customer', 1) WITH (CustomerID VARCHAR(10),ContactName
VARCHAR(20));" db-types="SQLServer"/>
<sql-case id="select_vector_search_function" value="SELECT r.* FROM
VECTOR_SEARCH(TABLE = dbo.sessions AS s, COLUMN = embedding, SIMILAR_TO = @qv,
METRIC = 'cosine', TOP_N = 10) AS r;" db-types="SQLServer"/>
<sql-case id="select_grouping_sets" value="SELECT Country, Region,
SUM(Sales) AS TotalSales FROM Sales GROUP BY GROUPING SETS ( ROLLUP (Country,
Region), CUBE (Country, Region));" db-types="SQLServer"/>
+ <sql-case id="select_identity_function" value="SELECT IDENTITY(int,1,1) AS
ID_Num INTO NewTable FROM OldTable;" db-types="SQLServer"/>
</sql-cases>