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

duanzhengqiang 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 728e128adc8 Refactor MySQLStatementVisitor. (#35601)
728e128adc8 is described below

commit 728e128adc83dd2fbb3e2c20bf9eef898f0a5163
Author: Cong Hu <[email protected]>
AuthorDate: Fri Jun 6 14:54:00 2025 +0800

    Refactor MySQLStatementVisitor. (#35601)
---
 .../parser/mysql/visitor/statement/MySQLStatementVisitor.java    | 9 +--------
 .../opengauss/visitor/statement/OpenGaussStatementVisitor.java   | 5 -----
 .../postgresql/visitor/statement/PostgreSQLStatementVisitor.java | 5 -----
 test/it/parser/src/main/resources/case/dml/select-sub-query.xml  | 4 ++--
 4 files changed, 3 insertions(+), 20 deletions(-)

diff --git 
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
 
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
index d507a5f6f12..657a23fba9c 100644
--- 
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
+++ 
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
@@ -1777,13 +1777,6 @@ public abstract class MySQLStatementVisitor extends 
MySQLStatementBaseVisitor<AS
             result.setAlias(alias);
             return result;
         }
-        if (exprProjection instanceof ExistsSubqueryExpression) {
-            ExistsSubqueryExpression existsSubqueryExpression = 
(ExistsSubqueryExpression) exprProjection;
-            String text = ctx.start.getInputStream().getText(new 
Interval(existsSubqueryExpression.getStartIndex(), 
existsSubqueryExpression.getStopIndex()));
-            SubqueryProjectionSegment result = new 
SubqueryProjectionSegment(((ExistsSubqueryExpression) 
exprProjection).getSubquery(), text);
-            result.setAlias(alias);
-            return result;
-        }
         return createProjection(ctx, alias, exprProjection);
     }
     
@@ -1851,7 +1844,7 @@ public abstract class MySQLStatementVisitor extends 
MySQLStatementBaseVisitor<AS
             return projection;
         }
         if (projection instanceof CaseWhenExpression || projection instanceof 
VariableSegment || projection instanceof BetweenExpression || projection 
instanceof InExpression
-                || projection instanceof CollateExpression || projection 
instanceof NotExpression) {
+                || projection instanceof CollateExpression || projection 
instanceof NotExpression || projection instanceof ExistsSubqueryExpression) {
             return createExpressionProjectionSegment(ctx, alias, projection);
         }
         ExpressionProjectionSegment result = null == alias
diff --git 
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
 
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
index 761fed4260f..5f98b48ddc0 100644
--- 
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
+++ 
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
@@ -1182,11 +1182,6 @@ public abstract class OpenGaussStatementVisitor extends 
OpenGaussStatementBaseVi
             String text = ctx.start.getInputStream().getText(new 
Interval(subqueryExpression.getStartIndex(), 
subqueryExpression.getStopIndex()));
             return new 
SubqueryProjectionSegment(subqueryExpression.getSubquery(), text);
         }
-        if (projection instanceof ExistsSubqueryExpression) {
-            ExistsSubqueryExpression existsSubqueryExpression = 
(ExistsSubqueryExpression) projection;
-            String text = ctx.start.getInputStream().getText(new 
Interval(existsSubqueryExpression.getStartIndex(), 
existsSubqueryExpression.getStopIndex()));
-            return new 
SubqueryProjectionSegment(existsSubqueryExpression.getSubquery(), text);
-        }
         if (projection instanceof ExpressionSegment) {
             return new ExpressionProjectionSegment(ctx.start.getStartIndex(), 
ctx.stop.getStopIndex(), getOriginalText(expr), (ExpressionSegment) projection);
         }
diff --git 
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
 
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
index ed0ae0b2ae0..e52a2700595 100644
--- 
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
+++ 
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
@@ -1148,11 +1148,6 @@ public abstract class PostgreSQLStatementVisitor extends 
PostgreSQLStatementPars
             String text = ctx.start.getInputStream().getText(new 
Interval(subqueryExpression.getStartIndex(), 
subqueryExpression.getStopIndex()));
             return new 
SubqueryProjectionSegment(subqueryExpression.getSubquery(), text);
         }
-        if (projection instanceof ExistsSubqueryExpression) {
-            ExistsSubqueryExpression existsSubqueryExpression = 
(ExistsSubqueryExpression) projection;
-            String text = ctx.start.getInputStream().getText(new 
Interval(existsSubqueryExpression.getStartIndex(), 
existsSubqueryExpression.getStopIndex()));
-            return new 
SubqueryProjectionSegment(existsSubqueryExpression.getSubquery(), text);
-        }
         if (projection instanceof ExpressionSegment) {
             return new ExpressionProjectionSegment(ctx.start.getStartIndex(), 
ctx.stop.getStopIndex(), getOriginalText(expr), (ExpressionSegment) projection);
         }
diff --git a/test/it/parser/src/main/resources/case/dml/select-sub-query.xml 
b/test/it/parser/src/main/resources/case/dml/select-sub-query.xml
index d3d4ffead23..f850df09d24 100644
--- a/test/it/parser/src/main/resources/case/dml/select-sub-query.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-sub-query.xml
@@ -335,7 +335,7 @@
     
     <select sql-case-id="select_with_exists_sub_query_with_project">
         <projections start-index="7" stop-index="36">
-            <subquery-projection start-index="14" stop-index="36" text="EXISTS 
(SELECT 1 FROM t_order)" literal-text="EXISTS (SELECT 1 FROM t_order)">
+            <expression-projection start-index="7" stop-index="36" 
text="EXISTS (SELECT 1 FROM t_order)" literal-text="EXISTS (SELECT 1 FROM 
t_order)">
                 <subquery start-index="15" stop-index="35">
                     <select>
                         <from>
@@ -346,7 +346,7 @@
                         </projections>
                     </select>
                 </subquery>
-            </subquery-projection>
+            </expression-projection>
         </projections>
     </select>
 

Reply via email to