You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/07/29 03:03:24 UTC
[shardingsphere] branch master updated: fix 6451 (#6477)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 c9c6346 fix 6451 (#6477)
c9c6346 is described below
commit c9c6346c1277a0135d883e0f1e4d7d5d977a98ed
Author: JingShang Lu <ji...@gmail.com>
AuthorDate: Wed Jul 29 11:03:13 2020 +0800
fix 6451 (#6477)
* fix 6451
* fix test case
* fix
---
.../sql/parser/mysql/visitor/MySQLVisitor.java | 54 ++++++++++++++--------
.../sql/parser/oracle/visitor/OracleVisitor.java | 3 +-
.../postgresql/visitor/PostgreSQLVisitor.java | 3 +-
.../parser/sqlserver/visitor/SQLServerVisitor.java | 6 ++-
.../src/test/resources/case/dml/insert.xml | 6 +--
.../src/test/resources/case/dml/replace.xml | 4 +-
.../test/resources/case/dml/select-aggregate.xml | 2 +-
.../src/test/resources/case/dml/update.xml | 2 +-
8 files changed, 51 insertions(+), 29 deletions(-)
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java
index aa9b6b3..bc713e3 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java
@@ -278,7 +278,8 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor<ASTNode> {
return new SubquerySegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), (SelectStatement) visit(ctx.subquery()));
}
//TODO deal with IS NOT? (TRUE | FALSE | UNKNOWN | NULL)
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
private ASTNode createCompareSegment(final BooleanPrimaryContext ctx) {
@@ -369,7 +370,8 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor<ASTNode> {
if (null != ctx.predicate()) {
visit(ctx.predicate());
}
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
@@ -378,7 +380,8 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor<ASTNode> {
return createExpressionSegment(visit(ctx.simpleExpr()), ctx);
}
visitRemainBitExpr(ctx);
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
private ASTNode createExpressionSegment(final ASTNode astNode, final ParserRuleContext context) {
@@ -459,8 +462,9 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor<ASTNode> {
@Override
public final ASTNode visitAggregationFunction(final AggregationFunctionContext ctx) {
String aggregationType = ctx.aggregationFunctionName().getText();
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
return AggregationType.isAggregationType(aggregationType)
- ? createAggregationSegment(ctx, aggregationType) : new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ ? createAggregationSegment(ctx, aggregationType) : new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
private ASTNode createAggregationSegment(final AggregationFunctionContext ctx, final String aggregationType) {
@@ -509,61 +513,71 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor<ASTNode> {
if (null != ctx.weightStringFunction()) {
return visit(ctx.weightStringFunction());
}
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitGroupConcatFunction(final GroupConcatFunctionContext ctx) {
calculateParameterCount(ctx.expr());
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitWindowFunction(final WindowFunctionContext ctx) {
calculateParameterCount(ctx.expr());
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitCastFunction(final CastFunctionContext ctx) {
calculateParameterCount(Collections.singleton(ctx.expr()));
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitConvertFunction(final ConvertFunctionContext ctx) {
calculateParameterCount(Collections.singleton(ctx.expr()));
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitPositionFunction(final PositionFunctionContext ctx) {
calculateParameterCount(ctx.expr());
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitSubstringFunction(final SubstringFunctionContext ctx) {
calculateParameterCount(Collections.singleton(ctx.expr()));
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitExtractFunction(final ExtractFunctionContext ctx) {
calculateParameterCount(Collections.singleton(ctx.expr()));
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitCharFunction(final CharFunctionContext ctx) {
calculateParameterCount(ctx.expr());
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitWeightStringFunction(final WeightStringFunctionContext ctx) {
calculateParameterCount(Collections.singleton(ctx.expr()));
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
@@ -571,7 +585,8 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor<ASTNode> {
if (null != ctx.completeRegularFunction()) {
calculateParameterCount(ctx.completeRegularFunction().expr());
}
- return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new ExpressionProjectionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
private ASTNode visitRemainSimpleExpr(final SimpleExprContext ctx) {
@@ -584,18 +599,21 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor<ASTNode> {
for (SimpleExprContext each : ctx.simpleExpr()) {
visit(each);
}
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitMatchExpression_(final MatchExpression_Context ctx) {
visit(ctx.expr());
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
public final ASTNode visitCaseExpression(final CaseExpressionContext ctx) {
- return new OtherLiteralValue(ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new OtherLiteralValue(text);
}
@Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/OracleVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/OracleVisitor.java
index 91d4632..a32f5bd 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/OracleVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/OracleVisitor.java
@@ -358,7 +358,8 @@ public abstract class OracleVisitor extends OracleStatementBaseVisitor<ASTNode>
return createExpressionSegment(visit(ctx.simpleExpr()), ctx);
}
visitRemainBitExpr(ctx);
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
private ASTNode createExpressionSegment(final ASTNode astNode, final ParserRuleContext context) {
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/PostgreSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/PostgreSQLVisitor.java
index 65f083a..26d9804 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/PostgreSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/PostgreSQLVisitor.java
@@ -203,7 +203,8 @@ public abstract class PostgreSQLVisitor extends PostgreSQLStatementBaseVisitor<A
return visit(ctx.aExpr(0));
}
super.visitAExpr(ctx);
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/SQLServerVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/SQLServerVisitor.java
index 2cd6948..2719c8d 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/SQLServerVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/SQLServerVisitor.java
@@ -350,7 +350,8 @@ public abstract class SQLServerVisitor extends SQLServerStatementBaseVisitor<AST
if (null != ctx.predicate()) {
visit(ctx.predicate());
}
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
@Override
@@ -359,7 +360,8 @@ public abstract class SQLServerVisitor extends SQLServerStatementBaseVisitor<AST
return createExpressionSegment(visit(ctx.simpleExpr()), ctx);
}
visitRemainBitExpr(ctx);
- return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ctx.getText());
+ String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+ return new CommonExpressionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), text);
}
private ASTNode createExpressionSegment(final ASTNode astNode, final ParserRuleContext context) {
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
index 01a0e4d..c4a0e3c 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
@@ -987,7 +987,7 @@
<value>
<assignment-value>
<parameter-marker-expression value="0" start-index="89" stop-index="89" />
- <common-expression text="str_to_date(?,'%Y-%m-%d')" literal-text="str_to_date(2019-12-10,'%Y-%m-%d')" start-index="61" stop-index="86" literal-start-index="61" literal-stop-index="95" />
+ <common-expression text="str_to_date(?, '%Y-%m-%d')" literal-text="str_to_date(2019-12-10, '%Y-%m-%d')" start-index="61" stop-index="86" literal-start-index="61" literal-stop-index="95" />
</assignment-value>
<assignment-value>
<parameter-marker-expression value="1" start-index="89" stop-index="89" />
@@ -1021,7 +1021,7 @@
<assignment start-index="51" stop-index="111" literal-stop-index="116">
<column name="status" start-index="51" stop-index="56" />
<assignment-value>
- <common-expression text="convert(to_base64(aes_encrypt(?,'key'))USINGutf8)" literal-text="convert(to_base64(aes_encrypt('init','key'))USINGutf8)" start-index="60" stop-index="111" literal-start-index="60" literal-stop-index="116" />
+ <common-expression text="convert(to_base64(aes_encrypt(?, 'key')) USING utf8)" literal-text="convert(to_base64(aes_encrypt('init', 'key')) USING utf8)" start-index="60" stop-index="111" literal-start-index="60" literal-stop-index="116" />
</assignment-value>
</assignment>
</set>
@@ -1100,7 +1100,7 @@
<value>
<assignment-value>
<parameter-marker-expression value="0" start-index="96" stop-index="96" />
- <common-expression text="date_add(now(),interval?second)" literal-text="date_add(now(),interval1second)" start-index="61" stop-index="93" literal-start-index="61" literal-stop-index="93" />
+ <common-expression text="date_add(now(),interval ? second)" literal-text="date_add(now(),interval 1 second)" start-index="61" stop-index="93" literal-start-index="61" literal-stop-index="93" />
</assignment-value>
<assignment-value>
<parameter-marker-expression value="1" start-index="96" stop-index="96" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/replace.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/replace.xml
index 79743b1..b872312 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/replace.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/replace.xml
@@ -794,7 +794,7 @@
<value>
<assignment-value>
<parameter-marker-expression value="0" start-index="90" stop-index="90" />
- <common-expression text="str_to_date(?,'%Y-%m-%d')" literal-text="str_to_date(2019-12-10,'%Y-%m-%d')" start-index="62" stop-index="87" literal-start-index="62" literal-stop-index="96" />
+ <common-expression text="str_to_date(?, '%Y-%m-%d')" literal-text="str_to_date(2019-12-10, '%Y-%m-%d')" start-index="62" stop-index="87" literal-start-index="62" literal-stop-index="96" />
</assignment-value>
<assignment-value>
<parameter-marker-expression value="1" start-index="90" stop-index="90" />
@@ -819,7 +819,7 @@
<value>
<assignment-value>
<parameter-marker-expression value="0" start-index="97" stop-index="97" />
- <common-expression text="date_add(now(),interval?second)" literal-text="date_add(now(),interval1second)" start-index="62" stop-index="94" literal-start-index="62" literal-stop-index="94" />
+ <common-expression text="date_add(now(),interval ? second)" literal-text="date_add(now(),interval 1 second)" start-index="62" stop-index="94" literal-start-index="62" literal-stop-index="94" />
</assignment-value>
<assignment-value>
<parameter-marker-expression value="1" start-index="97" stop-index="97" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-aggregate.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-aggregate.xml
index 4e6a7e2..a64249a 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-aggregate.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-aggregate.xml
@@ -76,7 +76,7 @@
<column-left-value name="order_id" start-index="51" stop-index="58" />
<operator type=">" />
<compare-right-value>
- <common-expression text="1-1" start-index="62" stop-index="66" literal-start-index="62" literal-stop-index="66"/>
+ <common-expression text="1 - 1" start-index="62" stop-index="66" literal-start-index="62" literal-stop-index="66"/>
</compare-right-value>
</predicate>
</and-predicate>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/update.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/update.xml
index f3f3668..60356d8 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/update.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/update.xml
@@ -397,7 +397,7 @@
<column-left-value name="order_id" start-index="36" stop-index="43" literal-start-index="36" literal-stop-index="43" />
<operator type="=" />
<compare-right-value>
- <common-expression text="order_id-?" literal-text="order_id-2" start-index="47" stop-index="58" literal-start-index="47" literal-stop-index="58"/>
+ <common-expression text="order_id - ?" literal-text="order_id - 2" start-index="47" stop-index="58" literal-start-index="47" literal-stop-index="58"/>
</compare-right-value>
</predicate>
<predicate start-index="64" stop-index="74" literal-start-index="64" literal-stop-index="74">