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 <zhangli...@apache.org>
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++;
         }

Reply via email to