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>