You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by wu...@apache.org on 2023/06/02 16:09:23 UTC

[shardingsphere] branch master updated: Fix sonar issue on MySQLDDLStatementVisitor (#26020)

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 f2e12f148ef Fix sonar issue on MySQLDDLStatementVisitor (#26020)
f2e12f148ef is described below

commit f2e12f148ef3007e1a9ecf76156995a0256c5d76
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Jun 3 00:09:14 2023 +0800

    Fix sonar issue on MySQLDDLStatementVisitor (#26020)
    
    * Fix sonar issue on MySQLDDLStatementVisitor
    
    * Fix sonar issue on OpenGaussDDLStatementVisitor
    
    * Fix sonar issue on PostgreSQLDDLStatementVisitor
    
    * Fix sonar issue on MilitaryIdentityNumberRandomReplaceAlgorithmTest
    
    * Fix sonar issue on JDBCContextTest
    
    * Fix sonar issue on JDBCContextTest
    
    * Fix sonar issue on JDBCContextTest
    
    * Fix sonar issue on JDBCContextTest
    
    * Fix sonar issue on CDCSchemaTableUtils
    
    * Fix sonar issue on CDCImporterManager
    
    * Fix sonar issue on PipelineDataSourceSink
    
    * Fix sonar issue on CDCImporter
    
    * Fix sonar issue on SingleTableInventoryDataConsistencyChecker
    
    * Fix sonar issue on OwnerAvailable
    
    * Fix sonar issue on OracleAlterSynonymStatement
    
    * Fix sonar issue on OracleDropDirectoryStatement
    
    * Fix sonar issue on SQLServerAlterTriggerStatement
    
    * Fix sonar issue on SQLServerCreateTriggerStatement
    
    * Fix sonar issue on SQLServerDropTriggerStatement
    
    * Fix sonar issue on PostgreSQLBinaryTimestampUtils
---
 .../PostgreSQLTimeBinaryProtocolValue.java         |   2 +-
 .../util/PostgreSQLBinaryTimestampUtils.java       |   5 +-
 .../PostgreSQLTimeBinaryProtocolValueTest.java     |   2 +-
 .../util/PostgreSQLBinaryTimestampUtilsTest.java   |   8 +-
 ...ryIdentityNumberRandomReplaceAlgorithmTest.java |   5 +-
 .../driver/jdbc/context/JDBCContextTest.java       |  29 ++----
 .../pipeline/cdc/core/importer/CDCImporter.java    |   2 +-
 .../cdc/core/importer/CDCImporterManager.java      |   4 +
 .../pipeline/cdc/core/prepare/CDCJobPreparer.java  |  12 +--
 .../pipeline/cdc/util/CDCSchemaTableUtils.java     |   2 +-
 ...SingleTableInventoryDataConsistencyChecker.java |  15 +---
 .../core/importer/sink/PipelineDataSourceSink.java |  30 ++++---
 .../statement/type/MySQLDDLStatementVisitor.java   | 100 +++++++++++----------
 .../type/OpenGaussDDLStatementVisitor.java         |  47 +++++-----
 .../type/PostgreSQLDDLStatementVisitor.java        |  47 +++++-----
 .../sql/common/segment/generic/OwnerAvailable.java |   4 +-
 .../oracle/ddl/OracleAlterSynonymStatement.java    |   3 +-
 .../oracle/ddl/OracleDropDirectoryStatement.java   |   3 +-
 .../ddl/SQLServerAlterTriggerStatement.java        |   3 +-
 .../ddl/SQLServerCreateTriggerStatement.java       |   3 +-
 .../ddl/SQLServerDropTriggerStatement.java         |   3 +-
 21 files changed, 155 insertions(+), 174 deletions(-)

diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValue.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValue.java
index dd0c67ced21..e26b4eb0697 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValue.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValue.java
@@ -39,6 +39,6 @@ public final class PostgreSQLTimeBinaryProtocolValue implements PostgreSQLBinary
     
     @Override
     public void write(final PostgreSQLPacketPayload payload, final Object value) {
-        payload.writeInt8(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime((Timestamp) value, false));
+        payload.writeInt8(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime((Timestamp) value));
     }
 }
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtils.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtils.java
index 86f42e82837..6293e26e063 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtils.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtils.java
@@ -38,11 +38,10 @@ public final class PostgreSQLBinaryTimestampUtils {
      * Convert Timestamp to PostgreSQL time.
      *
      * @param timestamp timestamp
-     * @param withTimeZone with time zone
      * @return PostgreSQL time
      */
-    public static long toPostgreSQLTime(final Timestamp timestamp, final boolean withTimeZone) {
-        long millis = timestamp.getTime() - (timestamp.getNanos() / 1000000L) + (withTimeZone ? 0L : TimeZone.getDefault().getRawOffset());
+    public static long toPostgreSQLTime(final Timestamp timestamp) {
+        long millis = timestamp.getTime() - (timestamp.getNanos() / 1000000L) + (TimeZone.getDefault().getRawOffset());
         long nanos = timestamp.getNanos() / 1000L;
         long pgSeconds = convertJavaEpochToPgEpoch(millis / 1000L);
         if (nanos >= 1000000L) {
diff --git a/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValueTest.java b/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValueTest.java
index b8fa434d5f6..26b58b94f10 100644
--- a/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValueTest.java
+++ b/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLTimeBinaryProtocolValueTest.java
@@ -45,6 +45,6 @@ class PostgreSQLTimeBinaryProtocolValueTest {
         assertThat(actual.read(payload, 8), is(1L));
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         actual.write(payload, timestamp);
-        verify(payload).writeInt8(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime(timestamp, false));
+        verify(payload).writeInt8(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime(timestamp));
     }
 }
diff --git a/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtilsTest.java b/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtilsTest.java
index c58f8ddc7bc..72d5cd630bd 100644
--- a/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtilsTest.java
+++ b/db-protocol/postgresql/src/test/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/util/PostgreSQLBinaryTimestampUtilsTest.java
@@ -30,12 +30,6 @@ class PostgreSQLBinaryTimestampUtilsTest {
     @Test
     void assertToPostgreSQLTimeWithoutTimeZone() {
         long expected = 688123357272000L + TimeZone.getDefault().getRawOffset() * 1000L;
-        assertThat(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime(new Timestamp(1634808157272L), false), is(expected));
-    }
-    
-    @Test
-    void assertToPostgreSQLTimeWithTimeZone() {
-        assertThat(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime(new Timestamp(1634808157272L), true), is(688123357272000L));
-        assertThat(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime(new Timestamp(-15165977600000L), true), is(-16113440000000000L));
+        assertThat(PostgreSQLBinaryTimestampUtils.toPostgreSQLTime(new Timestamp(1634808157272L)), is(expected));
     }
 }
diff --git a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/algorithm/replace/MilitaryIdentityNumberRandomReplaceAlgorithmTest.java b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/algorithm/replace/MilitaryIdentityNumberRandomReplaceAlgorithmTest.java
index 7139e9f57c3..0b42067a4ec 100644
--- a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/algorithm/replace/MilitaryIdentityNumberRandomReplaceAlgorithmTest.java
+++ b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/algorithm/replace/MilitaryIdentityNumberRandomReplaceAlgorithmTest.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.mask.algorithm.replace;
 
 import org.apache.shardingsphere.mask.exception.algorithm.MaskAlgorithmInitializationException;
-import org.apache.shardingsphere.mask.spi.MaskAlgorithm;
 import org.apache.shardingsphere.test.util.PropertiesBuilder;
 import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.BeforeEach;
@@ -50,8 +49,8 @@ class MilitaryIdentityNumberRandomReplaceAlgorithmTest {
     }
     
     @Test
-    void testMaskWithInvalidProps() {
-        MaskAlgorithm algorithm = new MilitaryIdentityNumberRandomReplaceAlgorithm();
+    void assertMaskWithInvalidProps() {
+        MilitaryIdentityNumberRandomReplaceAlgorithm algorithm = new MilitaryIdentityNumberRandomReplaceAlgorithm();
         assertThrows(MaskAlgorithmInitializationException.class, () -> algorithm.init(new Properties()));
     }
 }
diff --git a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContextTest.java b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContextTest.java
index 7f76de99535..fef2f2240ae 100644
--- a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContextTest.java
+++ b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContextTest.java
@@ -23,10 +23,8 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.junit.jupiter.MockitoExtension;
 
-import javax.sql.DataSource;
 import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Collections;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
@@ -36,30 +34,19 @@ import static org.mockito.Mockito.mock;
 class JDBCContextTest {
     
     @Test
-    void assertNullCachedDbMetadataWithEmptyDatasource() throws Exception {
-        JDBCContext actual = new JDBCContext(new HashMap<>());
-        assertNull(actual.getCachedDatabaseMetaData());
+    void assertGetCachedDatabaseMetaDataForNullValue() throws Exception {
+        assertNull(new JDBCContext(Collections.emptyMap()).getCachedDatabaseMetaData());
     }
     
     @Test
-    void assertNotNullCashedDbMetadataWith() throws SQLException {
-        Map<String, DataSource> dataSourceMap = getStringDataSourceMap();
-        JDBCContext jdbcContext = new JDBCContext(dataSourceMap);
-        assertNotNull(jdbcContext.getCachedDatabaseMetaData());
+    void assertGetCachedDatabaseMetaDataForSingleValue() throws SQLException {
+        assertNotNull(new JDBCContext(Collections.singletonMap("foo_db", new CircuitBreakerDataSource())).getCachedDatabaseMetaData());
     }
     
     @Test
-    void assetNullMetadataAfterRefreshingExisting() throws SQLException {
-        Map<String, DataSource> stringDataSourceMap = getStringDataSourceMap();
-        JDBCContext jdbcContext = new JDBCContext(stringDataSourceMap);
-        DataSourceChangedEvent event = mock();
-        jdbcContext.refreshCachedDatabaseMetaData(event);
+    void assertGetCachedDatabaseMetaDataAfterRefreshingExisting() throws SQLException {
+        JDBCContext jdbcContext = new JDBCContext(Collections.singletonMap("foo_db", new CircuitBreakerDataSource()));
+        jdbcContext.refreshCachedDatabaseMetaData(mock(DataSourceChangedEvent.class));
         assertNull(jdbcContext.getCachedDatabaseMetaData());
     }
-    
-    private static Map<String, DataSource> getStringDataSourceMap() {
-        Map<String, DataSource> result = new HashMap<>();
-        result.put("test_db", new CircuitBreakerDataSource());
-        return result;
-    }
 }
diff --git a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporter.java b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporter.java
index f5124b3bfbd..909b678994f 100644
--- a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporter.java
+++ b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporter.java
@@ -140,7 +140,7 @@ public final class CDCImporter extends AbstractLifecycleExecutor implements Impo
     }
     
     private List<Record> filterDataRecords(final List<Record> records) {
-        return records.stream().filter(DataRecord.class::isInstance).map(each -> (DataRecord) each).collect(Collectors.toList());
+        return records.stream().filter(DataRecord.class::isInstance).map(DataRecord.class::cast).collect(Collectors.toList());
     }
     
     // TODO openGauss CSN should be incremented for every transaction. Currently, CSN might be duplicated in transactions.
diff --git a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterManager.java b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterManager.java
index 62f684da2a1..4e3a4b9bd2e 100644
--- a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterManager.java
+++ b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/importer/CDCImporterManager.java
@@ -17,12 +17,16 @@
 
 package org.apache.shardingsphere.data.pipeline.cdc.core.importer;
 
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * CDC importer manager.
  */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class CDCImporterManager {
     
     private static final Map<String, CDCImporter> IMPORTER_MAP = new ConcurrentHashMap<>();
diff --git a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java
index 5fb6519ca36..df128b65300 100644
--- a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java
+++ b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/prepare/CDCJobPreparer.java
@@ -120,9 +120,10 @@ public final class CDCJobPreparer {
             PipelineChannel channel = PipelineTaskUtils.createInventoryChannel(processContext.getPipelineChannelCreator(), importerConfig.getBatchSize(), position);
             channelProgressPairs.add(new CDCChannelProgressPair(channel, jobItemContext));
             Dumper dumper = new InventoryDumper(each, channel, jobItemContext.getSourceDataSource(), jobItemContext.getSourceMetaDataLoader());
-            Importer importer = importerUsed.get() ? null : new CDCImporter(channelProgressPairs, importerConfig.getBatchSize(), 3, TimeUnit.SECONDS, jobItemContext.getSink(),
-                    needSorting(ImporterType.INVENTORY, hasGlobalCSN(taskConfig.getDumperConfig().getDataSourceConfig().getDatabaseType())),
-                    importerConfig.getRateLimitAlgorithm());
+            Importer importer = importerUsed.get() ? null
+                    : new CDCImporter(channelProgressPairs, importerConfig.getBatchSize(), 3, TimeUnit.SECONDS, jobItemContext.getSink(),
+                            needSorting(ImporterType.INVENTORY, hasGlobalCSN(taskConfig.getDumperConfig().getDataSourceConfig().getDatabaseType())),
+                            importerConfig.getRateLimitAlgorithm());
             jobItemContext.getInventoryTasks().add(new CDCInventoryTask(PipelineTaskUtils.generateInventoryTaskId(each), processContext.getInventoryDumperExecuteEngine(),
                     processContext.getInventoryImporterExecuteEngine(), dumper, importer, position));
             importerUsed.set(true);
@@ -148,8 +149,9 @@ public final class CDCJobPreparer {
         Dumper dumper = PipelineTypedSPILoader.getDatabaseTypedService(IncrementalDumperCreator.class, dumperConfig.getDataSourceConfig().getDatabaseType().getType())
                 .createIncrementalDumper(dumperConfig, dumperConfig.getPosition(), channel, jobItemContext.getSourceMetaDataLoader());
         boolean needSorting = needSorting(ImporterType.INCREMENTAL, hasGlobalCSN(importerConfig.getDataSourceConfig().getDatabaseType()));
-        Importer importer = importerUsed.get() ? null : new CDCImporter(channelProgressPairs, importerConfig.getBatchSize(), 300, TimeUnit.MILLISECONDS,
-                jobItemContext.getSink(), needSorting, importerConfig.getRateLimitAlgorithm());
+        Importer importer = importerUsed.get() ? null
+                : new CDCImporter(channelProgressPairs, importerConfig.getBatchSize(), 300, TimeUnit.MILLISECONDS,
+                        jobItemContext.getSink(), needSorting, importerConfig.getRateLimitAlgorithm());
         PipelineTask incrementalTask = new CDCIncrementalTask(dumperConfig.getDataSourceName(), jobItemContext.getJobProcessContext().getIncrementalExecuteEngine(), dumper, importer, taskProgress);
         jobItemContext.getIncrementalTasks().add(incrementalTask);
         importerUsed.set(true);
diff --git a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/CDCSchemaTableUtils.java b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/CDCSchemaTableUtils.java
index a6db39787e1..ad3f1b24177 100644
--- a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/CDCSchemaTableUtils.java
+++ b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/CDCSchemaTableUtils.java
@@ -50,11 +50,11 @@ public final class CDCSchemaTableUtils {
      * @return map key is schema, value is table names
      */
     public static Map<String, Set<String>> parseTableExpressionWithSchema(final ShardingSphereDatabase database, final Collection<SchemaTable> schemaTables) {
-        Map<String, Set<String>> result = new HashMap<>();
         Collection<String> systemSchemas = database.getProtocolType().getSystemSchemas();
         if (schemaTables.stream().anyMatch(each -> "*".equals(each.getTable()) && ("*".equals(each.getSchema()) || each.getSchema().isEmpty()))) {
             return parseTableExpressionWithAllTables(database, systemSchemas);
         }
+        Map<String, Set<String>> result = new HashMap<>();
         for (SchemaTable each : schemaTables) {
             if ("*".equals(each.getSchema())) {
                 result.putAll(parseTableExpressionWithAllSchema(database, systemSchemas, each));
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/SingleTableInventoryDataConsistencyChecker.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/SingleTableInventoryDataConsistencyChecker.java
index c87ce527f6d..a126d1d942d 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/SingleTableInventoryDataConsistencyChecker.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/SingleTableInventoryDataConsistencyChecker.java
@@ -96,11 +96,11 @@ public final class SingleTableInventoryDataConsistencyChecker {
         String schemaName = sourceTable.getSchemaName().getOriginal();
         String sourceTableName = sourceTable.getTableName().getOriginal();
         Map<String, Object> tableCheckPositions = progressContext.getTableCheckPositions();
-        DataConsistencyCalculateParameter sourceParam = buildParameter(
-                sourceDataSource, schemaName, sourceTableName, columnNames, sourceDatabaseType, targetDatabaseType, uniqueKey, tableCheckPositions.get(sourceTableName));
+        DataConsistencyCalculateParameter sourceParam = new DataConsistencyCalculateParameter(sourceDataSource,
+                schemaName, sourceTableName, columnNames, sourceDatabaseType, targetDatabaseType, uniqueKey, tableCheckPositions.get(sourceTableName));
         String targetTableName = targetTable.getTableName().getOriginal();
-        DataConsistencyCalculateParameter targetParam = buildParameter(targetDataSource, targetTable.getSchemaName().getOriginal(), targetTableName,
-                columnNames, targetDatabaseType, sourceDatabaseType, uniqueKey, tableCheckPositions.get(targetTableName));
+        DataConsistencyCalculateParameter targetParam = new DataConsistencyCalculateParameter(targetDataSource,
+                targetTable.getSchemaName().getOriginal(), targetTableName, columnNames, targetDatabaseType, sourceDatabaseType, uniqueKey, tableCheckPositions.get(targetTableName));
         Iterator<DataConsistencyCalculatedResult> sourceCalculatedResults = waitFuture(executor.submit(() -> calculateAlgorithm.calculate(sourceParam))).iterator();
         Iterator<DataConsistencyCalculatedResult> targetCalculatedResults = waitFuture(executor.submit(() -> calculateAlgorithm.calculate(targetParam))).iterator();
         try {
@@ -145,13 +145,6 @@ public final class SingleTableInventoryDataConsistencyChecker {
         return jobId.length() <= 6 ? jobId : jobId.substring(0, 6);
     }
     
-    private DataConsistencyCalculateParameter buildParameter(final PipelineDataSourceWrapper sourceDataSource,
-                                                             final String schemaName, final String tableName, final List<String> columnNames,
-                                                             final String sourceDatabaseType, final String targetDatabaseType, final PipelineColumnMetaData uniqueKey,
-                                                             final Object tableCheckPosition) {
-        return new DataConsistencyCalculateParameter(sourceDataSource, schemaName, tableName, columnNames, sourceDatabaseType, targetDatabaseType, uniqueKey, tableCheckPosition);
-    }
-    
     private <T> T waitFuture(final Future<T> future) {
         try {
             return future.get();
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/PipelineDataSourceSink.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/PipelineDataSourceSink.java
index 13720675810..c75c6fc2498 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/PipelineDataSourceSink.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/sink/PipelineDataSourceSink.java
@@ -166,25 +166,36 @@ public final class PipelineDataSourceSink implements PipelineSink {
         }
     }
     
-    private void doFlush(final Connection connection, final DataRecord each) throws SQLException {
-        switch (each.getType()) {
+    private void doFlush(final Connection connection, final List<DataRecord> buffer) {
+        // TODO it's better use transaction, but execute delete maybe not effect when open transaction of PostgreSQL sometimes
+        for (DataRecord each : buffer) {
+            try {
+                doFlush(connection, each);
+            } catch (final SQLException ex) {
+                throw new PipelineImporterJobWriteException(String.format("Write failed, record=%s", each), ex);
+            }
+        }
+    }
+    
+    private void doFlush(final Connection connection, final DataRecord dataRecord) throws SQLException {
+        switch (dataRecord.getType()) {
             case IngestDataChangeType.INSERT:
                 if (null != rateLimitAlgorithm) {
                     rateLimitAlgorithm.intercept(JobOperationType.INSERT, 1);
                 }
-                executeBatchInsert(connection, Collections.singletonList(each));
+                executeBatchInsert(connection, Collections.singletonList(dataRecord));
                 break;
             case IngestDataChangeType.UPDATE:
                 if (null != rateLimitAlgorithm) {
                     rateLimitAlgorithm.intercept(JobOperationType.UPDATE, 1);
                 }
-                executeUpdate(connection, each);
+                executeUpdate(connection, dataRecord);
                 break;
             case IngestDataChangeType.DELETE:
                 if (null != rateLimitAlgorithm) {
                     rateLimitAlgorithm.intercept(JobOperationType.DELETE, 1);
                 }
-                executeBatchDelete(connection, Collections.singletonList(each));
+                executeBatchDelete(connection, Collections.singletonList(dataRecord));
                 break;
             default:
         }
@@ -279,14 +290,7 @@ public final class PipelineDataSourceSink implements PipelineSink {
             return;
         }
         try (Connection connection = dataSource.getConnection()) {
-            // TODO it's better use transaction, but execute delete maybe not effect when open transaction of PostgreSQL sometimes
-            for (DataRecord each : buffer) {
-                try {
-                    doFlush(connection, each);
-                } catch (final SQLException ex) {
-                    throw new PipelineImporterJobWriteException(String.format("Write failed, record=%s", each), ex);
-                }
-            }
+            doFlush(connection, buffer);
         } catch (final SQLException ex) {
             throw new PipelineImporterJobWriteException(ex);
         }
diff --git a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
index 8715e02b99f..388490e2f0e 100644
--- a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
+++ b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
@@ -184,6 +184,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * DDL statement visitor for MySQL.
@@ -349,50 +350,63 @@ public final class MySQLDDLStatementVisitor extends MySQLStatementVisitor implem
     private Collection<AlterDefinitionSegment> getAlterDefinitionSegments(final AlterListContext ctx) {
         Collection<AlterDefinitionSegment> result = new LinkedList<>();
         for (AlterListItemContext each : ctx.alterListItem()) {
-            if (each instanceof AddColumnContext) {
-                result.add((AddColumnDefinitionSegment) visit(each));
-            }
-            if (each instanceof AlterConstraintContext || each instanceof AlterCheckContext) {
-                result.add((AlterDefinitionSegment) visit(each));
-            }
-            if (each instanceof ChangeColumnContext) {
-                result.add(generateModifyColumnDefinitionSegment((ChangeColumnContext) each));
-            }
-            if (each instanceof ModifyColumnContext) {
-                result.add(generateModifyColumnDefinitionSegment((ModifyColumnContext) each));
-            }
-            if (each instanceof AlterTableDropContext) {
-                AlterTableDropContext alterTableDrop = (AlterTableDropContext) each;
-                if (null != alterTableDrop.CHECK() || null != alterTableDrop.CONSTRAINT()) {
-                    ConstraintSegment constraintSegment = new ConstraintSegment(alterTableDrop.identifier().getStart().getStartIndex(), alterTableDrop.identifier().getStop().getStopIndex(),
-                            (IdentifierValue) visit(alterTableDrop.identifier()));
-                    result.add(new DropConstraintDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), constraintSegment));
-                } else if (null == alterTableDrop.KEY() && null == alterTableDrop.keyOrIndex()) {
-                    result.add(generateDropColumnDefinitionSegment(alterTableDrop));
-                } else if (null != alterTableDrop.keyOrIndex()) {
-                    IndexSegment indexSegment = (IndexSegment) visit(alterTableDrop.indexName());
-                    result.add(new DropIndexDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), indexSegment));
-                }
-            }
-            if (each instanceof AddTableConstraintContext) {
-                result.add((AddConstraintDefinitionSegment) visit(each));
-            }
-            if (each instanceof AlterRenameTableContext) {
-                result.add((RenameTableDefinitionSegment) visit(each));
-            }
-            if (each instanceof AlterConvertContext) {
-                result.add((ConvertTableDefinitionSegment) visit(each));
-            }
-            if (each instanceof RenameColumnContext) {
-                result.add((RenameColumnSegment) visit(each));
-            }
-            if (each instanceof RenameIndexContext) {
-                result.add((RenameIndexDefinitionSegment) visit(each));
-            }
+            getAlterDefinitionSegment(ctx, each).ifPresent(result::add);
         }
         return result;
     }
     
+    private Optional<AlterDefinitionSegment> getAlterDefinitionSegment(final AlterListContext alterListContext, final AlterListItemContext alterListItemContext) {
+        if (alterListItemContext instanceof AddColumnContext) {
+            return Optional.of((AddColumnDefinitionSegment) visit(alterListItemContext));
+        }
+        if (alterListItemContext instanceof AlterConstraintContext || alterListItemContext instanceof AlterCheckContext) {
+            return Optional.of((AlterDefinitionSegment) visit(alterListItemContext));
+        }
+        if (alterListItemContext instanceof ChangeColumnContext) {
+            return Optional.of(generateModifyColumnDefinitionSegment((ChangeColumnContext) alterListItemContext));
+        }
+        if (alterListItemContext instanceof ModifyColumnContext) {
+            return Optional.of(generateModifyColumnDefinitionSegment((ModifyColumnContext) alterListItemContext));
+        }
+        if (alterListItemContext instanceof AlterTableDropContext) {
+            return getDropItemDefinitionSegment(alterListContext, (AlterTableDropContext) alterListItemContext);
+        }
+        if (alterListItemContext instanceof AddTableConstraintContext) {
+            return Optional.of((AddConstraintDefinitionSegment) visit(alterListItemContext));
+        }
+        if (alterListItemContext instanceof AlterRenameTableContext) {
+            return Optional.of((RenameTableDefinitionSegment) visit(alterListItemContext));
+        }
+        if (alterListItemContext instanceof AlterConvertContext) {
+            return Optional.of((ConvertTableDefinitionSegment) visit(alterListItemContext));
+        }
+        if (alterListItemContext instanceof RenameColumnContext) {
+            return Optional.of((RenameColumnSegment) visit(alterListItemContext));
+        }
+        if (alterListItemContext instanceof RenameIndexContext) {
+            return Optional.of((RenameIndexDefinitionSegment) visit(alterListItemContext));
+        }
+        return Optional.empty();
+    }
+    
+    private Optional<AlterDefinitionSegment> getDropItemDefinitionSegment(final AlterListContext alterListContext, final AlterTableDropContext alterTableDrop) {
+        if (null != alterTableDrop.CHECK() || null != alterTableDrop.CONSTRAINT()) {
+            ConstraintSegment constraint = new ConstraintSegment(alterTableDrop.identifier().getStart().getStartIndex(), alterTableDrop.identifier().getStop().getStopIndex(),
+                    (IdentifierValue) visit(alterTableDrop.identifier()));
+            return Optional.of(new DropConstraintDefinitionSegment(alterListContext.getStart().getStartIndex(), alterListContext.getStop().getStopIndex(), constraint));
+        }
+        if (null == alterTableDrop.KEY() && null == alterTableDrop.keyOrIndex()) {
+            ColumnSegment column = new ColumnSegment(alterTableDrop.columnInternalRef.start.getStartIndex(), alterTableDrop.columnInternalRef.stop.getStopIndex(),
+                    (IdentifierValue) visit(alterTableDrop.columnInternalRef));
+            return Optional.of(new DropColumnDefinitionSegment(alterTableDrop.getStart().getStartIndex(), alterTableDrop.getStop().getStopIndex(), Collections.singleton(column)));
+        }
+        if (null != alterTableDrop.keyOrIndex()) {
+            return Optional.of(
+                    new DropIndexDefinitionSegment(alterListContext.getStart().getStartIndex(), alterListContext.getStop().getStopIndex(), (IndexSegment) visit(alterTableDrop.indexName())));
+        }
+        return Optional.empty();
+    }
+    
     @Override
     public ASTNode visitAlterAlgorithmOption(final AlterAlgorithmOptionContext ctx) {
         AlgorithmOption algorithmOption = null;
@@ -472,12 +486,6 @@ public final class MySQLDDLStatementVisitor extends MySQLStatementVisitor implem
         return result;
     }
     
-    private DropColumnDefinitionSegment generateDropColumnDefinitionSegment(final AlterTableDropContext ctx) {
-        ColumnSegment column = new ColumnSegment(ctx.columnInternalRef.start.getStartIndex(), ctx.columnInternalRef.stop.getStopIndex(),
-                (IdentifierValue) visit(ctx.columnInternalRef));
-        return new DropColumnDefinitionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), Collections.singletonList(column));
-    }
-    
     private ModifyColumnDefinitionSegment generateModifyColumnDefinitionSegment(final ModifyColumnContext ctx) {
         ColumnSegment column = new ColumnSegment(ctx.columnInternalRef.start.getStartIndex(), ctx.columnInternalRef.stop.getStopIndex(), (IdentifierValue) visit(ctx.columnInternalRef));
         ModifyColumnDefinitionSegment result = new ModifyColumnDefinitionSegment(
diff --git a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
index 41e550f64e6..5586241bc55 100644
--- a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
+++ b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/type/OpenGaussDDLStatementVisitor.java
@@ -247,6 +247,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * DDL statement visitor for openGauss.
@@ -328,7 +329,7 @@ public final class OpenGaussDDLStatementVisitor extends OpenGaussStatementVisito
     public ASTNode visitAlterDefinitionClause(final AlterDefinitionClauseContext ctx) {
         CollectionValue<AlterDefinitionSegment> result = new CollectionValue<>();
         if (null != ctx.alterTableActions()) {
-            result.getValue().addAll(getAlterDefinitionSegments(ctx));
+            result.getValue().addAll(ctx.alterTableActions().alterTableAction().stream().flatMap(each -> getAlterDefinitionSegments(each).stream()).collect(Collectors.toList()));
         }
         if (null != ctx.renameTableSpecification()) {
             result.getValue().add((RenameTableDefinitionSegment) visit(ctx.renameTableSpecification()));
@@ -337,30 +338,28 @@ public final class OpenGaussDDLStatementVisitor extends OpenGaussStatementVisito
     }
     
     @SuppressWarnings("unchecked")
-    private Collection<AlterDefinitionSegment> getAlterDefinitionSegments(final AlterDefinitionClauseContext ctx) {
+    private Collection<AlterDefinitionSegment> getAlterDefinitionSegments(final AlterTableActionContext ctx) {
         Collection<AlterDefinitionSegment> result = new LinkedList<>();
-        for (AlterTableActionContext each : ctx.alterTableActions().alterTableAction()) {
-            if (null != each.addColumnSpecification()) {
-                result.addAll(((CollectionValue<AddColumnDefinitionSegment>) visit(each.addColumnSpecification())).getValue());
-            }
-            if (null != each.addConstraintSpecification() && null != each.addConstraintSpecification().tableConstraint()) {
-                result.add((AddConstraintDefinitionSegment) visit(each.addConstraintSpecification()));
-            }
-            if (null != each.validateConstraintSpecification()) {
-                result.add((ValidateConstraintDefinitionSegment) visit(each.validateConstraintSpecification()));
-            }
-            if (null != each.modifyColumnSpecification()) {
-                result.add((ModifyColumnDefinitionSegment) visit(each.modifyColumnSpecification()));
-            }
-            if (null != each.modifyConstraintSpecification()) {
-                result.add((ModifyConstraintDefinitionSegment) visit(each.modifyConstraintSpecification()));
-            }
-            if (null != each.dropColumnSpecification()) {
-                result.add((DropColumnDefinitionSegment) visit(each.dropColumnSpecification()));
-            }
-            if (null != each.dropConstraintSpecification()) {
-                result.add((DropConstraintDefinitionSegment) visit(each.dropConstraintSpecification()));
-            }
+        if (null != ctx.addColumnSpecification()) {
+            result.addAll(((CollectionValue<AddColumnDefinitionSegment>) visit(ctx.addColumnSpecification())).getValue());
+        }
+        if (null != ctx.addConstraintSpecification() && null != ctx.addConstraintSpecification().tableConstraint()) {
+            result.add((AddConstraintDefinitionSegment) visit(ctx.addConstraintSpecification()));
+        }
+        if (null != ctx.validateConstraintSpecification()) {
+            result.add((ValidateConstraintDefinitionSegment) visit(ctx.validateConstraintSpecification()));
+        }
+        if (null != ctx.modifyColumnSpecification()) {
+            result.add((ModifyColumnDefinitionSegment) visit(ctx.modifyColumnSpecification()));
+        }
+        if (null != ctx.modifyConstraintSpecification()) {
+            result.add((ModifyConstraintDefinitionSegment) visit(ctx.modifyConstraintSpecification()));
+        }
+        if (null != ctx.dropColumnSpecification()) {
+            result.add((DropColumnDefinitionSegment) visit(ctx.dropColumnSpecification()));
+        }
+        if (null != ctx.dropConstraintSpecification()) {
+            result.add((DropConstraintDefinitionSegment) visit(ctx.dropConstraintSpecification()));
         }
         return result;
     }
diff --git a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
index 541fa851f86..5a2ba04d303 100644
--- a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
+++ b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/type/PostgreSQLDDLStatementVisitor.java
@@ -320,6 +320,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * DDL statement visitor for PostgreSQL.
@@ -411,7 +412,7 @@ public final class PostgreSQLDDLStatementVisitor extends PostgreSQLStatementVisi
     public ASTNode visitAlterDefinitionClause(final AlterDefinitionClauseContext ctx) {
         CollectionValue<AlterDefinitionSegment> result = new CollectionValue<>();
         if (null != ctx.alterTableActions()) {
-            result.getValue().addAll(getAlterDefinitionSegments(ctx));
+            result.getValue().addAll(ctx.alterTableActions().alterTableAction().stream().flatMap(each -> getAlterDefinitionSegments(each).stream()).collect(Collectors.toList()));
         }
         if (null != ctx.renameTableSpecification()) {
             result.getValue().add((RenameTableDefinitionSegment) visit(ctx.renameTableSpecification()));
@@ -420,30 +421,28 @@ public final class PostgreSQLDDLStatementVisitor extends PostgreSQLStatementVisi
     }
     
     @SuppressWarnings("unchecked")
-    private Collection<AlterDefinitionSegment> getAlterDefinitionSegments(final AlterDefinitionClauseContext ctx) {
+    private Collection<AlterDefinitionSegment> getAlterDefinitionSegments(final AlterTableActionContext ctx) {
         Collection<AlterDefinitionSegment> result = new LinkedList<>();
-        for (AlterTableActionContext each : ctx.alterTableActions().alterTableAction()) {
-            if (null != each.addColumnSpecification()) {
-                result.addAll(((CollectionValue<AddColumnDefinitionSegment>) visit(each.addColumnSpecification())).getValue());
-            }
-            if (null != each.addConstraintSpecification() && null != each.addConstraintSpecification().tableConstraint()) {
-                result.add((AddConstraintDefinitionSegment) visit(each.addConstraintSpecification()));
-            }
-            if (null != each.validateConstraintSpecification()) {
-                result.add((ValidateConstraintDefinitionSegment) visit(each.validateConstraintSpecification()));
-            }
-            if (null != each.modifyColumnSpecification()) {
-                result.add((ModifyColumnDefinitionSegment) visit(each.modifyColumnSpecification()));
-            }
-            if (null != each.modifyConstraintSpecification()) {
-                result.add((ModifyConstraintDefinitionSegment) visit(each.modifyConstraintSpecification()));
-            }
-            if (null != each.dropColumnSpecification()) {
-                result.add((DropColumnDefinitionSegment) visit(each.dropColumnSpecification()));
-            }
-            if (null != each.dropConstraintSpecification()) {
-                result.add((DropConstraintDefinitionSegment) visit(each.dropConstraintSpecification()));
-            }
+        if (null != ctx.addColumnSpecification()) {
+            result.addAll(((CollectionValue<AddColumnDefinitionSegment>) visit(ctx.addColumnSpecification())).getValue());
+        }
+        if (null != ctx.addConstraintSpecification() && null != ctx.addConstraintSpecification().tableConstraint()) {
+            result.add((AddConstraintDefinitionSegment) visit(ctx.addConstraintSpecification()));
+        }
+        if (null != ctx.validateConstraintSpecification()) {
+            result.add((ValidateConstraintDefinitionSegment) visit(ctx.validateConstraintSpecification()));
+        }
+        if (null != ctx.modifyColumnSpecification()) {
+            result.add((ModifyColumnDefinitionSegment) visit(ctx.modifyColumnSpecification()));
+        }
+        if (null != ctx.modifyConstraintSpecification()) {
+            result.add((ModifyConstraintDefinitionSegment) visit(ctx.modifyConstraintSpecification()));
+        }
+        if (null != ctx.dropColumnSpecification()) {
+            result.add((DropColumnDefinitionSegment) visit(ctx.dropColumnSpecification()));
+        }
+        if (null != ctx.dropConstraintSpecification()) {
+            result.add((DropConstraintDefinitionSegment) visit(ctx.dropConstraintSpecification()));
         }
         return result;
     }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/generic/OwnerAvailable.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/generic/OwnerAvailable.java
index 63630f95081..5ebc507c7e1 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/generic/OwnerAvailable.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/generic/OwnerAvailable.java
@@ -17,15 +17,13 @@
 
 package org.apache.shardingsphere.sql.parser.sql.common.segment.generic;
 
-import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
-
 import java.util.Optional;
 
 /**
  * Owner available.
  *
  */
-public interface OwnerAvailable extends SQLSegment {
+public interface OwnerAvailable {
     
     /**
      * Get owner.
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAlterSynonymStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAlterSynonymStatement.java
index d316fb382b5..82f9231dd4b 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAlterSynonymStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAlterSynonymStatement.java
@@ -18,11 +18,10 @@
 package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl;
 
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterSynonymStatement;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
 
 /**
  * Oracle alter synonym statement.
  */
-public final class OracleAlterSynonymStatement extends AlterSynonymStatement implements DDLStatement, OracleStatement {
+public final class OracleAlterSynonymStatement extends AlterSynonymStatement implements OracleStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDropDirectoryStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDropDirectoryStatement.java
index 623b667d0f4..f3cc4eff26d 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDropDirectoryStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDropDirectoryStatement.java
@@ -17,12 +17,11 @@
 
 package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl;
 
-import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropDirectoryStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
 
 /**
  * Oracle drop directory statement.
  */
-public final class OracleDropDirectoryStatement extends DropDirectoryStatement implements DDLStatement, OracleStatement {
+public final class OracleDropDirectoryStatement extends DropDirectoryStatement implements OracleStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerAlterTriggerStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerAlterTriggerStatement.java
index 96cf7319cf6..61f62f22812 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerAlterTriggerStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerAlterTriggerStatement.java
@@ -18,11 +18,10 @@
 package org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.ddl;
 
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTriggerStatement;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.SQLServerStatement;
 
 /**
  * SQLServer alter trigger statement.
  */
-public final class SQLServerAlterTriggerStatement extends AlterTriggerStatement implements DDLStatement, SQLServerStatement {
+public final class SQLServerAlterTriggerStatement extends AlterTriggerStatement implements SQLServerStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerCreateTriggerStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerCreateTriggerStatement.java
index 5b1d77e6409..fd459744c29 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerCreateTriggerStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerCreateTriggerStatement.java
@@ -18,11 +18,10 @@
 package org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.ddl;
 
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTriggerStatement;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.SQLServerStatement;
 
 /**
  * SQLServer create trigger statement.
  */
-public final class SQLServerCreateTriggerStatement extends CreateTriggerStatement implements DDLStatement, SQLServerStatement {
+public final class SQLServerCreateTriggerStatement extends CreateTriggerStatement implements SQLServerStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerDropTriggerStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerDropTriggerStatement.java
index 2409b7e5a07..c000e57256a 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerDropTriggerStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/sqlserver/ddl/SQLServerDropTriggerStatement.java
@@ -17,12 +17,11 @@
 
 package org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.ddl;
 
-import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTriggerStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.sqlserver.SQLServerStatement;
 
 /**
  * SQLServer drop trigger statement.
  */
-public final class SQLServerDropTriggerStatement extends DropTriggerStatement implements DDLStatement, SQLServerStatement {
+public final class SQLServerDropTriggerStatement extends DropTriggerStatement implements SQLServerStatement {
 }