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 2022/03/24 10:41:11 UTC
[shardingsphere] branch master updated: support extract parameter marker segment in AbstractSQLStatement. (#16335)
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 1874fab support extract parameter marker segment in AbstractSQLStatement. (#16335)
1874fab is described below
commit 1874fab5787952d24973a83a2ab06774ea055d3b
Author: Chuxin Chen <ch...@qq.com>
AuthorDate: Thu Mar 24 18:40:01 2022 +0800
support extract parameter marker segment in AbstractSQLStatement. (#16335)
---
.../impl/MySQLDALStatementSQLVisitor.java | 13 ++++++++++
.../statement/impl/MySQLStatementSQLVisitor.java | 28 ++++++++++++++++++----
.../impl/OpenGaussStatementSQLVisitor.java | 11 ++++++++-
.../impl/OracleDMLStatementSQLVisitor.java | 5 ++++
.../statement/impl/OracleStatementSQLVisitor.java | 12 ++++++++--
.../impl/PostgreSQLStatementSQLVisitor.java | 11 ++++++++-
.../impl/SQL92DMLStatementSQLVisitor.java | 4 ++++
.../statement/impl/SQL92StatementSQLVisitor.java | 12 ++++++++--
.../impl/SQLServerStatementSQLVisitor.java | 16 +++++++++++--
.../simple/ParameterMarkerExpressionSegment.java | 3 ++-
.../ParameterMarkerPaginationValueSegment.java | 4 +++-
.../ParameterMarkerSegment.java} | 15 ++++--------
.../sql/common/statement/AbstractSQLStatement.java | 3 +++
13 files changed, 113 insertions(+), 24 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/statement/impl/MySQLDALStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLDALStatementSQLVisitor.java
index 4c5de68..1540873 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLDALStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLDALStatementSQLVisitor.java
@@ -260,6 +260,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -624,6 +625,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -637,6 +639,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -650,6 +653,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -663,6 +667,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -681,6 +686,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -697,6 +703,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -819,6 +826,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -829,6 +837,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -839,6 +848,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -849,6 +859,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -859,6 +870,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -872,6 +884,7 @@ public final class MySQLDALStatementSQLVisitor extends MySQLStatementSQLVisitor
result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
index bde682d..de2a320 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLStatementSQLVisitor.java
@@ -186,6 +186,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegm
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeLengthSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.WindowSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.DeleteMultiTableSegment;
@@ -223,6 +224,8 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
private int currentParameterIndex;
+ private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>();
+
public MySQLStatementSQLVisitor(final Properties props) {
}
@@ -540,7 +543,9 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
}
if (null != ctx.parameterMarker()) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) visit(ctx.parameterMarker());
- return new ParameterMarkerExpressionSegment(startIndex, stopIndex, parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(startIndex, stopIndex, parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (null != ctx.literals()) {
return SQLUtil.createLiteralExpression(visit(ctx.literals()), startIndex, stopIndex, ctx.literals().start.getInputStream().getText(new Interval(startIndex, stopIndex)));
@@ -608,6 +613,7 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
result.setLock((LockSegment) visit(ctx.lockClauseList()));
}
result.setParameterCount(currentParameterIndex);
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1034,6 +1040,7 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
}
result.setTable((SimpleTableSegment) visit(ctx.tableName()));
result.setParameterCount(currentParameterIndex);
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1105,6 +1112,7 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
}
result.setTable((SimpleTableSegment) visit(ctx.tableName()));
result.setParameterCount(currentParameterIndex);
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1177,6 +1185,7 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
result.setLimit((LimitSegment) visit(ctx.limitClause()));
}
result.setParameterCount(currentParameterIndex);
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1245,6 +1254,7 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
result.setLimit((LimitSegment) visit(ctx.limitClause()));
}
result.setParameterCount(currentParameterIndex);
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1289,6 +1299,7 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
result = (MySQLSelectStatement) visit(ctx.getChild(0));
}
result.setParameterCount(currentParameterIndex);
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1586,7 +1597,10 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
if (null != ctx.numberLiterals()) {
return new NumberLiteralLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((NumberLiteralValue) visit(ctx.numberLiterals())).getValue().longValue());
}
- return new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((ParameterMarkerValue) visit(ctx.parameterMarker())).getValue());
+ ParameterMarkerSegment result = new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(),
+ ((ParameterMarkerValue) visit(ctx.parameterMarker())).getValue());
+ parameterMarkerSegments.add(result);
+ return result;
}
@Override
@@ -1599,7 +1613,10 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
if (null != ctx.numberLiterals()) {
return new NumberLiteralLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((NumberLiteralValue) visit(ctx.numberLiterals())).getValue().longValue());
}
- return new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), ((ParameterMarkerValue) visit(ctx.parameterMarker())).getValue());
+ ParameterMarkerSegment result = new ParameterMarkerLimitValueSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(),
+ ((ParameterMarkerValue) visit(ctx.parameterMarker())).getValue());
+ parameterMarkerSegments.add(result);
+ return result;
}
@Override
@@ -1607,7 +1624,10 @@ public abstract class MySQLStatementSQLVisitor extends MySQLStatementBaseVisitor
if (null != ctx.collationName()) {
return new LiteralExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ctx.collationName().textOrIdentifier().getText());
}
- return new ParameterMarkerExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), ((ParameterMarkerValue) visit(ctx.parameterMarker())).getValue());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(),
+ ((ParameterMarkerValue) visit(ctx.parameterMarker())).getValue());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
/**
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java
index 2cf5aa8..ee85ec5 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java
@@ -152,6 +152,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegm
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeLengthSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.WindowSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
@@ -187,6 +188,8 @@ public abstract class OpenGaussStatementSQLVisitor extends OpenGaussStatementBas
private int currentParameterIndex;
+ private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>();
+
public OpenGaussStatementSQLVisitor(final Properties props) {
}
@@ -324,7 +327,9 @@ public abstract class OpenGaussStatementSQLVisitor extends OpenGaussStatementBas
}
if (null != ctx.parameterMarker()) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) visit(ctx.parameterMarker());
- return new ParameterMarkerExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (null != ctx.aexprConst()) {
ASTNode astNode = visit(ctx.aexprConst());
@@ -595,6 +600,7 @@ public abstract class OpenGaussStatementSQLVisitor extends OpenGaussStatementBas
result.setOnDuplicateKeyColumnsSegment((OnDuplicateKeyColumnsSegment) visit(ctx.optOnDuplicateKey()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -755,6 +761,7 @@ public abstract class OpenGaussStatementSQLVisitor extends OpenGaussStatementBas
result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -773,6 +780,7 @@ public abstract class OpenGaussStatementSQLVisitor extends OpenGaussStatementBas
result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -786,6 +794,7 @@ public abstract class OpenGaussStatementSQLVisitor extends OpenGaussStatementBas
// TODO :Unsupported for withClause.
OpenGaussSelectStatement result = (OpenGaussSelectStatement) visit(ctx.selectNoParens());
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java
index babcc3f..884b07c 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java
@@ -190,6 +190,7 @@ public final class OracleDMLStatementSQLVisitor extends OracleStatementSQLVisito
result.setSelectSubquery(subquerySegment);
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -211,6 +212,7 @@ public final class OracleDMLStatementSQLVisitor extends OracleStatementSQLVisito
SubquerySegment subquerySegment = new SubquerySegment(ctx.selectSubquery().start.getStartIndex(), ctx.selectSubquery().stop.getStopIndex(), subquery);
result.setSelectSubquery(subquerySegment);
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -322,6 +324,7 @@ public final class OracleDMLStatementSQLVisitor extends OracleStatementSQLVisito
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -446,6 +449,7 @@ public final class OracleDMLStatementSQLVisitor extends OracleStatementSQLVisito
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -470,6 +474,7 @@ public final class OracleDMLStatementSQLVisitor extends OracleStatementSQLVisito
public ASTNode visitSelect(final SelectContext ctx) {
OracleSelectStatement result = (OracleSelectStatement) visit(ctx.selectSubquery());
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
if (null != ctx.forUpdateClause()) {
result.setLock((LockSegment) visit(ctx.forUpdateClause()));
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
index 59612407..cd0acfe 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
@@ -98,6 +98,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.Or
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeLengthSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtil;
@@ -127,6 +128,8 @@ public abstract class OracleStatementSQLVisitor extends OracleStatementBaseVisit
private int currentParameterIndex;
+ private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>();
+
public OracleStatementSQLVisitor(final Properties props) {
}
@@ -418,7 +421,10 @@ public abstract class OracleStatementSQLVisitor extends OracleStatementBaseVisit
}
if (astNode instanceof ParameterMarkerValue) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) astNode;
- return new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(),
+ parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (astNode instanceof SubquerySegment) {
return new SubqueryExpressionSegment((SubquerySegment) astNode);
@@ -438,7 +444,9 @@ public abstract class OracleStatementSQLVisitor extends OracleStatementBaseVisit
}
if (null != ctx.parameterMarker()) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) visit(ctx.parameterMarker());
- return new ParameterMarkerExpressionSegment(startIndex, stopIndex, parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(startIndex, stopIndex, parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (null != ctx.literals()) {
return SQLUtil.createLiteralExpression(visit(ctx.literals()), startIndex, stopIndex, ctx.literals().start.getInputStream().getText(new Interval(startIndex, stopIndex)));
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
index 673b7f4..35f7679 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
@@ -149,6 +149,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegm
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeLengthSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.WindowSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
@@ -184,6 +185,8 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
private int currentParameterIndex;
+ private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>();
+
public PostgreSQLStatementSQLVisitor(final Properties props) {
}
@@ -321,7 +324,9 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
}
if (null != ctx.parameterMarker()) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) visit(ctx.parameterMarker());
- return new ParameterMarkerExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (null != ctx.aexprConst()) {
ASTNode astNode = visit(ctx.aexprConst());
@@ -589,6 +594,7 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
PostgreSQLInsertStatement result = (PostgreSQLInsertStatement) visit(ctx.insertRest());
result.setTable((SimpleTableSegment) visit(ctx.insertTarget()));
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -722,6 +728,7 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -740,6 +747,7 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
result.setWhere((WhereSegment) visit(ctx.whereOrCurrentClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -753,6 +761,7 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
// TODO :Unsupported for withClause.
PostgreSQLSelectStatement result = (PostgreSQLSelectStatement) visit(ctx.selectNoParens());
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java
index 0ce2343..19a3718 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java
@@ -116,6 +116,7 @@ public final class SQL92DMLStatementSQLVisitor extends SQL92StatementSQLVisitor
SQL92InsertStatement result = (SQL92InsertStatement) visit(ctx.insertValuesClause());
result.setTable((SimpleTableSegment) visit(ctx.tableName()));
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -151,6 +152,7 @@ public final class SQL92DMLStatementSQLVisitor extends SQL92StatementSQLVisitor
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -200,6 +202,7 @@ public final class SQL92DMLStatementSQLVisitor extends SQL92StatementSQLVisitor
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -217,6 +220,7 @@ public final class SQL92DMLStatementSQLVisitor extends SQL92StatementSQLVisitor
// TODO :Unsupported for withClause.
SQL92SelectStatement result = (SQL92SelectStatement) visit(ctx.unionClause());
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92StatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92StatementSQLVisitor.java
index d8183f4..21e1db3 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92StatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92StatementSQLVisitor.java
@@ -84,6 +84,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.Or
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeLengthSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtil;
@@ -113,6 +114,8 @@ public abstract class SQL92StatementSQLVisitor extends SQL92StatementBaseVisitor
private int currentParameterIndex;
+ private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>();
+
public SQL92StatementSQLVisitor(final Properties props) {
}
@@ -357,7 +360,10 @@ public abstract class SQL92StatementSQLVisitor extends SQL92StatementBaseVisitor
}
if (astNode instanceof ParameterMarkerValue) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) astNode;
- return new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(),
+ parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (astNode instanceof SubquerySegment) {
return new SubqueryExpressionSegment((SubquerySegment) astNode);
@@ -377,7 +383,9 @@ public abstract class SQL92StatementSQLVisitor extends SQL92StatementBaseVisitor
}
if (null != ctx.parameterMarker()) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) visit(ctx.parameterMarker());
- return new ParameterMarkerExpressionSegment(startIndex, stopIndex, parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(startIndex, stopIndex, parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (null != ctx.literals()) {
return SQLUtil.createLiteralExpression(visit(ctx.literals()), startIndex, stopIndex, ctx.literals().start.getInputStream().getText(new Interval(startIndex, stopIndex)));
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/impl/SQLServerStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/impl/SQLServerStatementSQLVisitor.java
index e3ef562..7cd4964 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/impl/SQLServerStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/impl/SQLServerStatementSQLVisitor.java
@@ -156,6 +156,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeL
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OutputSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.WithSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.DeleteMultiTableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
@@ -194,6 +195,8 @@ public abstract class SQLServerStatementSQLVisitor extends SQLServerStatementBas
private int currentParameterIndex;
+ private final Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>();
+
public SQLServerStatementSQLVisitor(final Properties props) {
}
@@ -470,7 +473,10 @@ public abstract class SQLServerStatementSQLVisitor extends SQLServerStatementBas
}
if (astNode instanceof ParameterMarkerValue) {
ParameterMarkerValue parameterMarker = (ParameterMarkerValue) astNode;
- return new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(), parameterMarker.getValue(), parameterMarker.getType());
+ ParameterMarkerExpressionSegment segment = new ParameterMarkerExpressionSegment(context.start.getStartIndex(), context.stop.getStopIndex(),
+ parameterMarker.getValue(), parameterMarker.getType());
+ parameterMarkerSegments.add(segment);
+ return segment;
}
if (astNode instanceof SubquerySegment) {
return new SubqueryExpressionSegment((SubquerySegment) astNode);
@@ -669,6 +675,7 @@ public abstract class SQLServerStatementSQLVisitor extends SQLServerStatementBas
// TODO :Unsupported for withClause.
SQLServerSelectStatement result = (SQLServerSelectStatement) visit(ctx.aggregationClause());
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -825,6 +832,7 @@ public abstract class SQLServerStatementSQLVisitor extends SQLServerStatementBas
}
result.setTable((SimpleTableSegment) visit(ctx.tableName()));
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -944,6 +952,7 @@ public abstract class SQLServerStatementSQLVisitor extends SQLServerStatementBas
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1003,6 +1012,7 @@ public abstract class SQLServerStatementSQLVisitor extends SQLServerStatementBas
result.setWhere((WhereSegment) visit(ctx.whereClause()));
}
result.setParameterCount(getCurrentParameterIndex());
+ result.getParameterMarkerSegments().addAll(getParameterMarkerSegments());
return result;
}
@@ -1070,7 +1080,9 @@ public abstract class SQLServerStatementSQLVisitor extends SQLServerStatementBas
if (topNum instanceof NumberLiteralValue) {
return new NumberLiteralRowNumberValueSegment(startIndex, stopIndex, ((NumberLiteralValue) topNum).getValue().longValue(), false);
}
- return new ParameterMarkerRowNumberValueSegment(startIndex, stopIndex, ((ParameterMarkerValue) topNum).getValue(), false);
+ ParameterMarkerSegment result = new ParameterMarkerRowNumberValueSegment(startIndex, stopIndex, ((ParameterMarkerValue) topNum).getValue(), false);
+ parameterMarkerSegments.add(result);
+ return result;
}
@Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ParameterMarkerExpressionSegment.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ParameterMarkerExpressionSegment.java
index 0414090..3dc82ea 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ParameterMarkerExpressionSegment.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/expr/simple/ParameterMarkerExpressionSegment.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.constant.ParameterMarkerT
import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasAvailable;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import java.util.Optional;
@@ -36,7 +37,7 @@ import java.util.Optional;
@Getter
@ToString
@EqualsAndHashCode
-public class ParameterMarkerExpressionSegment implements SimpleExpressionSegment, ProjectionSegment, AliasAvailable {
+public class ParameterMarkerExpressionSegment implements SimpleExpressionSegment, ProjectionSegment, AliasAvailable, ParameterMarkerSegment {
private final int startIndex;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/pagination/ParameterMarkerPaginationValueSegment.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/pagination/ParameterMarkerPaginationValueSegment.java
index 34f961a..fbaf2e6 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/pagination/ParameterMarkerPaginationValueSegment.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/pagination/ParameterMarkerPaginationValueSegment.java
@@ -17,10 +17,12 @@
package org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
+
/**
* Pagination value segment for parameter marker.
*/
-public interface ParameterMarkerPaginationValueSegment extends PaginationValueSegment {
+public interface ParameterMarkerPaginationValueSegment extends PaginationValueSegment, ParameterMarkerSegment {
/**
* Get parameter index.
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/pagination/ParameterMarkerPaginationValueSegment.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/generic/ParameterMarkerSegment.java
similarity index 76%
copy from shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/pagination/ParameterMarkerPaginationValueSegment.java
copy to shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/generic/ParameterMarkerSegment.java
index 34f961a..f417bac 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/pagination/ParameterMarkerPaginationValueSegment.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/generic/ParameterMarkerSegment.java
@@ -15,17 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination;
+package org.apache.shardingsphere.sql.parser.sql.common.segment.generic;
+
+import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
/**
- * Pagination value segment for parameter marker.
+ * Parameter marker segment.
*/
-public interface ParameterMarkerPaginationValueSegment extends PaginationValueSegment {
-
- /**
- * Get parameter index.
- *
- * @return parameter index
- */
- int getParameterIndex();
+public interface ParameterMarkerSegment extends SQLSegment {
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/AbstractSQLStatement.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/AbstractSQLStatement.java
index ebe5695..05c4a9d 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/AbstractSQLStatement.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/AbstractSQLStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sql.parser.sql.common.statement;
import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.CommentSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.ParameterMarkerSegment;
import java.util.Collection;
import java.util.LinkedList;
@@ -33,5 +34,7 @@ public abstract class AbstractSQLStatement implements SQLStatement {
private int parameterCount;
+ private Collection<ParameterMarkerSegment> parameterMarkerSegments = new LinkedList<>();
+
private Collection<CommentSegment> commentSegments = new LinkedList<>();
}