This is an automated email from the ASF dual-hosted git repository.

tuichenchuxin 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 67b7a068332 Fix sqlServer unqualified shorthand parsing (#29354)
67b7a068332 is described below

commit 67b7a068332038f12f2eca4bddf7566a48f7c2ec
Author: ZhangCheng <[email protected]>
AuthorDate: Tue Dec 19 10:23:30 2023 +0800

    Fix sqlServer unqualified shorthand parsing (#29354)
---
 .../sqlserver/src/main/antlr4/imports/sqlserver/DMLStatement.g4      | 2 +-
 .../sqlserver/visitor/statement/SQLServerStatementVisitor.java       | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

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 e868949cba9..05e32f0c2c9 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
@@ -89,7 +89,7 @@ duplicateSpecification
     ;
 
 projections
-    : (unqualifiedShorthand | projection) (COMMA_ projection)*
+    : (unqualifiedShorthand | projection) (COMMA_ (unqualifiedShorthand | 
projection))*
     ;
 
 projection
diff --git 
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
 
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
index af86cd13b07..0e50e554efe 100644
--- 
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
+++ 
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
@@ -102,6 +102,7 @@ import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.Tab
 import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.TableReferenceContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.TableReferencesContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.TopContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.UnqualifiedShorthandContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.UnreservedWordContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.UpdateContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.ViewNameContext;
@@ -850,8 +851,8 @@ public abstract class SQLServerStatementVisitor extends 
SQLServerStatementBaseVi
     @Override
     public ASTNode visitProjections(final ProjectionsContext ctx) {
         Collection<ProjectionSegment> projections = new LinkedList<>();
-        if (null != ctx.unqualifiedShorthand()) {
-            projections.add(new 
ShorthandProjectionSegment(ctx.unqualifiedShorthand().getStart().getStartIndex(),
 ctx.unqualifiedShorthand().getStop().getStopIndex()));
+        for (UnqualifiedShorthandContext each : ctx.unqualifiedShorthand()) {
+            projections.add(new 
ShorthandProjectionSegment(each.getStart().getStartIndex(), 
each.getStop().getStopIndex()));
         }
         for (ProjectionContext each : ctx.projection()) {
             projections.add((ProjectionSegment) visit(each));

Reply via email to