You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2025/06/06 06:54:06 UTC
(shardingsphere) branch master updated: Refactor MySQLStatementVisitor. (#35601)
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 <ia...@gmail.com>
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>