This is an automated email from the ASF dual-hosted git repository.
wuweijie 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 0bb53ad5687 Merge AssignmentSegment and ColumnAssignmentSegment
(#29605)
0bb53ad5687 is described below
commit 0bb53ad56872a618f2c64cc9925da4cb1b936b5c
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Dec 30 23:32:15 2023 +0800
Merge AssignmentSegment and ColumnAssignmentSegment (#29605)
* Fix javadoc on ShardingSpherePrivileges
* Merge AssignmentSegment and ColumnAssignmentSegment
---
.../EncryptAssignmentParameterRewriter.java | 4 +-
.../generator/EncryptAssignmentTokenGenerator.java | 18 +++++----
.../EncryptInsertOnUpdateTokenGenerator.java | 22 ++++++-----
.../EncryptAssignmentTokenGeneratorTest.java | 4 +-
.../EncryptInsertOnUpdateTokenGeneratorTest.java | 9 ++---
.../dml/ShardingDMLStatementValidator.java | 10 ++---
.../dml/impl/ShardingInsertStatementValidator.java | 6 +--
.../dml/ShardingInsertStatementValidatorTest.java | 3 +-
.../dml/ShardingUpdateStatementValidatorTest.java | 3 +-
.../insert/values/OnDuplicateUpdateContext.java | 6 +--
.../statement/dml/InsertStatementContext.java | 8 ++--
.../segment/assign/AssignmentSegmentBinder.java | 13 ++-----
.../binder/statement/dml/MergeStatementBinder.java | 5 +--
.../values/OnDuplicateUpdateContextTest.java | 23 ++++++-----
.../statement/SQLStatementContextFactoryTest.java | 6 +--
.../statement/dml/InsertStatementContextTest.java | 9 ++---
.../assign/AssignmentSegmentBinderTest.java | 3 +-
.../statement/merge/MergeStatementConverter.java | 4 +-
.../statement/update/UpdateStatementConverter.java | 4 +-
.../visitor/statement/MySQLStatementVisitor.java | 9 ++---
.../statement/OpenGaussStatementVisitor.java | 15 ++++----
.../statement/type/OracleDMLStatementVisitor.java | 39 ++++++++++---------
.../statement/PostgreSQLStatementVisitor.java | 13 +++----
.../statement/type/SQL92DMLStatementVisitor.java | 7 ++--
.../statement/SQLServerStatementVisitor.java | 11 +++---
.../sql/common/extractor/TableExtractor.java | 4 +-
.../segment/dml/assignment/AssignmentSegment.java | 44 ----------------------
.../dml/assignment/ColumnAssignmentSegment.java | 3 +-
.../dml/assignment/SetAssignmentSegment.java | 2 +-
.../dml/column/OnDuplicateKeyColumnsSegment.java | 4 +-
.../sql/common/extractor/TableExtractorTest.java | 3 +-
.../HeterogeneousUpdateStatementChecker.java | 7 ++--
.../type/HBaseUpdateOperationConverter.java | 4 +-
.../segment/assignment/AssignmentAssert.java | 4 +-
.../insert/OnDuplicateKeyColumnsAssert.java | 6 +--
.../asserts/segment/set/SetClauseAssert.java | 6 +--
36 files changed, 141 insertions(+), 200 deletions(-)
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
index 763072b441a..5470724bce9 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
@@ -32,7 +32,7 @@ import
org.apache.shardingsphere.infra.rewrite.parameter.builder.ParameterBuilde
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.GroupedParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.builder.impl.StandardParameterBuilder;
import
org.apache.shardingsphere.infra.rewrite.parameter.rewriter.ParameterRewriter;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
@@ -71,7 +71,7 @@ public final class EncryptAssignmentParameterRewriter
implements ParameterRewrit
public void rewrite(final ParameterBuilder paramBuilder, final
SQLStatementContext sqlStatementContext, final List<Object> params) {
String tableName = ((TableAvailable)
sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> new
DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(databaseName));
- for (AssignmentSegment each :
getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments())
{
+ for (ColumnAssignmentSegment each :
getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments())
{
String columnName =
each.getColumns().get(0).getIdentifier().getValue();
if (each.getValue() instanceof ParameterMarkerExpressionSegment &&
encryptRule.findEncryptTable(tableName).map(optional ->
optional.isEncryptColumn(columnName)).orElse(false)) {
EncryptColumn encryptColumn =
encryptRule.getEncryptTable(tableName).getEncryptColumn(columnName);
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
index 5cb725c2cfe..f7394194f32 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
@@ -34,7 +34,7 @@ import
org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
@@ -70,7 +70,7 @@ public final class EncryptAssignmentTokenGenerator implements
CollectionSQLToken
String tableName = ((TableAvailable)
sqlStatementContext).getAllTables().iterator().next().getTableName().getIdentifier().getValue();
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> new
DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(databaseName));
- for (AssignmentSegment each :
getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments())
{
+ for (ColumnAssignmentSegment each :
getSetAssignmentSegment(sqlStatementContext.getSqlStatement()).getAssignments())
{
String columnName =
each.getColumns().get(0).getIdentifier().getValue();
if (encryptTable.isEncryptColumn(columnName)) {
generateSQLToken(schemaName, encryptTable.getTable(),
encryptTable.getEncryptColumn(columnName), each).ifPresent(result::add);
@@ -88,7 +88,7 @@ public final class EncryptAssignmentTokenGenerator implements
CollectionSQLToken
return ((UpdateStatement) sqlStatement).getSetAssignment();
}
- private Optional<EncryptAssignmentToken> generateSQLToken(final String
schemaName, final String tableName, final EncryptColumn encryptColumn, final
AssignmentSegment segment) {
+ private Optional<EncryptAssignmentToken> generateSQLToken(final String
schemaName, final String tableName, final EncryptColumn encryptColumn, final
ColumnAssignmentSegment segment) {
if (segment.getValue() instanceof ParameterMarkerExpressionSegment) {
return Optional.of(generateParameterSQLToken(encryptColumn,
segment));
}
@@ -98,7 +98,7 @@ public final class EncryptAssignmentTokenGenerator implements
CollectionSQLToken
return Optional.empty();
}
- private EncryptAssignmentToken generateParameterSQLToken(final
EncryptColumn encryptColumn, final AssignmentSegment segment) {
+ private EncryptAssignmentToken generateParameterSQLToken(final
EncryptColumn encryptColumn, final ColumnAssignmentSegment segment) {
EncryptParameterAssignmentToken result = new
EncryptParameterAssignmentToken(segment.getColumns().get(0).getStartIndex(),
segment.getStopIndex());
result.addColumnName(encryptColumn.getCipher().getName());
encryptColumn.getAssistedQuery().ifPresent(optional ->
result.addColumnName(optional.getName()));
@@ -106,7 +106,7 @@ public final class EncryptAssignmentTokenGenerator
implements CollectionSQLToken
return result;
}
- private EncryptAssignmentToken generateLiteralSQLToken(final String
schemaName, final String tableName, final EncryptColumn encryptColumn, final
AssignmentSegment segment) {
+ private EncryptAssignmentToken generateLiteralSQLToken(final String
schemaName, final String tableName, final EncryptColumn encryptColumn, final
ColumnAssignmentSegment segment) {
EncryptLiteralAssignmentToken result = new
EncryptLiteralAssignmentToken(segment.getColumns().get(0).getStartIndex(),
segment.getStopIndex());
addCipherAssignment(schemaName, tableName, encryptColumn, segment,
result);
addAssistedQueryAssignment(schemaName, tableName, encryptColumn,
segment, result);
@@ -114,14 +114,15 @@ public final class EncryptAssignmentTokenGenerator
implements CollectionSQLToken
return result;
}
- private void addCipherAssignment(final String schemaName, final String
tableName, final EncryptColumn encryptColumn, final AssignmentSegment segment,
final EncryptLiteralAssignmentToken token) {
+ private void addCipherAssignment(final String schemaName, final String
tableName,
+ final EncryptColumn encryptColumn, final
ColumnAssignmentSegment segment, final EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment)
segment.getValue()).getLiterals();
Object cipherValue = encryptColumn.getCipher().encrypt(databaseName,
schemaName, tableName, encryptColumn.getName(),
Collections.singletonList(originalValue)).iterator().next();
token.addAssignment(encryptColumn.getCipher().getName(), cipherValue);
}
private void addAssistedQueryAssignment(final String schemaName, final
String tableName, final EncryptColumn encryptColumn,
- final AssignmentSegment segment,
final EncryptLiteralAssignmentToken token) {
+ final ColumnAssignmentSegment
segment, final EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment)
segment.getValue()).getLiterals();
if (encryptColumn.getAssistedQuery().isPresent()) {
Object assistedQueryValue =
encryptColumn.getAssistedQuery().get().encrypt(
@@ -130,7 +131,8 @@ public final class EncryptAssignmentTokenGenerator
implements CollectionSQLToken
}
}
- private void addLikeAssignment(final String schemaName, final String
tableName, final EncryptColumn encryptColumn, final AssignmentSegment segment,
final EncryptLiteralAssignmentToken token) {
+ private void addLikeAssignment(final String schemaName, final String
tableName,
+ final EncryptColumn encryptColumn, final
ColumnAssignmentSegment segment, final EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment)
segment.getValue()).getLiterals();
if (encryptColumn.getLikeQuery().isPresent()) {
Object assistedQueryValue =
encryptColumn.getLikeQuery().get().encrypt(databaseName, schemaName,
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
index aea37844050..17263098289 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
@@ -36,7 +36,7 @@ import
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatem
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.FunctionSegment;
@@ -70,7 +70,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
public Collection<SQLToken> generateSQLTokens(final InsertStatementContext
insertStatementContext) {
InsertStatement insertStatement =
insertStatementContext.getSqlStatement();
Preconditions.checkState(InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).isPresent());
- Collection<AssignmentSegment> onDuplicateKeyColumnsSegments =
InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).get().getColumns();
+ Collection<ColumnAssignmentSegment> onDuplicateKeyColumnsSegments =
InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).get().getColumns();
if (onDuplicateKeyColumnsSegments.isEmpty()) {
return Collections.emptyList();
}
@@ -79,7 +79,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
String tableName =
insertStatement.getTable().getTableName().getIdentifier().getValue();
EncryptTable encryptTable = encryptRule.getEncryptTable(tableName);
Collection<SQLToken> result = new LinkedList<>();
- for (AssignmentSegment each : onDuplicateKeyColumnsSegments) {
+ for (ColumnAssignmentSegment each : onDuplicateKeyColumnsSegments) {
boolean leftColumnIsEncrypt =
encryptTable.isEncryptColumn(each.getColumns().get(0).getIdentifier().getValue());
if (each.getValue() instanceof FunctionSegment &&
"VALUES".equalsIgnoreCase(((FunctionSegment)
each.getValue()).getFunctionName())) {
Optional<ExpressionSegment> rightColumnSegment =
((FunctionSegment) each.getValue()).getParameters().stream().findFirst();
@@ -98,7 +98,8 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
return result;
}
- private Optional<EncryptAssignmentToken> generateSQLToken(final String
schemaName, final EncryptTable encryptTable, final EncryptColumn encryptColumn,
final AssignmentSegment assignmentSegment) {
+ private Optional<EncryptAssignmentToken> generateSQLToken(final String
schemaName, final EncryptTable encryptTable,
+ final
EncryptColumn encryptColumn, final ColumnAssignmentSegment assignmentSegment) {
if (assignmentSegment.getValue() instanceof
ParameterMarkerExpressionSegment) {
return Optional.of(generateParameterSQLToken(encryptTable,
assignmentSegment));
}
@@ -111,7 +112,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
return Optional.empty();
}
- private EncryptAssignmentToken generateParameterSQLToken(final
EncryptTable encryptTable, final AssignmentSegment assignmentSegment) {
+ private EncryptAssignmentToken generateParameterSQLToken(final
EncryptTable encryptTable, final ColumnAssignmentSegment assignmentSegment) {
EncryptParameterAssignmentToken result = new
EncryptParameterAssignmentToken(assignmentSegment.getColumns().get(0).getStartIndex(),
assignmentSegment.getStopIndex());
String columnName =
assignmentSegment.getColumns().get(0).getIdentifier().getValue();
EncryptColumn encryptColumn =
encryptTable.getEncryptColumn(columnName);
@@ -121,7 +122,8 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
return result;
}
- private EncryptAssignmentToken generateLiteralSQLToken(final String
schemaName, final String tableName, final EncryptColumn encryptColumn, final
AssignmentSegment assignmentSegment) {
+ private EncryptAssignmentToken generateLiteralSQLToken(final String
schemaName, final String tableName,
+ final EncryptColumn
encryptColumn, final ColumnAssignmentSegment assignmentSegment) {
EncryptLiteralAssignmentToken result = new
EncryptLiteralAssignmentToken(assignmentSegment.getColumns().get(0).getStartIndex(),
assignmentSegment.getStopIndex());
addCipherAssignment(schemaName, tableName, encryptColumn,
assignmentSegment, result);
addAssistedQueryAssignment(schemaName, tableName, encryptColumn,
assignmentSegment, result);
@@ -129,7 +131,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
return result;
}
- private EncryptAssignmentToken generateValuesSQLToken(final EncryptTable
encryptTable, final AssignmentSegment assignmentSegment, final FunctionSegment
functionSegment) {
+ private EncryptAssignmentToken generateValuesSQLToken(final EncryptTable
encryptTable, final ColumnAssignmentSegment assignmentSegment, final
FunctionSegment functionSegment) {
ColumnSegment columnSegment = assignmentSegment.getColumns().get(0);
String column = columnSegment.getIdentifier().getValue();
Optional<ExpressionSegment> valueColumnSegment =
functionSegment.getParameters().stream().findFirst();
@@ -168,7 +170,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
}
private void addCipherAssignment(final String schemaName, final String
tableName, final EncryptColumn encryptColumn,
- final AssignmentSegment
assignmentSegment, final EncryptLiteralAssignmentToken token) {
+ final ColumnAssignmentSegment
assignmentSegment, final EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment)
assignmentSegment.getValue()).getLiterals();
Object cipherValue = encryptColumn.getCipher().encrypt(databaseName,
schemaName, tableName,
assignmentSegment.getColumns().get(0).getIdentifier().getValue(),
Collections.singletonList(originalValue)).iterator().next();
@@ -176,7 +178,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
}
private void addAssistedQueryAssignment(final String schemaName, final
String tableName, final EncryptColumn encryptColumn,
- final AssignmentSegment
assignmentSegment, final EncryptLiteralAssignmentToken token) {
+ final ColumnAssignmentSegment
assignmentSegment, final EncryptLiteralAssignmentToken token) {
encryptColumn.getAssistedQuery().ifPresent(optional -> {
Object originalValue = ((LiteralExpressionSegment)
assignmentSegment.getValue()).getLiterals();
Object assistedQueryValue = optional.encrypt(
@@ -186,7 +188,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
}
private void addLikeAssignment(final String schemaName, final String
tableName, final EncryptColumn encryptColumn,
- final AssignmentSegment assignmentSegment,
final EncryptLiteralAssignmentToken token) {
+ final ColumnAssignmentSegment
assignmentSegment, final EncryptLiteralAssignmentToken token) {
encryptColumn.getLikeQuery().ifPresent(optional -> {
Object originalValue = ((LiteralExpressionSegment)
assignmentSegment.getValue()).getLiterals();
Object likeValue = optional.encrypt(
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
index 57f52d4a637..39166f26cf6 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGeneratorTest.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.UpdateStatementContext;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
@@ -62,7 +62,7 @@ class EncryptAssignmentTokenGeneratorTest {
private InsertStatementContext insertStatement;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private AssignmentSegment assignmentSegment;
+ private ColumnAssignmentSegment assignmentSegment;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private SetAssignmentSegment setAssignmentSegment;
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
index 51942c43254..ae61eb40131 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
@@ -24,7 +24,6 @@ import
org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
import
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.OnDuplicateKeyColumnsSegment;
@@ -122,14 +121,14 @@ class EncryptInsertOnUpdateTokenGeneratorTest {
assertFalse(actual.hasNext());
}
- private Collection<AssignmentSegment> buildAssignmentSegment() {
+ private Collection<ColumnAssignmentSegment> buildAssignmentSegment() {
ColumnSegment columnSegment = new ColumnSegment(0, 0, new
IdentifierValue("mobile"));
List<ColumnSegment> columnSegments =
Collections.singletonList(columnSegment);
- AssignmentSegment assignmentSegment1 = new ColumnAssignmentSegment(0,
0, columnSegments, new ParameterMarkerExpressionSegment(0, 0, 0));
+ ColumnAssignmentSegment assignmentSegment1 = new
ColumnAssignmentSegment(0, 0, columnSegments, new
ParameterMarkerExpressionSegment(0, 0, 0));
FunctionSegment functionSegment = new FunctionSegment(0, 0, "VALUES",
"VALUES (0)");
functionSegment.getParameters().add(columnSegment);
- AssignmentSegment assignmentSegment2 = new ColumnAssignmentSegment(0,
0, columnSegments, functionSegment);
- AssignmentSegment assignmentSegment3 = new ColumnAssignmentSegment(0,
0, columnSegments, new LiteralExpressionSegment(0, 0, 0));
+ ColumnAssignmentSegment assignmentSegment2 = new
ColumnAssignmentSegment(0, 0, columnSegments, functionSegment);
+ ColumnAssignmentSegment assignmentSegment3 = new
ColumnAssignmentSegment(0, 0, columnSegments, new LiteralExpressionSegment(0,
0, 0));
return Arrays.asList(assignmentSegment1, assignmentSegment2,
assignmentSegment3);
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDMLStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDMLStatementValidator.java
index 9d06e0fe167..0f2c36cb92f 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDMLStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingDMLStatementValidator.java
@@ -18,10 +18,10 @@
package org.apache.shardingsphere.sharding.route.engine.validator.dml;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
-import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.sharding.exception.syntax.DMLWithMultipleShardingTablesException;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions;
@@ -29,7 +29,7 @@ import
org.apache.shardingsphere.sharding.route.engine.condition.value.ListShard
import
org.apache.shardingsphere.sharding.route.engine.condition.value.ShardingConditionValue;
import
org.apache.shardingsphere.sharding.route.engine.validator.ShardingStatementValidator;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
@@ -114,10 +114,10 @@ public abstract class ShardingDMLStatementValidator
implements ShardingStatement
*/
@SuppressWarnings({"rawtypes", "unchecked"})
protected Optional<ShardingConditions> createShardingConditions(final
SQLStatementContext sqlStatementContext, final ShardingRule shardingRule,
- final
Collection<AssignmentSegment> assignments, final List<Object> params) {
+ final
Collection<ColumnAssignmentSegment> assignments, final List<Object> params) {
Collection<ShardingConditionValue> values = new LinkedList<>();
String tableName =
sqlStatementContext.getTablesContext().getTableNames().iterator().next();
- for (AssignmentSegment each : assignments) {
+ for (ColumnAssignmentSegment each : assignments) {
String shardingColumn =
each.getColumns().get(0).getIdentifier().getValue();
if (shardingRule.findShardingColumn(shardingColumn,
tableName).isPresent()) {
Optional<Object> assignmentValue =
getShardingColumnAssignmentValue(each, params);
@@ -132,7 +132,7 @@ public abstract class ShardingDMLStatementValidator
implements ShardingStatement
return Optional.of(new
ShardingConditions(Collections.singletonList(shardingCondition),
sqlStatementContext, shardingRule));
}
- private Optional<Object> getShardingColumnAssignmentValue(final
AssignmentSegment assignmentSegment, final List<Object> params) {
+ private Optional<Object> getShardingColumnAssignmentValue(final
ColumnAssignmentSegment assignmentSegment, final List<Object> params) {
ExpressionSegment segment = assignmentSegment.getValue();
int shardingSetAssignIndex = -1;
if (segment instanceof ParameterMarkerExpressionSegment) {
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java
index e1c5f188c6f..1d7405ad28f 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/impl/ShardingInsertStatementValidator.java
@@ -23,10 +23,10 @@ import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementCont
import
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import
org.apache.shardingsphere.infra.connection.validator.ShardingSphereMetaDataValidateUtils;
+import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.hint.HintValueContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.route.context.RouteContext;
-import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.sharding.exception.algorithm.sharding.DuplicateInsertDataRecordException;
import
org.apache.shardingsphere.sharding.exception.syntax.InsertSelectTableViolationException;
import
org.apache.shardingsphere.sharding.exception.syntax.MissingGenerateKeyColumnWithInsertSelectException;
@@ -36,7 +36,7 @@ import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditi
import
org.apache.shardingsphere.sharding.route.engine.type.standard.ShardingStandardRoutingEngine;
import
org.apache.shardingsphere.sharding.route.engine.validator.dml.ShardingDMLStatementValidator;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.OnDuplicateKeyColumnsSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
@@ -99,7 +99,7 @@ public final class ShardingInsertStatementValidator extends
ShardingDMLStatement
boolean singleRoutingOrSameShardingCondition =
routeContext.isSingleRouting() || shardingConditions.isSameShardingCondition();
ShardingSpherePreconditions.checkState(singleRoutingOrSameShardingCondition, ()
-> new UnsupportedShardingOperationException("INSERT ... SELECT ...",
tableName));
}
- Collection<AssignmentSegment> assignments =
InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement)
+ Collection<ColumnAssignmentSegment> assignments =
InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement)
.map(OnDuplicateKeyColumnsSegment::getColumns).orElse(Collections.emptyList());
Optional<ShardingConditions> onDuplicateKeyShardingConditions =
createShardingConditions(sqlStatementContext, shardingRule, assignments,
params);
Optional<RouteContext> onDuplicateKeyRouteContext =
onDuplicateKeyShardingConditions.map(optional -> new
ShardingStandardRoutingEngine(tableName, optional,
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java
index 41f0dd2b6d6..5ad4bd52849 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingInsertStatementValidatorTest.java
@@ -46,7 +46,6 @@ import
org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.Shardi
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.TableRule;
import org.apache.shardingsphere.sharding.spi.ShardingAlgorithm;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.InsertColumnsSegment;
@@ -297,7 +296,7 @@ class ShardingInsertStatementValidatorTest {
ColumnSegment columnSegment = new ColumnSegment(0, 0, new
IdentifierValue("id"));
List<ColumnSegment> columnSegments = new LinkedList<>();
columnSegments.add(columnSegment);
- AssignmentSegment assignmentSegment = new ColumnAssignmentSegment(0,
0, columnSegments, new ParameterMarkerExpressionSegment(0, 0, 0));
+ ColumnAssignmentSegment assignmentSegment = new
ColumnAssignmentSegment(0, 0, columnSegments, new
ParameterMarkerExpressionSegment(0, 0, 0));
result.setOnDuplicateKeyColumns(new OnDuplicateKeyColumnsSegment(0, 0,
Collections.singletonList(assignmentSegment)));
Collection<ColumnSegment> columns = new LinkedList<>();
columns.add(columnSegment);
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java
index 1559a080c88..e08eb426ace 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/validator/dml/ShardingUpdateStatementValidatorTest.java
@@ -34,7 +34,6 @@ import
org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.Shardi
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.TableRule;
import org.apache.shardingsphere.sharding.spi.ShardingAlgorithm;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -176,7 +175,7 @@ class ShardingUpdateStatementValidatorTest {
result.setTable(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("user"))));
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("id")));
- AssignmentSegment assignment = new ColumnAssignmentSegment(0, 0,
columns, new LiteralExpressionSegment(0, 0, 1));
+ ColumnAssignmentSegment assignment = new ColumnAssignmentSegment(0, 0,
columns, new LiteralExpressionSegment(0, 0, 1));
result.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singleton(assignment)));
return result;
}
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContext.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContext.java
index 6808481a6ac..da3684a925a 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContext.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContext.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.infra.binder.context.segment.insert.values;
import com.google.common.base.Preconditions;
import lombok.Getter;
import lombok.ToString;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.FunctionSegment;
@@ -48,8 +48,8 @@ public final class OnDuplicateUpdateContext {
private final List<ColumnSegment> columns;
- public OnDuplicateUpdateContext(final Collection<AssignmentSegment>
assignments, final List<Object> params, final int parametersOffset) {
- List<ExpressionSegment> expressionSegments =
assignments.stream().map(AssignmentSegment::getValue).collect(Collectors.toList());
+ public OnDuplicateUpdateContext(final Collection<ColumnAssignmentSegment>
assignments, final List<Object> params, final int parametersOffset) {
+ List<ExpressionSegment> expressionSegments =
assignments.stream().map(ColumnAssignmentSegment::getValue).collect(Collectors.toList());
valueExpressions = getValueExpressions(expressionSegments);
parameterMarkerExpressions =
ExpressionExtractUtils.getParameterMarkerExpressions(expressionSegments);
parameterCount = parameterMarkerExpressions.size();
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
index 90e3e08e55a..6e0227be195 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
@@ -36,7 +36,7 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.sql.parser.sql.common.enums.SubqueryType;
import
org.apache.shardingsphere.sql.parser.sql.common.extractor.TableExtractor;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -142,7 +142,7 @@ public final class InsertStatementContext extends
CommonSQLStatementContext impl
if (!onDuplicateKeyColumnsSegment.isPresent()) {
return Optional.empty();
}
- Collection<AssignmentSegment> onDuplicateKeyColumns =
onDuplicateKeyColumnsSegment.get().getColumns();
+ Collection<ColumnAssignmentSegment> onDuplicateKeyColumns =
onDuplicateKeyColumnsSegment.get().getColumns();
OnDuplicateUpdateContext onDuplicateUpdateContext = new
OnDuplicateUpdateContext(onDuplicateKeyColumns, params, parametersOffset.get());
parametersOffset.addAndGet(onDuplicateUpdateContext.getParameterCount());
return Optional.of(onDuplicateUpdateContext);
@@ -223,7 +223,7 @@ public final class InsertStatementContext extends
CommonSQLStatementContext impl
private List<String> getColumnNamesForSetAssignment(final
SetAssignmentSegment setAssignment) {
List<String> result = new LinkedList<>();
- for (AssignmentSegment each : setAssignment.getAssignments()) {
+ for (ColumnAssignmentSegment each : setAssignment.getAssignments()) {
result.add(each.getColumns().get(0).getIdentifier().getValue().toLowerCase());
}
return result;
@@ -245,7 +245,7 @@ public final class InsertStatementContext extends
CommonSQLStatementContext impl
private List<ExpressionSegment>
getAllValueExpressionsFromSetAssignment(final SetAssignmentSegment
setAssignment) {
List<ExpressionSegment> result = new
ArrayList<>(setAssignment.getAssignments().size());
- for (AssignmentSegment each : setAssignment.getAssignments()) {
+ for (ColumnAssignmentSegment each : setAssignment.getAssignments()) {
result.add(each.getValue());
}
return result;
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
index c5840b7f0a2..7514a37ce5e 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
@@ -24,7 +24,6 @@ import
org.apache.shardingsphere.infra.binder.segment.expression.ExpressionSegme
import
org.apache.shardingsphere.infra.binder.segment.expression.impl.ColumnSegmentBinder;
import
org.apache.shardingsphere.infra.binder.segment.from.TableSegmentBinderContext;
import
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -52,14 +51,10 @@ public final class AssignmentSegmentBinder {
*/
public static SetAssignmentSegment bind(final SetAssignmentSegment
segment, final SQLStatementBinderContext statementBinderContext,
final Map<String,
TableSegmentBinderContext> tableBinderContexts, final Map<String,
TableSegmentBinderContext> outerTableBinderContexts) {
- Collection<AssignmentSegment> assignments = new LinkedList<>();
- for (AssignmentSegment each : segment.getAssignments()) {
- if (each instanceof ColumnAssignmentSegment) {
- assignments.add(new
ColumnAssignmentSegment(each.getStartIndex(), each.getStopIndex(),
bindColumns(each.getColumns(), statementBinderContext, tableBinderContexts,
- outerTableBinderContexts), bindValue(each.getValue(),
statementBinderContext, tableBinderContexts, outerTableBinderContexts)));
- } else {
- assignments.add(each);
- }
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
+ for (ColumnAssignmentSegment each : segment.getAssignments()) {
+ assignments.add(new ColumnAssignmentSegment(each.getStartIndex(),
each.getStopIndex(), bindColumns(each.getColumns(), statementBinderContext,
tableBinderContexts,
+ outerTableBinderContexts), bindValue(each.getValue(),
statementBinderContext, tableBinderContexts, outerTableBinderContexts)));
}
return new SetAssignmentSegment(segment.getStartIndex(),
segment.getStopIndex(), assignments);
}
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
index 7ad3df9e534..64b3c8cc87e 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
@@ -30,7 +30,6 @@ import
org.apache.shardingsphere.infra.binder.segment.where.WhereSegmentBinder;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementBinder;
import
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -163,13 +162,13 @@ public final class MergeStatementBinder implements
SQLStatementBinder<MergeState
final Map<String,
TableSegmentBinderContext> targetTableBinderContexts, final Map<String,
TableSegmentBinderContext> sourceTableBinderContexts) {
UpdateStatement result =
sqlStatement.getClass().getDeclaredConstructor().newInstance();
result.setTable(tableSegment);
- Collection<AssignmentSegment> assignments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
SQLStatementBinderContext updateStatementBinderContext = new
SQLStatementBinderContext(statementBinderContext.getMetaData(),
statementBinderContext.getDefaultDatabaseName(),
statementBinderContext.getDatabaseType(),
statementBinderContext.getVariableNames());
updateStatementBinderContext.getExternalTableBinderContexts().putAll(statementBinderContext.getExternalTableBinderContexts());
updateStatementBinderContext.getExternalTableBinderContexts().putAll(sourceTableBinderContexts);
Map<ParameterMarkerSegment, ColumnSegmentBoundedInfo>
parameterMarkerSegmentBoundedInfos = new LinkedHashMap<>();
- for (AssignmentSegment each :
sqlStatement.getSetAssignment().getAssignments()) {
+ for (ColumnAssignmentSegment each :
sqlStatement.getSetAssignment().getAssignments()) {
List<ColumnSegment> columnSegments = new
ArrayList<>(each.getColumns().size());
each.getColumns().forEach(column -> columnSegments.add(
ColumnSegmentBinder.bind(column,
SegmentType.SET_ASSIGNMENT, updateStatementBinderContext,
targetTableBinderContexts, Collections.emptyMap())));
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContextTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContextTest.java
index 001a63185bf..d45aeb43342 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContextTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/insert/values/OnDuplicateUpdateContextTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.binder.context.segment.insert.values;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
@@ -51,7 +50,7 @@ class OnDuplicateUpdateContextTest {
@Test
void assertGetValueWhenParameterMarker() {
- Collection<AssignmentSegment> assignments =
createParameterMarkerExpressionAssignmentSegment();
+ Collection<ColumnAssignmentSegment> assignments =
createParameterMarkerExpressionAssignmentSegment();
String parameterValue1 = "test1";
String parameterValue2 = "test2";
List<Object> params = Arrays.asList(parameterValue1, parameterValue2);
@@ -62,26 +61,26 @@ class OnDuplicateUpdateContextTest {
assertThat(valueFromInsertValueContext2, is(parameterValue2));
}
- private Collection<AssignmentSegment>
createParameterMarkerExpressionAssignmentSegment() {
+ private Collection<ColumnAssignmentSegment>
createParameterMarkerExpressionAssignmentSegment() {
ParameterMarkerExpressionSegment parameterMarkerExpressionSegment0 =
new ParameterMarkerExpressionSegment(0, 10, 5);
- AssignmentSegment assignmentSegment1 =
createAssignmentSegment(parameterMarkerExpressionSegment0);
+ ColumnAssignmentSegment assignmentSegment1 =
createAssignmentSegment(parameterMarkerExpressionSegment0);
ParameterMarkerExpressionSegment parameterMarkerExpressionSegment1 =
new ParameterMarkerExpressionSegment(0, 10, 6);
- AssignmentSegment assignmentSegment2 =
createAssignmentSegment(parameterMarkerExpressionSegment1);
+ ColumnAssignmentSegment assignmentSegment2 =
createAssignmentSegment(parameterMarkerExpressionSegment1);
return Arrays.asList(assignmentSegment1, assignmentSegment2);
}
@Test
void assertGetValueWhenLiteralExpressionSegment() {
Object literalObject = new Object();
- Collection<AssignmentSegment> assignments =
createLiteralExpressionSegment(literalObject);
+ Collection<ColumnAssignmentSegment> assignments =
createLiteralExpressionSegment(literalObject);
OnDuplicateUpdateContext onDuplicateUpdateContext = new
OnDuplicateUpdateContext(assignments, Collections.emptyList(), 0);
Object valueFromInsertValueContext =
onDuplicateUpdateContext.getValue(0);
assertThat(valueFromInsertValueContext, is(literalObject));
}
- private Collection<AssignmentSegment> createLiteralExpressionSegment(final
Object literalObject) {
+ private Collection<ColumnAssignmentSegment>
createLiteralExpressionSegment(final Object literalObject) {
LiteralExpressionSegment parameterLiteralExpression = new
LiteralExpressionSegment(0, 10, literalObject);
- AssignmentSegment assignmentSegment =
createAssignmentSegment(parameterLiteralExpression);
+ ColumnAssignmentSegment assignmentSegment =
createAssignmentSegment(parameterLiteralExpression);
return Collections.singleton(assignmentSegment);
}
@@ -91,12 +90,12 @@ class OnDuplicateUpdateContextTest {
return new BinaryOperationExpression(0, 0, left, right, "=",
"columnNameStr=?");
}
- private AssignmentSegment createAssignmentSegment(final
SimpleExpressionSegment expressionSegment) {
+ private ColumnAssignmentSegment createAssignmentSegment(final
SimpleExpressionSegment expressionSegment) {
List<ColumnSegment> columnSegments = Collections.singletonList(new
ColumnSegment(0, 0, new IdentifierValue("columnNameStr")));
return new ColumnAssignmentSegment(0, 0, columnSegments,
expressionSegment);
}
- private AssignmentSegment createAssignmentSegment(final
BinaryOperationExpression binaryOperationExpression) {
+ private ColumnAssignmentSegment createAssignmentSegment(final
BinaryOperationExpression binaryOperationExpression) {
List<ColumnSegment> columnSegments = Collections.singletonList(new
ColumnSegment(0, 0, new IdentifierValue("columnNameStr")));
return new ColumnAssignmentSegment(0, 0, columnSegments,
binaryOperationExpression);
}
@@ -104,7 +103,7 @@ class OnDuplicateUpdateContextTest {
@Test
void assertGetColumn() {
Object literalObject = new Object();
- Collection<AssignmentSegment> assignments =
createLiteralExpressionSegment(literalObject);
+ Collection<ColumnAssignmentSegment> assignments =
createLiteralExpressionSegment(literalObject);
OnDuplicateUpdateContext onDuplicateUpdateContext = new
OnDuplicateUpdateContext(assignments, Collections.emptyList(), 0);
ColumnSegment column = onDuplicateUpdateContext.getColumn(0);
assertThat(column,
is(assignments.iterator().next().getColumns().get(0)));
@@ -112,7 +111,7 @@ class OnDuplicateUpdateContextTest {
@Test
void assertParameterCount() {
- List<AssignmentSegment> assignments = Arrays.asList(
+ List<ColumnAssignmentSegment> assignments = Arrays.asList(
createAssignmentSegment(createBinaryOperationExpression()),
createAssignmentSegment(new
ParameterMarkerExpressionSegment(0, 10, 5)),
createAssignmentSegment(new LiteralExpressionSegment(0, 10,
new Object())));
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java
index 2ff863375cc..3eabcfe33bd 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/SQLStatementContextFactoryTest.java
@@ -30,7 +30,6 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -81,9 +80,8 @@ class SQLStatementContextFactoryTest {
MySQLInsertStatement insertStatement = new MySQLInsertStatement();
List<ColumnSegment> columnSegments = new LinkedList<>();
columnSegments.add(new ColumnSegment(0, 0, new
IdentifierValue("IdentifierValue")));
- AssignmentSegment assignment = new ColumnAssignmentSegment(0, 0,
columnSegments, null);
- insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0,
- Collections.singleton(assignment)));
+ ColumnAssignmentSegment assignment = new ColumnAssignmentSegment(0, 0,
columnSegments, null);
+ insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singleton(assignment)));
assertSQLStatementContextCreatedWhenSQLStatementInstanceOfInsertStatement(insertStatement);
}
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java
index 2e847372444..597d70332a5 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContextTest.java
@@ -25,7 +25,6 @@ import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaDa
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.sql.parser.sql.common.enums.ParameterMarkerType;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -184,11 +183,11 @@ class InsertStatementContextTest {
private void setUpOnDuplicateValues(final MySQLInsertStatement
insertStatement) {
List<ColumnSegment> parameterMarkerExpressionAssignmentColumns = new
LinkedList<>();
parameterMarkerExpressionAssignmentColumns.add(new ColumnSegment(0, 0,
new IdentifierValue("on_duplicate_key_update_column_1")));
- AssignmentSegment parameterMarkerExpressionAssignment = new
ColumnAssignmentSegment(0, 0, parameterMarkerExpressionAssignmentColumns,
+ ColumnAssignmentSegment parameterMarkerExpressionAssignment = new
ColumnAssignmentSegment(0, 0, parameterMarkerExpressionAssignmentColumns,
new ParameterMarkerExpressionSegment(0, 0, 4));
List<ColumnSegment> literalExpressionAssignmentColumns = new
LinkedList<>();
literalExpressionAssignmentColumns.add(new ColumnSegment(0, 0, new
IdentifierValue("on_duplicate_key_update_column_2")));
- AssignmentSegment literalExpressionAssignment = new
ColumnAssignmentSegment(0, 0, literalExpressionAssignmentColumns,
+ ColumnAssignmentSegment literalExpressionAssignment = new
ColumnAssignmentSegment(0, 0, literalExpressionAssignmentColumns,
new LiteralExpressionSegment(0, 0, 5));
OnDuplicateKeyColumnsSegment onDuplicateKeyColumnsSegment = new
OnDuplicateKeyColumnsSegment(0, 0,
Arrays.asList(parameterMarkerExpressionAssignment,
literalExpressionAssignment));
insertStatement.setOnDuplicateKeyColumns(onDuplicateKeyColumnsSegment);
@@ -332,7 +331,7 @@ class InsertStatementContextTest {
MySQLInsertStatement insertStatement = new MySQLInsertStatement();
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("col")));
- AssignmentSegment insertStatementAssignment = new
ColumnAssignmentSegment(0, 0, columns, new LiteralExpressionSegment(0, 0, 1));
+ ColumnAssignmentSegment insertStatementAssignment = new
ColumnAssignmentSegment(0, 0, columns, new LiteralExpressionSegment(0, 0, 1));
insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singletonList(insertStatementAssignment)));
insertStatement.setTable(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue(""))));
InsertStatementContext insertStatementContext =
createInsertStatementContext(Collections.emptyList(), insertStatement);
@@ -379,7 +378,7 @@ class InsertStatementContextTest {
MySQLInsertStatement insertStatement = new MySQLInsertStatement();
List<ColumnSegment> columns = new LinkedList<>();
columns.add(new ColumnSegment(0, 0, new IdentifierValue("col")));
- AssignmentSegment insertStatementAssignment = new
ColumnAssignmentSegment(0, 0, columns, new LiteralExpressionSegment(0, 0, 1));
+ ColumnAssignmentSegment insertStatementAssignment = new
ColumnAssignmentSegment(0, 0, columns, new LiteralExpressionSegment(0, 0, 1));
insertStatement.setSetAssignment(new SetAssignmentSegment(0, 0,
Collections.singletonList(insertStatementAssignment)));
insertStatement.setTable(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue(""))));
InsertStatementContext insertStatementContext =
createInsertStatementContext(Collections.emptyList(), insertStatement);
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinderTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinderTest.java
index 38971df6c15..ff98d420737 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinderTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinderTest.java
@@ -21,7 +21,6 @@ import
org.apache.shardingsphere.infra.binder.segment.from.SimpleTableSegmentBin
import
org.apache.shardingsphere.infra.binder.segment.from.TableSegmentBinderContext;
import
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
@@ -46,7 +45,7 @@ class AssignmentSegmentBinderTest {
@Test
void assertBindAssignmentSegment() {
- Collection<AssignmentSegment> assignments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
Map<String, TableSegmentBinderContext> tableBinderContexts = new
LinkedHashMap<>();
ColumnSegment boundedOrderIdColumn = new ColumnSegment(0, 0, new
IdentifierValue("order_id"));
boundedOrderIdColumn.setColumnBoundedInfo(new
ColumnSegmentBoundedInfo(new IdentifierValue(DefaultDatabase.LOGIC_NAME), new
IdentifierValue(DefaultDatabase.LOGIC_NAME),
diff --git
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/merge/MergeStatementConverter.java
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/merge/MergeStatementConverter.java
index 9c18f88890e..da22cc2e558 100644
---
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/merge/MergeStatementConverter.java
+++
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/merge/MergeStatementConverter.java
@@ -22,7 +22,7 @@ import org.apache.calcite.sql.SqlNode;
import org.apache.calcite.sql.SqlNodeList;
import org.apache.calcite.sql.SqlUpdate;
import org.apache.calcite.sql.parser.SqlParserPos;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.MergeStatement;
@@ -55,7 +55,7 @@ public final class MergeStatementConverter implements
SQLStatementConverter<Merg
SqlNode condition =
updateStatement.getWhere().flatMap(WhereConverter::convert).orElse(null);
SqlNodeList columns = new SqlNodeList(SqlParserPos.ZERO);
SqlNodeList expressions = new SqlNodeList(SqlParserPos.ZERO);
- for (AssignmentSegment each :
updateStatement.getAssignmentSegment().orElseThrow(IllegalStateException::new).getAssignments())
{
+ for (ColumnAssignmentSegment each :
updateStatement.getAssignmentSegment().orElseThrow(IllegalStateException::new).getAssignments())
{
columns.addAll(convertColumn(each.getColumns()));
expressions.add(convertExpression(each.getValue()));
}
diff --git
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/update/UpdateStatementConverter.java
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/update/UpdateStatementConverter.java
index 479beaf6bdf..3eba8ffc7b3 100644
---
a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/update/UpdateStatementConverter.java
+++
b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/update/UpdateStatementConverter.java
@@ -22,7 +22,7 @@ import org.apache.calcite.sql.SqlNodeList;
import org.apache.calcite.sql.SqlOrderBy;
import org.apache.calcite.sql.SqlUpdate;
import org.apache.calcite.sql.parser.SqlParserPos;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.limit.LimitSegment;
@@ -63,7 +63,7 @@ public final class UpdateStatementConverter implements
SQLStatementConverter<Upd
SqlNode condition =
updateStatement.getWhere().flatMap(WhereConverter::convert).orElse(null);
SqlNodeList columns = new SqlNodeList(SqlParserPos.ZERO);
SqlNodeList expressions = new SqlNodeList(SqlParserPos.ZERO);
- for (AssignmentSegment each :
updateStatement.getAssignmentSegment().orElseThrow(IllegalStateException::new).getAssignments())
{
+ for (ColumnAssignmentSegment each :
updateStatement.getAssignmentSegment().orElseThrow(IllegalStateException::new).getAssignments())
{
columns.addAll(convertColumn(each.getColumns()));
expressions.add(convertExpression(each.getValue()));
}
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 213d64a23e8..066195f3a66 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
@@ -160,7 +160,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.Co
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.engine.EngineSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexNameSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -1440,9 +1439,9 @@ public abstract class MySQLStatementVisitor extends
MySQLStatementBaseVisitor<AS
@Override
public ASTNode visitOnDuplicateKeyClause(final OnDuplicateKeyClauseContext
ctx) {
- Collection<AssignmentSegment> columns = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> columns = new LinkedList<>();
for (AssignmentContext each : ctx.assignment()) {
- columns.add((AssignmentSegment) visit(each));
+ columns.add((ColumnAssignmentSegment) visit(each));
}
return new
OnDuplicateKeyColumnsSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columns);
}
@@ -1530,9 +1529,9 @@ public abstract class MySQLStatementVisitor extends
MySQLStatementBaseVisitor<AS
@Override
public ASTNode visitSetAssignmentsClause(final SetAssignmentsClauseContext
ctx) {
- Collection<AssignmentSegment> assignments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
for (AssignmentContext each : ctx.assignment()) {
- assignments.add((AssignmentSegment) visit(each));
+ assignments.add((ColumnAssignmentSegment) visit(each));
}
return new SetAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), assignments);
}
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 0375db142e8..d143f6c514b 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
@@ -121,7 +121,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.Co
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexNameSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.ReturningSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -774,9 +773,9 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementBaseVi
if (null != ctx.NOTHING()) {
return new
OnDuplicateKeyColumnsSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), Collections.emptyList());
}
- Collection<AssignmentSegment> columns = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> columns = new LinkedList<>();
for (AssignmentContext each : ctx.assignment()) {
- columns.add((AssignmentSegment) visit(each));
+ columns.add((ColumnAssignmentSegment) visit(each));
}
return new
OnDuplicateKeyColumnsSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columns);
}
@@ -841,13 +840,13 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementBaseVi
return result;
}
- private Collection<AssignmentSegment> generateAssignmentSegments(final
SetClauseListContext ctx) {
- Collection<AssignmentSegment> result = new LinkedList<>();
+ private Collection<ColumnAssignmentSegment>
generateAssignmentSegments(final SetClauseListContext ctx) {
+ Collection<ColumnAssignmentSegment> result = new LinkedList<>();
if (null != ctx.setClauseList()) {
- Collection<AssignmentSegment> tmpResult =
generateAssignmentSegments(ctx.setClauseList());
+ Collection<ColumnAssignmentSegment> tmpResult =
generateAssignmentSegments(ctx.setClauseList());
result.addAll(tmpResult);
}
- AssignmentSegment assignmentSegment = (AssignmentSegment)
visit(ctx.setClause());
+ ColumnAssignmentSegment assignmentSegment = (ColumnAssignmentSegment)
visit(ctx.setClause());
result.add(assignmentSegment);
return result;
}
@@ -898,7 +897,7 @@ public abstract class OpenGaussStatementVisitor extends
OpenGaussStatementBaseVi
@Override
public ASTNode visitSetClauseList(final SetClauseListContext ctx) {
- Collection<AssignmentSegment> assignments =
generateAssignmentSegments(ctx);
+ Collection<ColumnAssignmentSegment> assignments =
generateAssignmentSegments(ctx);
return new SetAssignmentSegment(ctx.start.getStartIndex() - 4,
ctx.stop.getStopIndex(), assignments);
}
diff --git
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
index bc8954114d0..3d75b33cce8 100644
---
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
+++
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/type/OracleDMLStatementVisitor.java
@@ -111,7 +111,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.enums.CombineType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.JoinType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -122,18 +121,10 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenE
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.CaseWhenExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.CollateExpression;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.datetime.DatetimeExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionWithParamsSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.multiset.MultisetExpression;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlElementFunctionSegment;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlPiFunctionSegment;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlQueryAndExistsFunctionSegment;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlSerializeFunctionSegment;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlTableFunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.complex.CommonExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.complex.CommonTableExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.complex.ComplexExpressionSegment;
@@ -169,6 +160,7 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.Fun
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SubqueryTableSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.InsertStatement;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateStatement;
@@ -176,12 +168,19 @@ import
org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtils;
import
org.apache.shardingsphere.sql.parser.sql.common.value.collection.CollectionValue;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import
org.apache.shardingsphere.sql.parser.sql.common.value.literal.impl.BooleanLiteralValue;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.datetime.DatetimeExpression;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.multiset.MultisetExpression;
import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.table.MultiTableConditionalIntoElseSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.table.MultiTableConditionalIntoSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.table.MultiTableConditionalIntoThenSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.table.MultiTableConditionalIntoWhenThenSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.table.MultiTableInsertIntoSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.table.MultiTableInsertType;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlElementFunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlPiFunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlQueryAndExistsFunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlSerializeFunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.segment.oracle.xml.XmlTableFunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleDeleteStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleInsertStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.dml.OracleLockTableStatement;
@@ -231,13 +230,13 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitUpdateSetClause(final UpdateSetClauseContext ctx) {
- Collection<AssignmentSegment> assignments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
if (null != ctx.updateSetColumnList()) {
for (UpdateSetColumnClauseContext each :
ctx.updateSetColumnList().updateSetColumnClause()) {
- assignments.add((AssignmentSegment) visit(each));
+ assignments.add((ColumnAssignmentSegment) visit(each));
}
} else {
- assignments.add((AssignmentSegment)
visit(ctx.updateSetValueClause()));
+ assignments.add((ColumnAssignmentSegment)
visit(ctx.updateSetValueClause()));
}
return new SetAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), assignments);
}
@@ -247,7 +246,7 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
return 1 == ctx.columnName().size() ?
createAssignmentSegmentFromSingleColumnAssignment(ctx) :
createAssignmentSegmentFromMultiColumnAssignment(ctx);
}
- private AssignmentSegment
createAssignmentSegmentFromSingleColumnAssignment(final
UpdateSetColumnClauseContext ctx) {
+ private ColumnAssignmentSegment
createAssignmentSegmentFromSingleColumnAssignment(final
UpdateSetColumnClauseContext ctx) {
ColumnSegment column = (ColumnSegment)
visitColumnName(ctx.columnName(0));
List<ColumnSegment> columnSegments = new LinkedList<>();
columnSegments.add(column);
@@ -259,17 +258,17 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
SubquerySegment subquerySegment = new
SubquerySegment(ctx.selectSubquery().start.getStartIndex(),
ctx.selectSubquery().stop.getStopIndex(),
(OracleSelectStatement) visit(ctx.selectSubquery()),
getOriginalText(ctx.selectSubquery()));
SubqueryExpressionSegment value = new
SubqueryExpressionSegment(subquerySegment);
- AssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
+ ColumnAssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
result.getColumns().add(column);
return result;
}
CommonExpressionSegment value = new
CommonExpressionSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), ctx.DEFAULT().getText());
- AssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
+ ColumnAssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
result.getColumns().add(column);
return result;
}
- private AssignmentSegment
createAssignmentSegmentFromMultiColumnAssignment(final
UpdateSetColumnClauseContext ctx) {
+ private ColumnAssignmentSegment
createAssignmentSegmentFromMultiColumnAssignment(final
UpdateSetColumnClauseContext ctx) {
List<ColumnSegment> columnSegments = new LinkedList<>();
for (ColumnNameContext each : ctx.columnName()) {
columnSegments.add((ColumnSegment) visit(each));
@@ -287,14 +286,14 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
columnSegments.add(column);
if (null != ctx.expr()) {
ExpressionSegment value = (ExpressionSegment) visit(ctx.expr());
- AssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
+ ColumnAssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
result.getColumns().add(column);
return result;
} else {
SubquerySegment subquerySegment = new
SubquerySegment(ctx.selectSubquery().start.getStartIndex(),
ctx.selectSubquery().stop.getStopIndex(),
(OracleSelectStatement) visit(ctx.selectSubquery()),
getOriginalText(ctx.selectSubquery()));
SubqueryExpressionSegment value = new
SubqueryExpressionSegment(subquerySegment);
- AssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
+ ColumnAssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
result.getColumns().add(column);
return result;
}
@@ -1367,9 +1366,9 @@ public final class OracleDMLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitMergeSetAssignmentsClause(final
MergeSetAssignmentsClauseContext ctx) {
- Collection<AssignmentSegment> assignments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
for (MergeAssignmentContext each : ctx.mergeAssignment()) {
- assignments.add((AssignmentSegment) visit(each));
+ assignments.add((ColumnAssignmentSegment) visit(each));
}
return new SetAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), assignments);
}
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 3c388eb0786..90ecc822eb3 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
@@ -121,7 +121,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.Co
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexNameSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.ReturningSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -708,7 +707,7 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
@Override
public ASTNode visitOptOnConflict(final OptOnConflictContext ctx) {
SetClauseListContext setClauseListContext = ctx.setClauseList();
- Collection<AssignmentSegment> assignments = ((SetAssignmentSegment)
visit(setClauseListContext)).getAssignments();
+ Collection<ColumnAssignmentSegment> assignments =
((SetAssignmentSegment) visit(setClauseListContext)).getAssignments();
return new
OnDuplicateKeyColumnsSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), assignments);
}
@@ -818,13 +817,13 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
return result;
}
- private Collection<AssignmentSegment> generateAssignmentSegments(final
SetClauseListContext ctx) {
- Collection<AssignmentSegment> result = new LinkedList<>();
+ private Collection<ColumnAssignmentSegment>
generateAssignmentSegments(final SetClauseListContext ctx) {
+ Collection<ColumnAssignmentSegment> result = new LinkedList<>();
if (null != ctx.setClauseList()) {
- Collection<AssignmentSegment> tmpResult =
generateAssignmentSegments(ctx.setClauseList());
+ Collection<ColumnAssignmentSegment> tmpResult =
generateAssignmentSegments(ctx.setClauseList());
result.addAll(tmpResult);
}
- AssignmentSegment assignmentSegment = (AssignmentSegment)
visit(ctx.setClause());
+ ColumnAssignmentSegment assignmentSegment = (ColumnAssignmentSegment)
visit(ctx.setClause());
result.add(assignmentSegment);
return result;
}
@@ -868,7 +867,7 @@ public abstract class PostgreSQLStatementVisitor extends
PostgreSQLStatementPars
@Override
public ASTNode visitSetClauseList(final SetClauseListContext ctx) {
- Collection<AssignmentSegment> assignments =
generateAssignmentSegments(ctx);
+ Collection<ColumnAssignmentSegment> assignments =
generateAssignmentSegments(ctx);
return new SetAssignmentSegment(ctx.start.getStartIndex() - 4,
ctx.stop.getStopIndex(), assignments);
}
diff --git
a/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
b/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
index 43663ad5ac8..3d5b1618e87 100644
---
a/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
+++
b/parser/sql/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/type/SQL92DMLStatementVisitor.java
@@ -53,7 +53,6 @@ import
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.TableRe
import
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.UpdateContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.WhereClauseContext;
import org.apache.shardingsphere.sql.parser.sql.common.enums.JoinType;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -150,9 +149,9 @@ public final class SQL92DMLStatementVisitor extends
SQL92StatementVisitor implem
@Override
public ASTNode visitSetAssignmentsClause(final SetAssignmentsClauseContext
ctx) {
- Collection<AssignmentSegment> assignments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
for (AssignmentContext each : ctx.assignment()) {
- assignments.add((AssignmentSegment) visit(each));
+ assignments.add((ColumnAssignmentSegment) visit(each));
}
return new SetAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), assignments);
}
@@ -172,7 +171,7 @@ public final class SQL92DMLStatementVisitor extends
SQL92StatementVisitor implem
List<ColumnSegment> columnSegments = new LinkedList<>();
columnSegments.add(column);
ExpressionSegment value = (ExpressionSegment)
visit(ctx.assignmentValue());
- AssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
+ ColumnAssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
result.getColumns().add(column);
return result;
}
diff --git
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
index bbbcfea55ca..112ec390d6f 100644
---
a/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
+++
b/parser/sql/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/sqlserver/visitor/statement/SQLServerStatementVisitor.java
@@ -46,10 +46,10 @@ import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.Con
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.CreateTableAsSelectClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.CteClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.CteClauseSetContext;
-import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DatabaseNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DataTypeContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DataTypeLengthContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DataTypeNameContext;
+import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DatabaseNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DeleteContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DelimitedIdentifierContext;
import
org.apache.shardingsphere.sql.parser.autogen.SQLServerStatementParser.DuplicateSpecificationContext;
@@ -116,7 +116,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.ConstraintSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexNameSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
@@ -167,13 +166,13 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegm
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.FunctionTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SubqueryTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtils;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.FunctionTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.value.collection.CollectionValue;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import
org.apache.shardingsphere.sql.parser.sql.common.value.keyword.KeywordValue;
@@ -1039,9 +1038,9 @@ public abstract class SQLServerStatementVisitor extends
SQLServerStatementBaseVi
@Override
public ASTNode visitSetAssignmentsClause(final SetAssignmentsClauseContext
ctx) {
- Collection<AssignmentSegment> assignments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignments = new LinkedList<>();
for (AssignmentContext each : ctx.assignment()) {
- assignments.add((AssignmentSegment) visit(each));
+ assignments.add((ColumnAssignmentSegment) visit(each));
}
return new SetAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), assignments);
}
@@ -1061,7 +1060,7 @@ public abstract class SQLServerStatementVisitor extends
SQLServerStatementBaseVi
List<ColumnSegment> columnSegments = new LinkedList<>();
columnSegments.add(column);
ExpressionSegment value = (ExpressionSegment)
visit(ctx.assignmentValue());
- AssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
+ ColumnAssignmentSegment result = new
ColumnAssignmentSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), columnSegments, value);
result.getColumns().add(column);
return result;
}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractor.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractor.java
index 8985479dbef..551df80356f 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractor.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractor.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.sql.parser.sql.common.extractor;
import lombok.Getter;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.routine.RoutineBodySegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.routine.ValidStatementSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.combine.CombineSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenExpression;
@@ -242,7 +242,7 @@ public final class TableExtractor {
}
}
- private void extractTablesFromAssignmentItems(final
Collection<AssignmentSegment> assignmentItems) {
+ private void extractTablesFromAssignmentItems(final
Collection<ColumnAssignmentSegment> assignmentItems) {
assignmentItems.forEach(each ->
extractTablesFromColumnSegments(each.getColumns()));
}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/AssignmentSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/AssignmentSegment.java
deleted file mode 100644
index 7ad440abf14..00000000000
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/AssignmentSegment.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment;
-
-import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
-
-import java.util.List;
-
-/**
- * Assignment segment.
- */
-public interface AssignmentSegment extends SQLSegment {
-
- /**
- * Get list of column segments.
- *
- * @return list of ColumnSegment
- */
- List<ColumnSegment> getColumns();
-
- /**
- * Get expression segment value.
- *
- * @return ExpressionSegment
- */
- ExpressionSegment getValue();
-}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/ColumnAssignmentSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/ColumnAssignmentSegment.java
index db6585a8437..4833cb16fcc 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/ColumnAssignmentSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/ColumnAssignmentSegment.java
@@ -19,6 +19,7 @@ package
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
@@ -29,7 +30,7 @@ import java.util.List;
*/
@RequiredArgsConstructor
@Getter
-public final class ColumnAssignmentSegment implements AssignmentSegment {
+public final class ColumnAssignmentSegment implements SQLSegment {
private final int startIndex;
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/SetAssignmentSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/SetAssignmentSegment.java
index c8b2cd08b45..908757225e3 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/SetAssignmentSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/assignment/SetAssignmentSegment.java
@@ -34,5 +34,5 @@ public final class SetAssignmentSegment implements SQLSegment
{
private final int stopIndex;
- private final Collection<AssignmentSegment> assignments;
+ private final Collection<ColumnAssignmentSegment> assignments;
}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/column/OnDuplicateKeyColumnsSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/column/OnDuplicateKeyColumnsSegment.java
index c8d3bd29ffc..8bf59d7b8a0 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/column/OnDuplicateKeyColumnsSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/column/OnDuplicateKeyColumnsSegment.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import java.util.Collection;
@@ -35,5 +35,5 @@ public final class OnDuplicateKeyColumnsSegment implements
SQLSegment {
private final int stopIndex;
- private final Collection<AssignmentSegment> columns;
+ private final Collection<ColumnAssignmentSegment> columns;
}
diff --git
a/parser/sql/statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractorTest.java
b/parser/sql/statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractorTest.java
index ebd59e4d090..7ddae54892a 100644
---
a/parser/sql/statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractorTest.java
+++
b/parser/sql/statement/src/test/java/org/apache/shardingsphere/sql/parser/sql/common/extractor/TableExtractorTest.java
@@ -21,7 +21,6 @@ import
org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.CombineType;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.routine.RoutineBodySegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.routine.ValidStatementSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.OnDuplicateKeyColumnsSegment;
@@ -116,7 +115,7 @@ class TableExtractorTest {
void assertExtractTablesFromInsert() {
MySQLInsertStatement insertStatement = new MySQLInsertStatement();
insertStatement.setTable(new SimpleTableSegment(new
TableNameSegment(122, 128, new IdentifierValue("t_order"))));
- Collection<AssignmentSegment> assignmentSegments = new LinkedList<>();
+ Collection<ColumnAssignmentSegment> assignmentSegments = new
LinkedList<>();
ColumnSegment columnSegment = new ColumnSegment(133, 136, new
IdentifierValue("id"));
columnSegment.setOwner(new OwnerSegment(130, 132, new
IdentifierValue("t_order")));
assignmentSegments.add(new ColumnAssignmentSegment(130, 140,
Collections.singletonList(columnSegment), new LiteralExpressionSegment(141,
142, 1)));
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java
index 9296379552f..e63bace5305 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/checker/HeterogeneousUpdateStatementChecker.java
@@ -18,10 +18,11 @@
package org.apache.shardingsphere.proxy.backend.hbase.checker;
import com.google.common.base.Preconditions;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateStatement;
+
import java.util.Collection;
import java.util.Optional;
@@ -50,8 +51,8 @@ public final class HeterogeneousUpdateStatementChecker
extends CommonHeterogeneo
}
private void checkAssignmentIsOk() {
- Collection<AssignmentSegment> assignmentSegments =
sqlStatement.getSetAssignment().getAssignments();
- for (AssignmentSegment assignmentSegment : assignmentSegments) {
+ Collection<ColumnAssignmentSegment> assignmentSegments =
sqlStatement.getSetAssignment().getAssignments();
+ for (ColumnAssignmentSegment assignmentSegment : assignmentSegments) {
Preconditions.checkArgument(isAllowExpressionSegment(assignmentSegment.getValue()),
"Assignment must is literal or parameter marker.");
boolean isRowKey = ALLOW_KEYS.stream().anyMatch(each ->
each.equalsIgnoreCase(assignmentSegment.getColumns().iterator().next().getIdentifier().getValue()));
Preconditions.checkArgument(!isRowKey, "Do not allow update
rowKey");
diff --git
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/converter/type/HBaseUpdateOperationConverter.java
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/converter/type/HBaseUpdateOperationConverter.java
index 812433d6cc3..4888795d6c2 100644
---
a/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/converter/type/HBaseUpdateOperationConverter.java
+++
b/proxy/backend/type/hbase/src/main/java/org/apache/shardingsphere/proxy/backend/hbase/converter/type/HBaseUpdateOperationConverter.java
@@ -27,7 +27,7 @@ import
org.apache.shardingsphere.proxy.backend.hbase.bean.HBaseOperation;
import
org.apache.shardingsphere.proxy.backend.hbase.converter.HBaseOperationConverter;
import
org.apache.shardingsphere.proxy.backend.hbase.converter.HBaseRowKeyExtractor;
import
org.apache.shardingsphere.proxy.backend.hbase.converter.operation.HBaseUpdateOperation;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
@@ -76,7 +76,7 @@ public final class HBaseUpdateOperationConverter implements
HBaseOperationConver
}
private void addPutColumn(final UpdateStatementContext
updateStatementContext, final Put put) {
- for (AssignmentSegment each :
updateStatementContext.getSqlStatement().getSetAssignment().getAssignments()) {
+ for (ColumnAssignmentSegment each :
updateStatementContext.getSqlStatement().getSetAssignment().getAssignments()) {
String columnName =
each.getColumns().iterator().next().getIdentifier().getValue();
String value = String.valueOf(((LiteralExpressionSegment)
each.getValue()).getLiterals());
put.addColumn(Bytes.toBytes("i"), Bytes.toBytes(columnName),
Bytes.toBytes(value));
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/assignment/AssignmentAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/assignment/AssignmentAssert.java
index 47dfe84025e..1d759cf8592 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/assignment/AssignmentAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/assignment/AssignmentAssert.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.as
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.column.ColumnAssert;
@@ -41,7 +41,7 @@ public final class AssignmentAssert {
* @param actual actual assignment segment
* @param expected expected assignment
*/
- public static void assertIs(final SQLCaseAssertContext assertContext,
final AssignmentSegment actual, final ExpectedAssignment expected) {
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final ColumnAssignmentSegment actual, final ExpectedAssignment expected) {
if (expected.getColumns().isEmpty()) {
ColumnAssert.assertIs(assertContext, actual.getColumns().get(0),
expected.getColumn());
} else {
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/insert/OnDuplicateKeyColumnsAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/insert/OnDuplicateKeyColumnsAssert.java
index b7017471478..d98f6cfd3fd 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/insert/OnDuplicateKeyColumnsAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/insert/OnDuplicateKeyColumnsAssert.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.in
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.OnDuplicateKeyColumnsSegment;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.SQLSegmentAssert;
@@ -27,8 +27,8 @@ import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.ass
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.insert.ExpectedOnDuplicateKeyColumns;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
/**
* On duplicate key columns assert.
@@ -47,7 +47,7 @@ public final class OnDuplicateKeyColumnsAssert {
assertNotNull(expected, assertContext.getText("On duplicate key
columns should exist."));
assertThat(assertContext.getText("On duplicate key columns size
assertion error: "), actual.getColumns().size(),
is(expected.getAssignments().size()));
int count = 0;
- for (AssignmentSegment each : actual.getColumns()) {
+ for (ColumnAssignmentSegment each : actual.getColumns()) {
AssignmentAssert.assertIs(assertContext, each,
expected.getAssignments().get(count));
count++;
}
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/set/SetClauseAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/set/SetClauseAssert.java
index d3db50eedb9..076041eeb2d 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/set/SetClauseAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/set/SetClauseAssert.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.se
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.AssignmentSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.assignment.SetAssignmentSegment;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.SQLSegmentAssert;
@@ -27,8 +27,8 @@ import
org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.ass
import
org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.segment.impl.set.ExpectedSetClause;
import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
/**
* Set clause assert.
@@ -47,7 +47,7 @@ public final class SetClauseAssert {
assertNotNull(expected, assertContext.getText("Assignments should
exist."));
assertThat(assertContext.getText("Assignments size assertion error:
"), actual.getAssignments().size(), is(expected.getAssignments().size()));
int count = 0;
- for (AssignmentSegment each : actual.getAssignments()) {
+ for (ColumnAssignmentSegment each : actual.getAssignments()) {
AssignmentAssert.assertIs(assertContext, each,
expected.getAssignments().get(count));
count++;
}