You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ch...@apache.org on 2023/08/14 11:23:56 UTC
[shardingsphere] branch master updated: Fix wrong parse result with mysql great than operator (#28079)
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 6d3bb9e22c0 Fix wrong parse result with mysql great than operator (#28079)
6d3bb9e22c0 is described below
commit 6d3bb9e22c062b27feefbb7139b15e0af09db417
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Mon Aug 14 19:23:49 2023 +0800
Fix wrong parse result with mysql great than operator (#28079)
---
.../sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java | 7 +------
test/it/parser/src/main/resources/case/dml/select-expression.xml | 2 +-
2 files changed, 2 insertions(+), 7 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 e368a630c42..04d14fffd13 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
@@ -485,17 +485,12 @@ public abstract class MySQLStatementVisitor extends MySQLStatementBaseVisitor<AS
private ASTNode createCompareSegment(final BooleanPrimaryContext ctx) {
ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary());
ExpressionSegment right;
- String operator;
- if (null != ctx.ALL()) {
- operator = null != ctx.SAFE_EQ_() ? ctx.SAFE_EQ_().getText() : ctx.comparisonOperator().getText() + " ALL";
- } else {
- operator = null != ctx.SAFE_EQ_() ? ctx.SAFE_EQ_().getText() : ctx.comparisonOperator().getText();
- }
if (null != ctx.predicate()) {
right = (ExpressionSegment) visit(ctx.predicate());
} else {
right = new SubqueryExpressionSegment(new SubquerySegment(ctx.subquery().start.getStartIndex(), ctx.subquery().stop.getStopIndex(), (MySQLSelectStatement) visit(ctx.subquery())));
}
+ String operator = null != ctx.SAFE_EQ_() ? ctx.SAFE_EQ_().getText() : ctx.comparisonOperator().getText();
String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text);
}
diff --git a/test/it/parser/src/main/resources/case/dml/select-expression.xml b/test/it/parser/src/main/resources/case/dml/select-expression.xml
index 1e1a4770c7f..075775ae35b 100644
--- a/test/it/parser/src/main/resources/case/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-expression.xml
@@ -1007,7 +1007,7 @@
<owner name="t_order" start-index="28" stop-index="34" />
</column>
</left>
- <operator>> ALL</operator>
+ <operator>></operator>
<right>
<subquery start-index="49" stop-index="98">
<select>