You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/04/24 00:40:41 UTC

[shardingsphere] branch master updated: Add more code style rules for pmd (#25292)

This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 07da4f79a16 Add more code style rules for pmd (#25292)
07da4f79a16 is described below

commit 07da4f79a16af44e5a800e7950d05692390a42e9
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Mon Apr 24 08:40:34 2023 +0800

    Add more code style rules for pmd (#25292)
    
    * Add more code style rules for pmd
    
    * Add more code style rules for pmd
    
    * Add more code style rules for pmd
    
    * Add more code style rules for pmd
---
 .../mysql/constant/MySQLBinaryColumnType.java      |  2 +-
 .../mysql/constant/MySQLBinlogEventType.java       | 18 +++++++--------
 .../binlog/row/MySQLBinlogRowsEventPacket.java     |  6 ++---
 .../binlog/row/MySQLBinlogTableMapEventPacket.java |  2 +-
 .../value/MySQLBinlogProtocolValueFactory.java     |  2 +-
 .../column/value/string/MySQLJsonValueDecoder.java |  5 ++++-
 .../handshake/MySQLHandshakeResponse41Packet.java  |  6 ++---
 .../mysql/constant/MySQLBinlogEventTypeTest.java   |  2 +-
 .../string/MySQLJsonBinlogProtocolValueTest.java   |  2 +-
 .../codec/OpenGaussPacketCodecEngine.java          |  6 ++---
 .../codec/PostgreSQLPacketCodecEngine.java         |  6 ++---
 .../command/query/PostgreSQLNoDataPacket.java      |  2 +-
 .../bind/PostgreSQLBindCompletePacket.java         |  2 +-
 .../protocol/PostgreSQLBinaryTimestampUtils.java   |  8 +++----
 .../bind/protocol/PostgreSQLByteConverter.java     |  2 +-
 .../close/PostgreSQLCloseCompletePacket.java       |  2 +-
 .../parse/PostgreSQLParseCompletePacket.java       |  2 +-
 .../generic/PostgreSQLReadyForQueryPacket.java     |  2 +-
 .../FeaturedDistSQLStatementParserEngine.java      |  5 ++---
 ...OnDuplicateKeyUpdateValueParameterRewriter.java |  2 +-
 .../EncryptInsertOnUpdateTokenGenerator.java       |  2 +-
 .../EncryptPredicateRightValueTokenGenerator.java  |  8 +++----
 .../dml/AbstractShadowDMLStatementRouteEngine.java |  4 ++--
 .../dml/ShadowDeleteStatementRoutingEngine.java    |  2 +-
 .../dml/ShadowInsertStatementRoutingEngine.java    |  4 ++--
 .../dml/ShadowSelectStatementRoutingEngine.java    |  2 +-
 .../dml/ShadowUpdateStatementRoutingEngine.java    |  2 +-
 .../handler/query/ShowShadowRuleExecutor.java      |  5 +++--
 .../merge/dal/ShardingDALResultMerger.java         |  2 +-
 .../merge/dal/show/LogicTablesMergedResult.java    | 14 +++++++-----
 ...rdingDataSourceGroupBroadcastRoutingEngine.java |  8 +++----
 .../type/complex/ShardingComplexRoutingEngine.java |  2 +-
 .../type/unicast/ShardingUnicastRoutingEngine.java |  2 +-
 .../sharding/rule/BindingTableRule.java            | 11 ++++++++-
 .../shardingsphere/sharding/rule/TableRule.java    | 17 ++++++++++++--
 .../query/ShowShardingTableRuleExecutor.java       |  2 +-
 .../DropBroadcastTableRuleStatementUpdater.java    |  2 +-
 .../checker/ShardingRouteCacheableChecker.java     |  4 ++--
 .../engine/RowNumberPaginationContextEngine.java   |  4 ++--
 .../engine/TopPaginationContextEngine.java         |  2 +-
 .../sql/execute/result/query/QueryResult.java      |  9 +-------
 .../rewrite/engine/GenericSQLRewriteEngine.java    |  2 +-
 .../adapter/AbstractPreparedStatementAdapter.java  |  2 +-
 .../jdbc/core/connection/ConnectionManager.java    | 14 ++++++------
 .../connector/SocketSinkImporterConnector.java     |  2 +-
 .../pipeline/cdc/core/prepare/CDCJobPreparer.java  |  2 +-
 .../yaml/YamlPipelineReadConfiguration.java        |  2 +-
 .../core/api/impl/GovernanceRepositoryAPIImpl.java |  2 +-
 .../DataConsistencyCalculateAlgorithmChooser.java  | 16 +++++++------
 .../consistency/DataConsistencyCheckUtils.java     |  8 +++----
 ...StreamingDataConsistencyCalculateAlgorithm.java |  4 ++--
 ...DataMatchDataConsistencyCalculateAlgorithm.java |  5 ++++-
 .../pipeline/core/importer/DataSourceImporter.java |  2 +-
 .../core/ingest/dumper/InventoryDumper.java        |  6 ++---
 .../metadata/generator/PipelineDDLGenerator.java   |  2 +-
 .../core/prepare/PipelineJobPreparerUtils.java     |  2 +-
 .../mysql/ingest/MySQLIncrementalDumper.java       |  2 +-
 .../netty/MySQLBinlogEventPacketDecoder.java       | 12 +++++-----
 .../client/netty/MySQLCommandPacketDecoder.java    | 26 +++++++++++-----------
 .../ingest/client/netty/MySQLNegotiateHandler.java | 12 +++++-----
 .../mysql/ingest/MySQLIncrementalDumperTest.java   | 10 ---------
 .../postgresql/ingest/wal/WALEventConverter.java   |  2 +-
 .../ingest/wal/decode/TestDecodingPlugin.java      |  4 ++--
 .../ingest/wal/WALEventConverterTest.java          |  9 --------
 .../query/ShowMigrationCheckStatusExecutor.java    |  2 +-
 .../query/ShowMigrationJobStatusExecutor.java      |  2 +-
 .../ShowMigrationCheckStatusExecutorTest.java      | 21 -----------------
 .../query/ShowMigrationJobStatusExecutorTest.java  | 13 -----------
 .../api/impl/ConsistencyCheckJobAPI.java           |  2 +-
 .../migration/prepare/MigrationJobPreparer.java    |  2 +-
 .../metadata/factory/InternalMetaDataFactory.java  |  6 ++---
 .../single/route/SingleSQLRouter.java              |  6 ++---
 .../sqlfederation/optimizer/SQLOptimizeEngine.java |  6 ++---
 .../statement/select/SelectStatementConverter.java |  2 +-
 .../TranslatableProjectFilterRule.java             |  4 ++--
 .../translatable/TranslatableProjectRule.java      |  4 ++--
 .../rexnode/SQLOptimizerRexNodeVisitor.java        |  2 +-
 .../transaction/core/ResourceIDGenerator.java      |  2 +-
 .../handler/query/ShowTransactionRuleExecutor.java |  2 +-
 .../base/seata/at/SeataTransactionHolder.java      |  8 +++----
 .../manager/AtomikosXARecoverableResource.java     |  2 +-
 .../subscriber/StateChangedSubscriber.java         |  2 +-
 .../cluster/zookeeper/ZookeeperRepository.java     |  6 ++---
 .../proxy/backend/connector/BackendConnection.java | 14 ++++++------
 .../ConvertYamlConfigurationExecutor.java          |  2 +-
 .../handler/distsql/rul/sql/PreviewHandler.java    | 10 +++------
 .../handler/admin/MySQLAdminExecutorCreator.java   |  2 +-
 .../admin/executor/ShowProcessListExecutor.java    | 10 ++++-----
 .../org/apache/shardingsphere/proxy/Bootstrap.java |  2 +-
 .../proxy/arguments/BootstrapArguments.java        |  2 +-
 .../proxy/arguments/BootstrapArgumentsTest.java    | 10 ++++-----
 .../text/query/MySQLMultiStatementsHandler.java    |  4 ++--
 .../PostgreSQLBatchedStatementsExecutor.java       |  4 ++--
 .../mysql/visitor/format/MySQLFormatVisitor.java   |  6 ++---
 src/resources/pmd.xml                              | 17 ++++++++++++++
 .../test/it/optimize/SQLNodeConverterEngineIT.java |  2 +-
 .../sql/parser/internal/InternalSQLParserIT.java   |  2 +-
 .../internal/asserts/SQLCaseAssertContext.java     |  2 +-
 .../internal/asserts/segment/SQLSegmentAssert.java |  4 ++--
 .../segment/expression/ExpressionAssert.java       |  4 ++--
 .../asserts/segment/limit/LimitClauseAssert.java   |  2 +-
 .../segment/parameter/ParameterMarkerAssert.java   |  2 +-
 .../segment/projection/ProjectionAssert.java       |  4 ++--
 .../cases/sql/type/CaseTypedSQLBuilderFactory.java |  4 ++--
 .../internal/cases/sql/type/SQLCaseType.java       |  2 +-
 105 files changed, 263 insertions(+), 282 deletions(-)

diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java
index 5c32262b0cf..04cd61b8adf 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinaryColumnType.java
@@ -81,7 +81,7 @@ public enum MySQLBinaryColumnType implements BinaryColumnType {
      *
      * @see <a href="https://github.com/apache/shardingsphere/issues/4795"></a>
      */
-    MySQL_TYPE_JSON(0xf5),
+    MYSQL_TYPE_JSON(0xf5),
     
     MYSQL_TYPE_NEWDECIMAL(0xf6),
     
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java
index faff6dc8dd2..9621d85cc3f 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventType.java
@@ -74,17 +74,17 @@ public enum MySQLBinlogEventType {
     
     TABLE_MAP_EVENT(19),
     
-    WRITE_ROWS_EVENTv0(20),
+    WRITE_ROWS_EVENT_V0(20),
     
-    UPDATE_ROWS_EVENTv0(21),
+    UPDATE_ROWS_EVENT_V0(21),
     
-    DELETE_ROWS_EVENTv0(22),
+    DELETE_ROWS_EVENT_V0(22),
     
-    WRITE_ROWS_EVENTv1(23),
+    WRITE_ROWS_EVENT_V1(23),
     
-    UPDATE_ROWS_EVENTv1(24),
+    UPDATE_ROWS_EVENT_V1(24),
     
-    DELETE_ROWS_EVENTv1(25),
+    DELETE_ROWS_EVENT_V1(25),
     
     INCIDENT_EVENT(26),
     
@@ -94,11 +94,11 @@ public enum MySQLBinlogEventType {
     
     ROWS_QUERY_LOG_EVENT(29),
     
-    WRITE_ROWS_EVENTv2(30),
+    WRITE_ROWS_EVENT_V2(30),
     
-    UPDATE_ROWS_EVENTv2(31),
+    UPDATE_ROWS_EVENT_V2(31),
     
-    DELETE_ROWS_EVENTv2(32),
+    DELETE_ROWS_EVENT_V2(32),
     
     GTID_LOG_EVENT(33),
     
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java
index e548a7907bb..4eb7bdf3ffc 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogRowsEventPacket.java
@@ -70,8 +70,8 @@ public final class MySQLBinlogRowsEventPacket extends AbstractMySQLBinlogEventPa
     }
     
     private boolean isRowsEventVersion2(final int eventType) {
-        return MySQLBinlogEventType.WRITE_ROWS_EVENTv2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENTv2.getValue() == eventType
-                || MySQLBinlogEventType.DELETE_ROWS_EVENTv2.getValue() == eventType;
+        return MySQLBinlogEventType.WRITE_ROWS_EVENT_V2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENT_V2.getValue() == eventType
+                || MySQLBinlogEventType.DELETE_ROWS_EVENT_V2.getValue() == eventType;
     }
     
     private MySQLNullBitmap readUpdateColumnsPresentBitmap(final MySQLPacketPayload payload) {
@@ -79,7 +79,7 @@ public final class MySQLBinlogRowsEventPacket extends AbstractMySQLBinlogEventPa
     }
     
     private boolean isUpdateRowsEvent(final int eventType) {
-        return MySQLBinlogEventType.UPDATE_ROWS_EVENTv2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENTv1.getValue() == eventType;
+        return MySQLBinlogEventType.UPDATE_ROWS_EVENT_V2.getValue() == eventType || MySQLBinlogEventType.UPDATE_ROWS_EVENT_V1.getValue() == eventType;
     }
     
     /**
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java
index c367560f850..f383ce6e598 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/MySQLBinlogTableMapEventPacket.java
@@ -103,7 +103,7 @@ public final class MySQLBinlogTableMapEventPacket extends AbstractMySQLBinlogEve
             case MYSQL_TYPE_TIME2:
             case MYSQL_TYPE_TIMESTAMP2:
             case MYSQL_TYPE_DATETIME2:
-            case MySQL_TYPE_JSON:
+            case MYSQL_TYPE_JSON:
                 return payload.readInt1();
             default:
                 return 0;
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java
index c4ea7b80616..a2340ab8d9b 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/MySQLBinlogProtocolValueFactory.java
@@ -92,7 +92,7 @@ public final class MySQLBinlogProtocolValueFactory {
         BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_STRING, new MySQLStringBinlogProtocolValue());
         BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_VARCHAR, new MySQLVarcharBinlogProtocolValue());
         BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_VAR_STRING, new MySQLVarcharBinlogProtocolValue());
-        BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MySQL_TYPE_JSON, new MySQLJsonBinlogProtocolValue());
+        BINLOG_PROTOCOL_VALUES.put(MySQLBinaryColumnType.MYSQL_TYPE_JSON, new MySQLJsonBinlogProtocolValue());
     }
     
     private static void registerBlobTypeValue() {
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java
index 25cdeeb365b..c691ab8343c 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonValueDecoder.java
@@ -238,8 +238,11 @@ public final class MySQLJsonValueDecoder {
         out.append('"');
     }
     
+    /**
+     * Json value types.
+     */
     @NoArgsConstructor(access = AccessLevel.PRIVATE)
-    static final class JsonValueTypes {
+    public static final class JsonValueTypes {
         
         public static final byte SMALL_JSON_OBJECT = 0x00;
         
diff --git a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java
index 4b84b330293..917bb68b87a 100644
--- a/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java
+++ b/db-protocol/mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/handshake/MySQLHandshakeResponse41Packet.java
@@ -72,11 +72,11 @@ public final class MySQLHandshakeResponse41Packet implements MySQLPacket {
     }
     
     private String readDatabase(final MySQLPacketPayload payload) {
-        return 0 != (capabilityFlags & MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue()) ? payload.readStringNul() : null;
+        return 0 == (capabilityFlags & MySQLCapabilityFlag.CLIENT_CONNECT_WITH_DB.getValue()) ? null : payload.readStringNul();
     }
     
     private String readAuthPluginName(final MySQLPacketPayload payload) {
-        return 0 != (capabilityFlags & MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH.getValue()) ? payload.readStringNul() : null;
+        return 0 == (capabilityFlags & MySQLCapabilityFlag.CLIENT_PLUGIN_AUTH.getValue()) ? null : payload.readStringNul();
     }
     
     /**
@@ -92,7 +92,7 @@ public final class MySQLHandshakeResponse41Packet implements MySQLPacket {
     /**
      * Set authentication plugin name.
      *
-     * @param authenticationMethod MySQL authentication method
+     * @param authenticationMethod authentication method of MySQL
      */
     public void setAuthPluginName(final MySQLAuthenticationMethod authenticationMethod) {
         authPluginName = authenticationMethod.getMethodName();
diff --git a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java
index 93302907b7a..554eaab99a9 100644
--- a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java
+++ b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/constant/MySQLBinlogEventTypeTest.java
@@ -30,7 +30,7 @@ class MySQLBinlogEventTypeTest {
     
     @Test
     void assertGetValue() {
-        assertThat(MySQLBinlogEventType.WRITE_ROWS_EVENTv2.getValue(), is(0x1e));
+        assertThat(MySQLBinlogEventType.WRITE_ROWS_EVENT_V2.getValue(), is(0x1e));
     }
     
     @Test
diff --git a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java
index 1abff4d4399..4672a44c7f5 100644
--- a/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java
+++ b/db-protocol/mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/string/MySQLJsonBinlogProtocolValueTest.java
@@ -57,7 +57,7 @@ class MySQLJsonBinlogProtocolValueTest {
     
     @BeforeEach
     void setUp() {
-        columnDef = new MySQLBinlogColumnDef(MySQLBinaryColumnType.MySQL_TYPE_JSON);
+        columnDef = new MySQLBinlogColumnDef(MySQLBinaryColumnType.MYSQL_TYPE_JSON);
         when(payload.getByteBuf()).thenReturn(byteBuf);
         mockJsonValue();
     }
diff --git a/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java b/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java
index 0e5676cbce3..a614dc4bbcc 100644
--- a/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java
+++ b/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/codec/OpenGaussPacketCodecEngine.java
@@ -73,10 +73,10 @@ public final class OpenGaussPacketCodecEngine implements DatabasePacketCodecEngi
             CommandPacketType commandPacketType = OpenGaussCommandPacketType.valueOf(type);
             if (requireAggregation(commandPacketType)) {
                 pendingMessages.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
-            } else if (!pendingMessages.isEmpty()) {
-                handlePendingMessages(context, in, out, payloadLength);
-            } else {
+            } else if (pendingMessages.isEmpty()) {
                 out.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
+            } else {
+                handlePendingMessages(context, in, out, payloadLength);
             }
         }
     }
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java
index 8eb9de501b6..626a5e12667 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/codec/PostgreSQLPacketCodecEngine.java
@@ -71,10 +71,10 @@ public final class PostgreSQLPacketCodecEngine implements DatabasePacketCodecEng
             PostgreSQLCommandPacketType commandPacketType = PostgreSQLCommandPacketType.valueOf(type);
             if (requireAggregation(commandPacketType)) {
                 pendingMessages.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
-            } else if (!pendingMessages.isEmpty()) {
-                handlePendingMessages(context, in, out, payloadLength);
-            } else {
+            } else if (pendingMessages.isEmpty()) {
                 out.add(in.readRetainedSlice(MESSAGE_TYPE_LENGTH + payloadLength));
+            } else {
+                handlePendingMessages(context, in, out, payloadLength);
             }
         }
     }
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java
index 703fcd3b02e..95cabffd824 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/PostgreSQLNoDataPacket.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class PostgreSQLNoDataPacket implements PostgreSQLPacket {
     
-    private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.NO_DATA.getValue(), 0, 0, 0, 4};
+    private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.NO_DATA.getValue(), 0, 0, 0, 4};
     
     private static final PostgreSQLNoDataPacket INSTANCE = new PostgreSQLNoDataPacket();
     
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java
index 84f852fc322..48a23c9d1e5 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/PostgreSQLBindCompletePacket.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class PostgreSQLBindCompletePacket implements PostgreSQLPacket {
     
-    private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.BIND_COMPLETE.getValue(), 0, 0, 0, 4};
+    private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.BIND_COMPLETE.getValue(), 0, 0, 0, 4};
     
     private static final PostgreSQLBindCompletePacket INSTANCE = new PostgreSQLBindCompletePacket();
     
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java
index 5330039f756..fb08b6ae6d2 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLBinaryTimestampUtils.java
@@ -42,11 +42,11 @@ public final class PostgreSQLBinaryTimestampUtils {
      * @return PostgreSQL time
      */
     public static long toPostgreSQLTime(final Timestamp timestamp, final boolean withTimeZone) {
-        long millis = timestamp.getTime() - (timestamp.getNanos() / 1000000) + (!withTimeZone ? TimeZone.getDefault().getRawOffset() : 0);
-        long nanos = timestamp.getNanos() / 1000;
+        long millis = timestamp.getTime() - (timestamp.getNanos() / 1000000L) + (withTimeZone ? 0L : TimeZone.getDefault().getRawOffset());
+        long nanos = timestamp.getNanos() / 1000L;
         long pgSeconds = convertJavaEpochToPgEpoch(millis / 1000L);
-        if (nanos >= 1000000) {
-            nanos -= 1000000;
+        if (nanos >= 1000000L) {
+            nanos -= 1000000L;
             pgSeconds++;
         }
         return pgSeconds * 1000000 + nanos;
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java
index 7190ed7c216..f3fa8f475bf 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/bind/protocol/PostgreSQLByteConverter.java
@@ -122,7 +122,7 @@ public final class PostgreSQLByteConverter {
     }
     
     private static byte[] initBytesZeroCase(final int scale) {
-        final byte[] result = new byte[]{0, 0, -1, -1, 0, 0, 0, 0};
+        final byte[] result = {0, 0, -1, -1, 0, 0, 0, 0};
         int2(result, 6, Math.max(0, scale));
         return result;
     }
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java
index 58886100cfa..cfbd21a72c4 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/close/PostgreSQLCloseCompletePacket.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
  */
 public final class PostgreSQLCloseCompletePacket implements PostgreSQLPacket {
     
-    private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.CLOSE_COMPLETE.getValue(), 0, 0, 0, 4};
+    private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.CLOSE_COMPLETE.getValue(), 0, 0, 0, 4};
     
     private static final PostgreSQLCloseCompletePacket INSTANCE = new PostgreSQLCloseCompletePacket();
     
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java
index 188acc7db76..21a1b082b40 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/parse/PostgreSQLParseCompletePacket.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.db.protocol.postgresql.payload.PostgreSQLPacket
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class PostgreSQLParseCompletePacket implements PostgreSQLPacket {
     
-    private static final byte[] VALUE = new byte[]{(byte) PostgreSQLMessagePacketType.PARSE_COMPLETE.getValue(), 0, 0, 0, 4};
+    private static final byte[] VALUE = {(byte) PostgreSQLMessagePacketType.PARSE_COMPLETE.getValue(), 0, 0, 0, 4};
     
     private static final PostgreSQLParseCompletePacket INSTANCE = new PostgreSQLParseCompletePacket();
     
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java
index ce444df8867..f7908c2fb9d 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/generic/PostgreSQLReadyForQueryPacket.java
@@ -35,7 +35,7 @@ public final class PostgreSQLReadyForQueryPacket implements PostgreSQLPacket {
     
     public static final PostgreSQLReadyForQueryPacket TRANSACTION_FAILED = new PostgreSQLReadyForQueryPacket((byte) 'E');
     
-    private static final byte[] PREFIX = new byte[]{(byte) PostgreSQLMessagePacketType.READY_FOR_QUERY.getValue(), 0, 0, 0, 5};
+    private static final byte[] PREFIX = {(byte) PostgreSQLMessagePacketType.READY_FOR_QUERY.getValue(), 0, 0, 0, 5};
     
     private final byte status;
     
diff --git a/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java b/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java
index d1f65ce7e49..ef6c6a95523 100644
--- a/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java
+++ b/distsql/parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/featured/FeaturedDistSQLStatementParserEngine.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.distsql.parser.core.featured;
 import lombok.SneakyThrows;
 import org.antlr.v4.runtime.misc.ParseCancellationException;
 import org.antlr.v4.runtime.tree.ErrorNode;
-import org.antlr.v4.runtime.tree.ParseTreeVisitor;
 import org.apache.shardingsphere.distsql.parser.engine.spi.FeaturedDistSQLStatementParserFacade;
 import org.apache.shardingsphere.infra.util.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
@@ -60,10 +59,10 @@ public final class FeaturedDistSQLStatementParserEngine {
     @SneakyThrows(ReflectiveOperationException.class)
     @SuppressWarnings("rawtypes")
     private SQLStatement getSQLStatement(final String sql, final String featureType, final ParseASTNode parseASTNode) {
-        SQLVisitor visitor = TypedSPILoader.getService(FeaturedDistSQLStatementParserFacade.class, featureType).getVisitorClass().getDeclaredConstructor().newInstance();
         if (parseASTNode.getRootNode() instanceof ErrorNode) {
             throw new SQLParsingException(sql);
         }
-        return (SQLStatement) ((ParseTreeVisitor) visitor).visit(parseASTNode.getRootNode());
+        SQLVisitor visitor = TypedSPILoader.getService(FeaturedDistSQLStatementParserFacade.class, featureType).getVisitorClass().getDeclaredConstructor().newInstance();
+        return (SQLStatement) visitor.visit(parseASTNode.getRootNode());
     }
 }
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
index b21ed51605d..bf9211e5a16 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter.java
@@ -66,7 +66,6 @@ public final class EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
         String schemaName = insertStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(), databaseName));
         for (int index = 0; index < onDuplicateKeyUpdateValueContext.getValueExpressions().size(); index++) {
             String encryptLogicColumnName = onDuplicateKeyUpdateValueContext.getColumn(index).getIdentifier().getValue();
-            EncryptContext encryptContext = EncryptContextBuilder.build(databaseName, schemaName, tableName, encryptLogicColumnName);
             Optional<EncryptAlgorithm> encryptor = encryptRule.findEncryptor(tableName, encryptLogicColumnName);
             if (!encryptor.isPresent()) {
                 continue;
@@ -75,6 +74,7 @@ public final class EncryptInsertOnDuplicateKeyUpdateValueParameterRewriter imple
             if (plainColumnValue instanceof FunctionSegment && "VALUES".equalsIgnoreCase(((FunctionSegment) plainColumnValue).getFunctionName())) {
                 return;
             }
+            EncryptContext encryptContext = EncryptContextBuilder.build(databaseName, schemaName, tableName, encryptLogicColumnName);
             Object cipherColumnValue = encryptor.get().encrypt(plainColumnValue, encryptContext);
             groupedParamBuilder.getGenericParameterBuilder().addReplacedParameters(index, cipherColumnValue);
             Collection<Object> addedParams = new LinkedList<>();
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
index 1eb1767ab19..7f9b44a8b6a 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
@@ -65,7 +65,6 @@ public final class EncryptInsertOnUpdateTokenGenerator implements CollectionSQLT
     public Collection<EncryptAssignmentToken> generateSQLTokens(final InsertStatementContext insertStatementContext) {
         Collection<EncryptAssignmentToken> result = new LinkedList<>();
         InsertStatement insertStatement = insertStatementContext.getSqlStatement();
-        String tableName = insertStatement.getTable().getTableName().getIdentifier().getValue();
         Preconditions.checkState(InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).isPresent());
         OnDuplicateKeyColumnsSegment onDuplicateKeyColumnsSegment = InsertStatementHandler.getOnDuplicateKeyColumnsSegment(insertStatement).get();
         Collection<AssignmentSegment> onDuplicateKeyColumnsSegments = onDuplicateKeyColumnsSegment.getColumns();
@@ -73,6 +72,7 @@ public final class EncryptInsertOnUpdateTokenGenerator implements CollectionSQLT
             return result;
         }
         String schemaName = insertStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(insertStatementContext.getDatabaseType(), databaseName));
+        String tableName = insertStatement.getTable().getTableName().getIdentifier().getValue();
         for (AssignmentSegment each : onDuplicateKeyColumnsSegments) {
             boolean leftEncryptorPresent = encryptRule.findEncryptor(tableName, each.getColumns().get(0).getIdentifier().getValue()).isPresent();
             if (each.getValue() instanceof FunctionSegment && "VALUES".equalsIgnoreCase(((FunctionSegment) each.getValue()).getFunctionName())) {
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
index ce97178e824..f15cbb0ac45 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
@@ -35,6 +35,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
 import org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
 import org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.ParametersAware;
 import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
+import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.FunctionSegment;
 
 import java.util.Collection;
@@ -104,11 +105,8 @@ public final class EncryptPredicateRightValueTokenGenerator
     private List<Object> getEncryptedValues(final String schemaName, final EncryptCondition encryptCondition, final List<Object> originalValues) {
         if (encryptCondition instanceof EncryptBinaryCondition && "LIKE".equalsIgnoreCase(((EncryptBinaryCondition) encryptCondition).getOperator())) {
             Optional<String> likeQueryColumn = encryptRule.findLikeQueryColumn(encryptCondition.getTableName(), encryptCondition.getColumnName());
-            if (!likeQueryColumn.isPresent()) {
-                throw new UnsupportedEncryptSQLException("LIKE");
-            } else {
-                return encryptRule.getEncryptLikeQueryValues(databaseName, schemaName, encryptCondition.getTableName(), encryptCondition.getColumnName(), originalValues);
-            }
+            ShardingSpherePreconditions.checkState(likeQueryColumn.isPresent(), () -> new UnsupportedEncryptSQLException("LIKE"));
+            return encryptRule.getEncryptLikeQueryValues(databaseName, schemaName, encryptCondition.getTableName(), encryptCondition.getColumnName(), originalValues);
         }
         Optional<String> assistedQueryColumn = encryptRule.findAssistedQueryColumn(encryptCondition.getTableName(), encryptCondition.getColumnName());
         return assistedQueryColumn.isPresent()
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
index 9ae821f4e5e..319e0dabfc6 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
@@ -32,6 +32,7 @@ import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
@@ -117,14 +118,13 @@ public abstract class AbstractShadowDMLStatementRouteEngine implements ShadowRou
     }
     
     private Map<String, String> findByShadowColumn(final Collection<String> relatedShadowTables, final ShadowRule shadowRule, final ShadowOperationType shadowOperationType) {
-        Map<String, String> result = new LinkedHashMap<>();
         for (String each : relatedShadowTables) {
             Collection<String> relatedShadowColumnNames = shadowRule.getRelatedShadowColumnNames(shadowOperationType, each);
             if (!relatedShadowColumnNames.isEmpty() && isMatchAnyColumnShadowAlgorithms(each, relatedShadowColumnNames, shadowRule, shadowOperationType)) {
                 return shadowRule.getRelatedShadowDataSourceMappings(each);
             }
         }
-        return result;
+        return Collections.emptyMap();
     }
     
     private boolean isMatchAnyColumnShadowAlgorithms(final String shadowTable, final Collection<String> shadowColumnNames, final ShadowRule shadowRule, final ShadowOperationType shadowOperation) {
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
index 570ef65cfa0..196c7cf9adf 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
@@ -79,7 +79,7 @@ public final class ShadowDeleteStatementRoutingEngine extends AbstractShadowDMLS
     
     private final class ShadowColumnConditionIterator extends AbstractWhereSegmentShadowColumnConditionIterator {
         
-        ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
+        private ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
             super(shadowColumn, predicates.iterator());
         }
         
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
index 9c9492d74f3..75c5122d1d5 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
@@ -65,7 +65,7 @@ public final class ShadowInsertStatementRoutingEngine extends AbstractShadowDMLS
         return insertStatementContext.getInsertColumnNames();
     }
     
-    private class ShadowColumnConditionIterator implements Iterator<Optional<ShadowColumnCondition>> {
+    private final class ShadowColumnConditionIterator implements Iterator<Optional<ShadowColumnCondition>> {
         
         private int index;
         
@@ -75,7 +75,7 @@ public final class ShadowInsertStatementRoutingEngine extends AbstractShadowDMLS
         
         private final List<InsertValueContext> insertValueContexts;
         
-        ShadowColumnConditionIterator(final String shadowColumn, final Iterator<String> iterator, final List<InsertValueContext> insertValueContexts) {
+        private ShadowColumnConditionIterator(final String shadowColumn, final Iterator<String> iterator, final List<InsertValueContext> insertValueContexts) {
             index = 0;
             this.shadowColumn = shadowColumn;
             this.iterator = iterator;
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
index 0b660498707..e81455219f4 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
@@ -80,7 +80,7 @@ public final class ShadowSelectStatementRoutingEngine extends AbstractShadowDMLS
     
     private final class ShadowColumnConditionIterator extends AbstractWhereSegmentShadowColumnConditionIterator {
         
-        ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
+        private ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
             super(shadowColumn, predicates.iterator());
         }
         
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
index 6a40b687264..5dac45ed076 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
@@ -79,7 +79,7 @@ public final class ShadowUpdateStatementRoutingEngine extends AbstractShadowDMLS
     
     private final class ShadowColumnConditionIterator extends AbstractWhereSegmentShadowColumnConditionIterator {
         
-        ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
+        private ShadowColumnConditionIterator(final String shadowColumn, final Collection<ExpressionSegment> predicates) {
             super(shadowColumn, predicates.iterator());
         }
         
diff --git a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java
index f6a1e4e9b74..486c576a149 100644
--- a/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java
+++ b/features/shadow/distsql/handler/src/main/java/org/apache/shardingsphere/shadow/distsql/handler/query/ShowShadowRuleExecutor.java
@@ -68,8 +68,9 @@ public final class ShowShadowRuleExecutor implements RQLExecutor<ShowShadowRules
     
     private Iterator<Map<String, String>> buildDataSourceIterator(final ShadowRuleConfiguration ruleConfig, final ShowShadowRulesStatement sqlStatement) {
         Map<String, Map<String, ShadowTableConfiguration>> dataSourceTableMap = convertToDataSourceTableMap(ruleConfig.getTables());
-        Collection<ShadowDataSourceConfiguration> specifiedConfigs = !isSpecified(sqlStatement) ? ruleConfig.getDataSources()
-                : ruleConfig.getDataSources().stream().filter(each -> each.getName().equalsIgnoreCase(sqlStatement.getRuleName())).collect(Collectors.toList());
+        Collection<ShadowDataSourceConfiguration> specifiedConfigs = isSpecified(sqlStatement)
+                ? ruleConfig.getDataSources().stream().filter(each -> each.getName().equalsIgnoreCase(sqlStatement.getRuleName())).collect(Collectors.toList())
+                : ruleConfig.getDataSources();
         return specifiedConfigs.stream().map(each -> buildDataItem(each, dataSourceTableMap)).collect(Collectors.toList()).iterator();
     }
     
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
index 38d2651549a..934184880f6 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
@@ -59,10 +59,10 @@ public final class ShardingDALResultMerger implements ResultMerger {
     public MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext,
                               final ShardingSphereDatabase database, final ConnectionContext connectionContext) throws SQLException {
         SQLStatement dalStatement = sqlStatementContext.getSqlStatement();
-        String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), database.getName()));
         if (dalStatement instanceof MySQLShowDatabasesStatement) {
             return new LocalDataMergedResult(Collections.singleton(new LocalDataQueryResultRow(databaseName)));
         }
+        String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() -> DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), database.getName()));
         ShardingSphereSchema schema = database.getSchema(schemaName);
         if (dalStatement instanceof MySQLShowTablesStatement) {
             return new LogicTablesMergedResult(shardingRule, sqlStatementContext, schema, queryResults);
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java
index 5dfc4e25694..3ad7402ded9 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/show/LogicTablesMergedResult.java
@@ -53,16 +53,18 @@ public class LogicTablesMergedResult extends MemoryMergedResult<ShardingRule> {
                 MemoryQueryResultRow memoryResultSetRow = new MemoryQueryResultRow(each);
                 String actualTableName = memoryResultSetRow.getCell(1).toString();
                 Optional<TableRule> tableRule = shardingRule.findTableRuleByActualTable(actualTableName);
-                if (!tableRule.isPresent()) {
+                if (tableRule.isPresent()) {
+                    if (tableNames.add(tableRule.get().getLogicTable())) {
+                        String logicTableName = tableRule.get().getLogicTable();
+                        memoryResultSetRow.setCell(1, logicTableName);
+                        setCellValue(memoryResultSetRow, logicTableName, actualTableName, schema.getTable(logicTableName), shardingRule);
+                        result.add(memoryResultSetRow);
+                    }
+                } else {
                     if (shardingRule.getTableRules().isEmpty() || tableNames.add(actualTableName)) {
                         setCellValue(memoryResultSetRow, actualTableName, actualTableName, schema.getTable(actualTableName), shardingRule);
                         result.add(memoryResultSetRow);
                     }
-                } else if (tableNames.add(tableRule.get().getLogicTable())) {
-                    String logicTableName = tableRule.get().getLogicTable();
-                    memoryResultSetRow.setCell(1, logicTableName);
-                    setCellValue(memoryResultSetRow, logicTableName, actualTableName, schema.getTable(logicTableName), shardingRule);
-                    result.add(memoryResultSetRow);
                 }
             }
         }
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java
index 5902b10180f..c47a2e40eb5 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDataSourceGroupBroadcastRoutingEngine.java
@@ -66,19 +66,19 @@ public final class ShardingDataSourceGroupBroadcastRoutingEngine implements Shar
     
     private Collection<Set<String>> getCandidateDataSourceGroup(final Collection<Set<String>> dataSourceSetGroup, final Set<String> compareSet) {
         Collection<Set<String>> result = new LinkedList<>();
-        Set<String> intersections;
         if (dataSourceSetGroup.isEmpty()) {
             result.add(compareSet);
             return result;
         }
+        Set<String> intersections;
         boolean hasIntersection = false;
         for (Set<String> each : dataSourceSetGroup) {
             intersections = Sets.intersection(each, compareSet);
-            if (!intersections.isEmpty()) {
+            if (intersections.isEmpty()) {
+                result.add(each);
+            } else {
                 result.add(intersections);
                 hasIntersection = true;
-            } else {
-                result.add(each);
             }
         }
         if (!hasIntersection) {
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java
index d5f6b704ef8..88f452baabf 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/complex/ShardingComplexRoutingEngine.java
@@ -52,7 +52,6 @@ public final class ShardingComplexRoutingEngine implements ShardingRouteEngine {
     
     @Override
     public RouteContext route(final ShardingRule shardingRule) {
-        RouteContext result = new RouteContext();
         Collection<String> bindingTableNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
         Collection<RouteContext> routeContexts = new LinkedList<>();
         for (String each : logicTables) {
@@ -67,6 +66,7 @@ public final class ShardingComplexRoutingEngine implements ShardingRouteEngine {
         if (routeContexts.isEmpty()) {
             throw new ShardingTableRuleNotFoundException(logicTables);
         }
+        RouteContext result = new RouteContext();
         if (1 == routeContexts.size()) {
             RouteContext newRouteContext = routeContexts.iterator().next();
             result.getOriginalDataNodes().addAll(newRouteContext.getOriginalDataNodes());
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java
index 39924042dd8..615e38498a2 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngine.java
@@ -117,7 +117,7 @@ public final class ShardingUnicastRoutingEngine implements ShardingRouteEngine {
     
     private String getRandomDataSourceName(final Collection<String> dataSourceNames) {
         Collection<String> preferredDataSourceNames = connectionContext.getPreferredDataSourceNames();
-        List<String> availableDataSourceNames = new ArrayList<>(!preferredDataSourceNames.isEmpty() ? preferredDataSourceNames : dataSourceNames);
+        List<String> availableDataSourceNames = new ArrayList<>(preferredDataSourceNames.isEmpty() ? dataSourceNames : preferredDataSourceNames);
         return availableDataSourceNames.get(ThreadLocalRandom.current().nextInt(availableDataSourceNames.size()));
     }
 }
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java
index 5cd80321e70..d186a0bd0a2 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/BindingTableRule.java
@@ -81,7 +81,16 @@ public final class BindingTableRule {
         return tableRules.keySet();
     }
     
-    Map<String, String> getLogicAndActualTables(final String dataSource, final String logicTable, final String actualTable, final Collection<String> availableLogicBindingTables) {
+    /**
+     * Get logic and actual tables.
+     * 
+     * @param dataSource data source
+     * @param logicTable logic table
+     * @param actualTable actual table
+     * @param availableLogicBindingTables available logic binding tables
+     * @return logic and actual tables
+     */
+    public Map<String, String> getLogicAndActualTables(final String dataSource, final String logicTable, final String actualTable, final Collection<String> availableLogicBindingTables) {
         Map<String, String> result = new LinkedHashMap<>();
         for (String each : availableLogicBindingTables) {
             String availableLogicTable = each.toLowerCase();
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java
index 93362b3d753..4f8ca30d1f7 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/TableRule.java
@@ -233,11 +233,24 @@ public final class TableRule {
         return dataSourceToTablesMap.getOrDefault(targetDataSource, Collections.emptySet());
     }
     
-    int findActualTableIndex(final String dataSourceName, final String actualTableName) {
+    /**
+     * Find actual table index.
+     * 
+     * @param dataSourceName data source name
+     * @param actualTableName actual table name
+     * @return actual table index
+     */
+    public int findActualTableIndex(final String dataSourceName, final String actualTableName) {
         return dataNodeIndexMap.getOrDefault(new DataNode(dataSourceName, actualTableName), -1);
     }
     
-    boolean isExisted(final String actualTableName) {
+    /**
+     * Is existed.
+     * 
+     * @param actualTableName actual table name
+     * @return is existed or not
+     */
+    public boolean isExisted(final String actualTableName) {
         return actualTables.contains(actualTableName);
     }
     
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java
index 9964b12f5c7..6ae20c7d9ab 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableRuleExecutor.java
@@ -172,7 +172,7 @@ public final class ShowShardingTableRuleExecutor implements RQLExecutor<ShowShar
                 auditorTypes.add(shardingRuleConfig.getAuditors().get(each).getType());
             }
         }
-        return !auditorTypes.isEmpty() ? String.join(",", auditorTypes) : "";
+        return auditorTypes.isEmpty() ? "" : String.join(",", auditorTypes);
     }
     
     private String getAllowHintDisable(final ShardingAuditStrategyConfiguration shardingAuditStrategyConfig) {
diff --git a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
index 02b31690c80..34675e52679 100644
--- a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
+++ b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/update/DropBroadcastTableRuleStatementUpdater.java
@@ -35,10 +35,10 @@ public final class DropBroadcastTableRuleStatementUpdater implements RuleDefinit
     @Override
     public void checkSQLStatement(final ShardingSphereDatabase database,
                                   final DropBroadcastTableRuleStatement sqlStatement, final ShardingRuleConfiguration currentRuleConfig) {
-        String databaseName = database.getName();
         if (!isExistRuleConfig(currentRuleConfig) && sqlStatement.isIfExists()) {
             return;
         }
+        String databaseName = database.getName();
         checkCurrentRuleConfiguration(databaseName, currentRuleConfig);
         checkBroadcastTableRuleExist(databaseName, sqlStatement, currentRuleConfig);
     }
diff --git a/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java b/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
index 4bf437f52fd..f6daed849c0 100644
--- a/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
+++ b/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
@@ -212,7 +212,7 @@ public final class ShardingRouteCacheableChecker {
     
     @EqualsAndHashCode(of = "sql")
     @Getter
-    private static class Key {
+    private static final class Key {
         
         private final ShardingSphereDatabase database;
         
@@ -222,7 +222,7 @@ public final class ShardingRouteCacheableChecker {
         
         private final List<Object> parameters;
         
-        Key(final ShardingSphereDatabase database, final String sql, final SQLStatementContext<?> sqlStatementContext, final List<Object> params) {
+        private Key(final ShardingSphereDatabase database, final String sql, final SQLStatementContext<?> sqlStatementContext, final List<Object> params) {
             this.database = database;
             this.sql = sql;
             this.sqlStatementContext = sqlStatementContext;
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
index 6e9f31796a1..7bcc5888692 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/RowNumberPaginationContextEngine.java
@@ -58,7 +58,7 @@ public final class RowNumberPaginationContextEngine {
      * @return pagination context
      */
     public PaginationContext createPaginationContext(final Collection<ExpressionSegment> expressions, final ProjectionsContext projectionsContext, final List<Object> params) {
-        Optional<String> rowNumberAlias = isRowNumberAlias(projectionsContext);
+        Optional<String> rowNumberAlias = findRowNumberAlias(projectionsContext);
         if (!rowNumberAlias.isPresent()) {
             return new PaginationContext(null, null, params);
         }
@@ -79,7 +79,7 @@ public final class RowNumberPaginationContextEngine {
         return result;
     }
     
-    private Optional<String> isRowNumberAlias(final ProjectionsContext projectionsContext) {
+    private Optional<String> findRowNumberAlias(final ProjectionsContext projectionsContext) {
         for (String each : ROW_NUMBER_IDENTIFIERS) {
             Optional<String> result = projectionsContext.findAlias(each);
             if (result.isPresent()) {
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java
index 24b2e096fbb..486c7aef10b 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/engine/TopPaginationContextEngine.java
@@ -51,7 +51,7 @@ public final class TopPaginationContextEngine {
      */
     public PaginationContext createPaginationContext(final TopProjectionSegment topProjectionSegment, final Collection<ExpressionSegment> expressions, final List<Object> params) {
         Collection<AndPredicate> andPredicates = expressions.stream().flatMap(each -> ExpressionExtractUtils.getAndPredicates(each).stream()).collect(Collectors.toList());
-        Optional<ExpressionSegment> rowNumberPredicate = !expressions.isEmpty() ? getRowNumberPredicate(andPredicates, topProjectionSegment.getAlias()) : Optional.empty();
+        Optional<ExpressionSegment> rowNumberPredicate = expressions.isEmpty() ? Optional.empty() : getRowNumberPredicate(andPredicates, topProjectionSegment.getAlias());
         Optional<PaginationValueSegment> offset = rowNumberPredicate.isPresent() ? createOffsetWithRowNumber(rowNumberPredicate.get()) : Optional.empty();
         PaginationValueSegment rowCount = topProjectionSegment.getTop();
         return new PaginationContext(offset.orElse(null), rowCount, params);
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java
index 310bddfe534..99eabddaf13 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/QueryResult.java
@@ -26,7 +26,7 @@ import java.util.Calendar;
 /**
  * Query result.
  */
-public interface QueryResult extends ExecuteResult {
+public interface QueryResult extends ExecuteResult, AutoCloseable {
     
     /**
      * Iterate next data.
@@ -81,11 +81,4 @@ public interface QueryResult extends ExecuteResult {
      * @return query result meta data
      */
     QueryResultMetaData getMetaData();
-    
-    /**
-     * Close.
-     *
-     * @throws SQLException SQL exception
-     */
-    void close() throws SQLException;
 }
diff --git a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
index 5037c56a597..be87c0e6612 100644
--- a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
+++ b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/engine/GenericSQLRewriteEngine.java
@@ -48,7 +48,7 @@ public final class GenericSQLRewriteEngine {
     public GenericSQLRewriteResult rewrite(final SQLRewriteContext sqlRewriteContext) {
         String sql = translatorRule.translate(
                 new DefaultSQLBuilder(sqlRewriteContext).toSQL(), sqlRewriteContext.getSqlStatementContext().getSqlStatement(), protocolType,
-                !storageTypes.isEmpty() ? storageTypes.values().iterator().next() : protocolType);
+                storageTypes.isEmpty() ? protocolType : storageTypes.values().iterator().next());
         return new GenericSQLRewriteResult(new SQLRewriteUnit(sql, sqlRewriteContext.getParameterBuilder().getParameters()));
     }
 }
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java
index d168a20b29a..8624ea95998 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractPreparedStatementAdapter.java
@@ -297,7 +297,7 @@ public abstract class AbstractPreparedStatementAdapter extends AbstractUnsupport
     }
     
     @FunctionalInterface
-    interface PreparedStatementInvocationReplayer {
+    private interface PreparedStatementInvocationReplayer {
         
         void replayOn(PreparedStatement preparedStatement) throws SQLException;
     }
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
index f786ed91f7d..7e6b0b583df 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
@@ -303,7 +303,7 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
     @Override
     public List<Connection> getConnections(final String dataSourceName, final int connectionSize, final ConnectionMode connectionMode) throws SQLException {
         DataSource dataSource = dataSourceMap.get(dataSourceName);
-        Preconditions.checkState(null != dataSource, "Missing the data source name: '%s'", dataSourceName);
+        Preconditions.checkNotNull(dataSource, "Missing the data source name: '%s'", dataSourceName);
         Collection<Connection> connections;
         synchronized (cachedConnections) {
             connections = cachedConnections.get(dataSourceName);
@@ -311,7 +311,12 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
         List<Connection> result;
         if (connections.size() >= connectionSize) {
             result = new ArrayList<>(connections).subList(0, connectionSize);
-        } else if (!connections.isEmpty()) {
+        } else if (connections.isEmpty()) {
+            result = new ArrayList<>(createConnections(dataSourceName, dataSource, connectionSize, connectionMode));
+            synchronized (cachedConnections) {
+                cachedConnections.putAll(dataSourceName, result);
+            }
+        } else {
             result = new ArrayList<>(connectionSize);
             result.addAll(connections);
             List<Connection> newConnections = createConnections(dataSourceName, dataSource, connectionSize - connections.size(), connectionMode);
@@ -319,11 +324,6 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
             synchronized (cachedConnections) {
                 cachedConnections.putAll(dataSourceName, newConnections);
             }
-        } else {
-            result = new ArrayList<>(createConnections(dataSourceName, dataSource, connectionSize, connectionMode));
-            synchronized (cachedConnections) {
-                cachedConnections.putAll(dataSourceName, result);
-            }
         }
         return result;
     }
diff --git a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java
index 402dd123aa0..1fd48ecc6dc 100644
--- a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java
+++ b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/core/connector/SocketSinkImporterConnector.java
@@ -113,13 +113,13 @@ public final class SocketSinkImporterConnector implements ImporterConnector, Aut
             return;
         }
         if (ImporterType.INVENTORY == importerType || null == dataRecordComparator) {
-            Map<SocketSinkImporter, CDCAckPosition> importerDataRecordMap = new HashMap<>();
             int dataRecordCount = (int) recordList.stream().filter(each -> each instanceof DataRecord).count();
             Record lastRecord = recordList.get(recordList.size() - 1);
             if (lastRecord instanceof FinishedRecord && 0 == dataRecordCount) {
                 socketSinkImporter.ackWithLastDataRecord(new CDCAckPosition(lastRecord, 0));
                 return;
             }
+            Map<SocketSinkImporter, CDCAckPosition> importerDataRecordMap = new HashMap<>();
             importerDataRecordMap.put(socketSinkImporter, new CDCAckPosition(RecordUtils.getLastNormalRecord(recordList), dataRecordCount));
             writeImmediately(recordList, importerDataRecordMap);
         } else if (ImporterType.INCREMENTAL == importerType) {
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 b87f057d9ed..b5b5f52d2b1 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
@@ -78,7 +78,6 @@ public final class CDCJobPreparer {
     }
     
     private void initIncrementalTasks(final CDCJobItemContext jobItemContext) {
-        PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
         CDCTaskConfiguration taskConfig = jobItemContext.getTaskConfig();
         JobItemIncrementalTasksProgress initIncremental = null == jobItemContext.getInitProgress() ? null : jobItemContext.getInitProgress().getIncremental();
         try {
@@ -86,6 +85,7 @@ public final class CDCJobPreparer {
         } catch (final SQLException ex) {
             throw new PrepareJobWithGetBinlogPositionException(jobItemContext.getJobId(), ex);
         }
+        PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
         PipelineTableMetaDataLoader sourceMetaDataLoader = jobItemContext.getSourceMetaDataLoader();
         ExecuteEngine incrementalExecuteEngine = jobItemContext.getJobProcessContext().getIncrementalExecuteEngine();
         IncrementalTask incrementalTask = new IncrementalTask(taskConfig.getImporterConfig().getConcurrency(), taskConfig.getDumperConfig(), taskConfig.getImporterConfig(),
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java
index 3b2e23a8749..83f455c1fc4 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/process/yaml/YamlPipelineReadConfiguration.java
@@ -33,7 +33,7 @@ public final class YamlPipelineReadConfiguration implements YamlConfiguration {
     
     private static final Integer DEFAULT_BATCH_SIZE = 1000;
     
-    private static final Integer DEFAULT_SHARDING_SIZE = 1000_0000;
+    private static final Integer DEFAULT_SHARDING_SIZE = 10000000;
     
     private Integer workerThread;
     
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java
index 57085f57ac3..9f371b64e5c 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/GovernanceRepositoryAPIImpl.java
@@ -95,13 +95,13 @@ public final class GovernanceRepositoryAPIImpl implements GovernanceRepositoryAP
     @SuppressWarnings("unchecked")
     @Override
     public Map<String, DataConsistencyCheckResult> getCheckJobResult(final String parentJobId, final String checkJobId) {
-        Map<String, DataConsistencyCheckResult> result = new HashMap<>();
         String yamlCheckResultMapText = repository.getDirectly(PipelineMetaDataNode.getCheckJobResultPath(parentJobId, checkJobId));
         if (Strings.isNullOrEmpty(yamlCheckResultMapText)) {
             return Collections.emptyMap();
         }
         YamlDataConsistencyCheckResultSwapper swapper = new YamlDataConsistencyCheckResultSwapper();
         Map<String, String> yamlCheckResultMap = YamlEngine.unmarshal(yamlCheckResultMapText, Map.class, true);
+        Map<String, DataConsistencyCheckResult> result = new HashMap<>(yamlCheckResultMap.size(), 1);
         for (Entry<String, String> entry : yamlCheckResultMap.entrySet()) {
             result.put(entry.getKey(), swapper.swapToObject(entry.getValue()));
         }
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java
index 8a7a404ca6d..2a11790b089 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooser.java
@@ -38,14 +38,16 @@ public final class DataConsistencyCalculateAlgorithmChooser {
      * @return algorithm
      */
     public static DataConsistencyCalculateAlgorithm choose(final DatabaseType databaseType, final DatabaseType peerDatabaseType) {
-        String algorithmType;
+        return TypedSPILoader.getService(DataConsistencyCalculateAlgorithm.class, getAlgorithmType(databaseType, peerDatabaseType));
+    }
+    
+    private static String getAlgorithmType(final DatabaseType databaseType, final DatabaseType peerDatabaseType) {
         if (!databaseType.getType().equalsIgnoreCase(peerDatabaseType.getType())) {
-            algorithmType = "DATA_MATCH";
-        } else if (databaseType instanceof MySQLDatabaseType) {
-            algorithmType = "CRC32_MATCH";
-        } else {
-            algorithmType = "DATA_MATCH";
+            return "DATA_MATCH";
+        }
+        if (databaseType instanceof MySQLDatabaseType) {
+            return "CRC32_MATCH";
         }
-        return TypedSPILoader.getService(DataConsistencyCalculateAlgorithm.class, algorithmType);
+        return "DATA_MATCH";
     }
 }
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java
index de8aad97870..c79f4c3c73b 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCheckUtils.java
@@ -41,7 +41,10 @@ public final class DataConsistencyCheckUtils {
     public static boolean isBigDecimalEquals(final BigDecimal one, final BigDecimal another) {
         BigDecimal decimalOne;
         BigDecimal decimalTwo;
-        if (one.scale() != another.scale()) {
+        if (one.scale() == another.scale()) {
+            decimalOne = one;
+            decimalTwo = another;
+        } else {
             if (one.scale() > another.scale()) {
                 decimalOne = one;
                 decimalTwo = another.setScale(one.scale(), RoundingMode.UNNECESSARY);
@@ -49,9 +52,6 @@ public final class DataConsistencyCheckUtils {
                 decimalOne = one.setScale(another.scale(), RoundingMode.UNNECESSARY);
                 decimalTwo = another;
             }
-        } else {
-            decimalOne = one;
-            decimalTwo = another;
         }
         return decimalOne.equals(decimalTwo);
     }
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java
index 37797fc8a57..c890cbccdc7 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractStreamingDataConsistencyCalculateAlgorithm.java
@@ -51,7 +51,7 @@ public abstract class AbstractStreamingDataConsistencyCalculateAlgorithm extends
      * It's not thread-safe, it should be executed in only one thread at the same time.
      */
     @RequiredArgsConstructor
-    final class ResultIterable implements Iterable<DataConsistencyCalculatedResult> {
+    private final class ResultIterable implements Iterable<DataConsistencyCalculatedResult> {
         
         private final DataConsistencyCalculateParameter param;
         
@@ -62,7 +62,7 @@ public abstract class AbstractStreamingDataConsistencyCalculateAlgorithm extends
     }
     
     @RequiredArgsConstructor
-    final class ResultIterator implements Iterator<DataConsistencyCalculatedResult> {
+    private final class ResultIterator implements Iterator<DataConsistencyCalculatedResult> {
         
         private final DataConsistencyCalculateParameter param;
         
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index 0a69307c9d9..94222b1de1c 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -204,9 +204,12 @@ public final class DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
         }
     }
     
+    /**
+     * Calculated result.
+     */
     @RequiredArgsConstructor
     @Getter
-    static final class CalculatedResult implements DataConsistencyCalculatedResult {
+    public static final class CalculatedResult implements DataConsistencyCalculatedResult {
         
         @NonNull
         private final Object maxUniqueKeyValue;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
index 0c0e20b78a9..4cc79efb8dd 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
@@ -107,10 +107,10 @@ public final class DataSourceImporter extends AbstractLifecycleExecutor implemen
     
     private PipelineJobProgressUpdatedParameter flush(final DataSource dataSource, final List<Record> buffer) {
         List<DataRecord> dataRecords = buffer.stream().filter(each -> each instanceof DataRecord).map(each -> (DataRecord) each).collect(Collectors.toList());
-        int insertRecordNumber = 0;
         if (dataRecords.isEmpty()) {
             return new PipelineJobProgressUpdatedParameter(0);
         }
+        int insertRecordNumber = 0;
         for (DataRecord each : dataRecords) {
             if (IngestDataChangeType.INSERT.equals(each.getType())) {
                 insertRecordNumber++;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
index 548eac94a80..5f49977c691 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
@@ -206,9 +206,9 @@ public final class InventoryDumper extends AbstractLifecycleExecutor implements
     }
     
     private IngestPosition<?> newPosition(final ResultSet resultSet) throws SQLException {
-        return !dumperConfig.hasUniqueKey()
-                ? new PlaceholderPosition()
-                : PrimaryKeyPositionFactory.newInstance(resultSet.getObject(dumperConfig.getUniqueKeyColumns().get(0).getName()), ((PrimaryKeyPosition<?>) dumperConfig.getPosition()).getEndValue());
+        return dumperConfig.hasUniqueKey()
+                ? PrimaryKeyPositionFactory.newInstance(resultSet.getObject(dumperConfig.getUniqueKeyColumns().get(0).getName()), ((PrimaryKeyPosition<?>) dumperConfig.getPosition()).getEndValue())
+                : new PlaceholderPosition();
     }
     
     @Override
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
index 7c1a2204a36..c4723af696a 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
@@ -188,11 +188,11 @@ public final class PipelineDDLGenerator {
             if (sqlStatementContext.getTablesContext().getTables().isEmpty()) {
                 return sql;
             }
-            TableNameSegment tableNameSegment = sqlStatementContext.getTablesContext().getTables().iterator().next().getTableName();
             if (sqlStatementContext.getTablesContext().getSchemaName().isPresent()) {
                 return sql;
             }
             Map<SQLSegment, String> replaceMap = new TreeMap<>(Comparator.comparing(SQLSegment::getStartIndex));
+            TableNameSegment tableNameSegment = sqlStatementContext.getTablesContext().getTables().iterator().next().getTableName();
             replaceMap.put(tableNameSegment, prefix + tableNameSegment.getIdentifier().getValue());
             return doDecorateActualTable(replaceMap, sql);
         }
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
index de6c7e47eda..11e11634862 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
@@ -170,11 +170,11 @@ public final class PipelineJobPreparerUtils {
      * @param targetDataSources target data sources
      */
     public static void checkTargetDataSource(final String databaseType, final ImporterConfiguration importerConfig, final Collection<? extends DataSource> targetDataSources) {
-        DataSourceChecker dataSourceChecker = PipelineTypedSPILoader.findDatabaseTypedService(DataSourceChecker.class, databaseType).orElseGet(() -> new BasicDataSourceChecker(databaseType));
         if (null == targetDataSources || targetDataSources.isEmpty()) {
             log.info("target data source is empty, skip check");
             return;
         }
+        DataSourceChecker dataSourceChecker = PipelineTypedSPILoader.findDatabaseTypedService(DataSourceChecker.class, databaseType).orElseGet(() -> new BasicDataSourceChecker(databaseType));
         dataSourceChecker.checkConnection(targetDataSources);
         dataSourceChecker.checkTargetTable(targetDataSources, importerConfig.getTableNameSchemaNameMapping(), importerConfig.getLogicTableNames());
     }
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
index 7a511f419d8..e4b5886ea9a 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumper.java
@@ -151,7 +151,7 @@ public final class MySQLIncrementalDumper extends AbstractLifecycleExecutor impl
         }
     }
     
-    boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
+    private boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
         return null != columnNameSet && !columnNameSet.contains(new ColumnName(columnName));
     }
     
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java
index 0f62bb7e887..0f2d6d9cd04 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLBinlogEventPacketDecoder.java
@@ -94,14 +94,14 @@ public final class MySQLBinlogEventPacketDecoder extends ByteToMessageDecoder {
             case TABLE_MAP_EVENT:
                 decodeTableMapEvent(binlogEventHeader, payload);
                 return null;
-            case WRITE_ROWS_EVENTv1:
-            case WRITE_ROWS_EVENTv2:
+            case WRITE_ROWS_EVENT_V1:
+            case WRITE_ROWS_EVENT_V2:
                 return decodeWriteRowsEventV2(binlogEventHeader, payload);
-            case UPDATE_ROWS_EVENTv1:
-            case UPDATE_ROWS_EVENTv2:
+            case UPDATE_ROWS_EVENT_V1:
+            case UPDATE_ROWS_EVENT_V2:
                 return decodeUpdateRowsEventV2(binlogEventHeader, payload);
-            case DELETE_ROWS_EVENTv1:
-            case DELETE_ROWS_EVENTv2:
+            case DELETE_ROWS_EVENT_V1:
+            case DELETE_ROWS_EVENT_V2:
                 return decodeDeleteRowsEventV2(binlogEventHeader, payload);
             default:
                 PlaceholderEvent result = createPlaceholderEvent(binlogEventHeader);
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
index 7d6584d11c9..fec27a02dc0 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
@@ -38,10 +38,10 @@ import java.util.List;
 public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
     
     private enum States {
-        ResponsePacket, FieldPacket, RowDataPacket
+        RESPONSE_PACKET, FIELD_PACKET, ROW_DATA_PACKET
     }
     
-    private volatile States currentState = States.ResponsePacket;
+    private volatile States currentState = States.RESPONSE_PACKET;
     
     private volatile InternalResultSet internalResultSet;
     
@@ -52,11 +52,11 @@ public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
     }
     
     private void decodeCommandPacket(final MySQLPacketPayload payload, final List<Object> out) {
-        if (States.FieldPacket == currentState) {
+        if (States.FIELD_PACKET == currentState) {
             decodeFieldPacket(payload);
             return;
         }
-        if (States.RowDataPacket == currentState) {
+        if (States.ROW_DATA_PACKET == currentState) {
             decodeRowDataPacket(payload, out);
             return;
         }
@@ -64,22 +64,22 @@ public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
     }
     
     private void decodeFieldPacket(final MySQLPacketPayload payload) {
-        if (MySQLEofPacket.HEADER != (payload.getByteBuf().getByte(0) & 0xff)) {
-            internalResultSet.getFieldDescriptors().add(new MySQLColumnDefinition41Packet(payload));
-        } else {
+        if (MySQLEofPacket.HEADER == (payload.getByteBuf().getByte(0) & 0xff)) {
             new MySQLEofPacket(payload);
-            currentState = States.RowDataPacket;
+            currentState = States.ROW_DATA_PACKET;
+        } else {
+            internalResultSet.getFieldDescriptors().add(new MySQLColumnDefinition41Packet(payload));
         }
     }
     
     private void decodeRowDataPacket(final MySQLPacketPayload payload, final List<Object> out) {
-        if (MySQLEofPacket.HEADER != (payload.getByteBuf().getByte(0) & 0xff)) {
-            internalResultSet.getFieldValues().add(new MySQLTextResultSetRowPacket(payload, internalResultSet.getHeader().getColumnCount()));
-        } else {
+        if (MySQLEofPacket.HEADER == (payload.getByteBuf().getByte(0) & 0xff)) {
             new MySQLEofPacket(payload);
             out.add(internalResultSet);
-            currentState = States.ResponsePacket;
+            currentState = States.RESPONSE_PACKET;
             internalResultSet = null;
+        } else {
+            internalResultSet.getFieldValues().add(new MySQLTextResultSetRowPacket(payload, internalResultSet.getHeader().getColumnCount()));
         }
     }
     
@@ -93,7 +93,7 @@ public final class MySQLCommandPacketDecoder extends ByteToMessageDecoder {
                 break;
             default:
                 MySQLFieldCountPacket fieldCountPacket = new MySQLFieldCountPacket(payload);
-                currentState = States.FieldPacket;
+                currentState = States.FIELD_PACKET;
                 internalResultSet = new InternalResultSet(fieldCountPacket);
                 break;
         }
diff --git a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
index d657cd2bca1..048e707d4cc 100644
--- a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
+++ b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
@@ -113,16 +113,16 @@ public final class MySQLNegotiateHandler extends ChannelInboundHandlerAdapter {
     
     private void handleCachingSha2Auth(final ChannelHandlerContext ctx, final MySQLAuthMoreDataPacket authMoreData) {
         // how caching_sha2_password works: https://dev.mysql.com/doc/dev/mysql-server/8.0.11/page_caching_sha2_authentication_exchanges.html#sect_caching_sha2_info
-        if (!publicKeyRequested) {
-            if (PERFORM_FULL_AUTHENTICATION == authMoreData.getPluginData()[0]) {
-                publicKeyRequested = true;
-                ctx.channel().writeAndFlush(new MySQLAuthSwitchResponsePacket(new byte[]{REQUEST_PUBLIC_KEY}));
-            }
-        } else {
+        if (publicKeyRequested) {
             ctx.channel().writeAndFlush(new MySQLAuthSwitchResponsePacket(
                     PasswordEncryption.encryptWithRSAPublicKey(password, seed,
                             serverInfo.getServerVersion().greaterThanOrEqualTo(8, 0, 5) ? "RSA/ECB/OAEPWithSHA-1AndMGF1Padding" : "RSA/ECB/PKCS1Padding",
                             new String(authMoreData.getPluginData()))));
+        } else {
+            if (PERFORM_FULL_AUTHENTICATION == authMoreData.getPluginData()[0]) {
+                publicKeyRequested = true;
+                ctx.channel().writeAndFlush(new MySQLAuthSwitchResponsePacket(new byte[]{REQUEST_PUBLIC_KEY}));
+            }
         }
     }
     
diff --git a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java
index 4cad5b119c6..c5f7ac75567 100644
--- a/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java
+++ b/kernel/data-pipeline/dialect/mysql/src/test/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/MySQLIncrementalDumperTest.java
@@ -65,13 +65,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @ExtendWith(MockitoExtension.class)
 @MockitoSettings(strictness = Strictness.LENIENT)
@@ -135,13 +132,6 @@ class MySQLIncrementalDumperTest {
         dataSourceManager.close();
     }
     
-    @Test
-    void assertIsColumnUnneeded() {
-        assertFalse(incrementalDumper.isColumnUnneeded(null, "order_id"));
-        assertFalse(incrementalDumper.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "order_id"));
-        assertTrue(incrementalDumper.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "status"));
-    }
-    
     @Test
     void assertWriteRowsEventWithoutCustomColumns() throws ReflectiveOperationException {
         assertWriteRowsEvent0(null, 3);
diff --git a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java
index c9be2e60f2f..1efb6597cf9 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverter.java
@@ -143,7 +143,7 @@ public final class WALEventConverter {
         }
     }
     
-    boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
+    private boolean isColumnUnneeded(final Set<ColumnName> columnNameSet, final String columnName) {
         return null != columnNameSet && !columnNameSet.contains(new ColumnName(columnName));
     }
 }
diff --git a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java
index a5f0569a7f3..c2fc628fd54 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/decode/TestDecodingPlugin.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.decode;
 
 import com.google.common.base.Preconditions;
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.data.pipeline.core.ingest.IngestDataChangeType;
 import org.apache.shardingsphere.data.pipeline.core.ingest.exception.IngestException;
 import org.apache.shardingsphere.data.pipeline.postgresql.ingest.wal.event.AbstractRowEvent;
@@ -38,7 +38,7 @@ import java.util.List;
 /**
  * Test decoding plugin.
  */
-@AllArgsConstructor
+@RequiredArgsConstructor
 public final class TestDecodingPlugin implements DecodingPlugin {
     
     private final BaseTimestampUtils timestampUtils;
diff --git a/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java b/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java
index 0bf9971e6a5..76bb483b469 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/test/java/org/apache/shardingsphere/data/pipeline/postgresql/ingest/wal/WALEventConverterTest.java
@@ -62,12 +62,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -129,13 +127,6 @@ class WALEventConverterTest {
         return result;
     }
     
-    @Test
-    void assertIsColumnUnneeded() {
-        assertFalse(walEventConverter.isColumnUnneeded(null, "order_id"));
-        assertFalse(walEventConverter.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "order_id"));
-        assertTrue(walEventConverter.isColumnUnneeded(Stream.of("order_id", "user_id").map(ColumnName::new).collect(Collectors.toSet()), "status"));
-    }
-    
     @Test
     void assertWriteRowEventWithoutCustomColumns() throws ReflectiveOperationException {
         assertWriteRowEvent0(null, 3);
diff --git a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java
index bba29e519eb..34844fe5a62 100644
--- a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java
+++ b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutor.java
@@ -46,7 +46,7 @@ public final class ShowMigrationCheckStatusExecutor implements QueryableRALExecu
         return result;
     }
     
-    LocalDataQueryResultRow convert(final ConsistencyCheckJobItemInfo info) {
+    private LocalDataQueryResultRow convert(final ConsistencyCheckJobItemInfo info) {
         String checkResult = null == info.getCheckSuccess() ? "" : info.getCheckSuccess().toString();
         return new LocalDataQueryResultRow(Optional.ofNullable(info.getTableNames()).orElse(""), checkResult, Optional.ofNullable(info.getCheckFailedTableNames()).orElse(""),
                 String.valueOf(info.getFinishedPercentage()), info.getRemainingSeconds(),
diff --git a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java
index e6b5cd3640b..b0c20682de1 100644
--- a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java
+++ b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutor.java
@@ -45,7 +45,7 @@ public final class ShowMigrationJobStatusExecutor implements QueryableRALExecuto
         return jobItemInfos.stream().map(each -> generateResultRow(each, currentTimeMillis)).collect(Collectors.toList());
     }
     
-    LocalDataQueryResultRow generateResultRow(final InventoryIncrementalJobItemInfo jobItemInfo, final long currentTimeMillis) {
+    private LocalDataQueryResultRow generateResultRow(final InventoryIncrementalJobItemInfo jobItemInfo, final long currentTimeMillis) {
         InventoryIncrementalJobItemProgress jobItemProgress = jobItemInfo.getJobItemProgress();
         if (null == jobItemProgress) {
             return new LocalDataQueryResultRow(jobItemInfo.getShardingItem(), "", "", "", "", "", "", "", jobItemInfo.getErrorMessage());
diff --git a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java
index 077ea2c5559..64deb6be459 100644
--- a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java
+++ b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationCheckStatusExecutorTest.java
@@ -17,14 +17,10 @@
 
 package org.apache.shardingsphere.migration.distsql.handler.query;
 
-import org.apache.shardingsphere.data.pipeline.api.pojo.ConsistencyCheckJobItemInfo;
-import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.junit.jupiter.api.Test;
-import org.mockito.internal.configuration.plugins.Plugins;
 
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.List;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -48,21 +44,4 @@ class ShowMigrationCheckStatusExecutorTest {
         assertThat(iterator.next(), is("duration_seconds"));
         assertThat(iterator.next(), is("error_message"));
     }
-    
-    @Test
-    @SuppressWarnings("unchecked")
-    void assertConvert() throws ReflectiveOperationException {
-        ConsistencyCheckJobItemInfo jobItemInfo = new ConsistencyCheckJobItemInfo();
-        jobItemInfo.setTableNames("t_order");
-        jobItemInfo.setCheckSuccess(true);
-        jobItemInfo.setCheckFailedTableNames(null);
-        jobItemInfo.setFinishedPercentage(100);
-        jobItemInfo.setRemainingSeconds(0);
-        jobItemInfo.setCheckBeginTime("");
-        jobItemInfo.setCheckEndTime("");
-        jobItemInfo.setDurationSeconds(1);
-        LocalDataQueryResultRow row = executor.convert(jobItemInfo);
-        List<Object> actual = (List<Object>) Plugins.getMemberAccessor().get(LocalDataQueryResultRow.class.getDeclaredField("data"), row);
-        assertThat(actual.size(), is(executor.getColumnNames().size()));
-    }
 }
diff --git a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java
index 522c9bd8fe7..fdb12399260 100644
--- a/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java
+++ b/kernel/data-pipeline/distsql/handler/src/test/java/org/apache/shardingsphere/migration/distsql/handler/query/ShowMigrationJobStatusExecutorTest.java
@@ -17,14 +17,10 @@
 
 package org.apache.shardingsphere.migration.distsql.handler.query;
 
-import org.apache.shardingsphere.data.pipeline.api.pojo.InventoryIncrementalJobItemInfo;
-import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.junit.jupiter.api.Test;
-import org.mockito.internal.configuration.plugins.Plugins;
 
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.List;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -48,13 +44,4 @@ class ShowMigrationJobStatusExecutorTest {
         assertThat(iterator.next(), is("incremental_idle_seconds"));
         assertThat(iterator.next(), is("error_message"));
     }
-    
-    @Test
-    @SuppressWarnings("unchecked")
-    void assertGenerateResultRowWithNullJobItemProgress() throws ReflectiveOperationException {
-        InventoryIncrementalJobItemInfo jobItemInfo = new InventoryIncrementalJobItemInfo(0, "t_order", null, System.currentTimeMillis(), 0, null);
-        LocalDataQueryResultRow row = executor.generateResultRow(jobItemInfo, System.currentTimeMillis());
-        List<Object> actual = (List<Object>) Plugins.getMemberAccessor().get(LocalDataQueryResultRow.class.getDeclaredField("data"), row);
-        assertThat(actual.size(), is(executor.getColumnNames().size()));
-    }
 }
diff --git a/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java b/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java
index cd1c4de219a..7394c37c6aa 100644
--- a/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java
+++ b/kernel/data-pipeline/scenario/consistencycheck/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/api/impl/ConsistencyCheckJobAPI.java
@@ -283,12 +283,12 @@ public final class ConsistencyCheckJobAPI extends AbstractPipelineJobAPIImpl {
             return result;
         }
         ConsistencyCheckJobItemProgress jobItemProgress = progressOptional.get();
-        LocalDateTime checkBeginTime = new Timestamp(jobItemProgress.getCheckBeginTimeMillis()).toLocalDateTime();
         if (null == jobItemProgress.getRecordsCount() || null == jobItemProgress.getCheckedRecordsCount()) {
             result.setFinishedPercentage(0);
             result.setCheckSuccess(false);
             return result;
         }
+        LocalDateTime checkBeginTime = new Timestamp(jobItemProgress.getCheckBeginTimeMillis()).toLocalDateTime();
         long recordsCount = jobItemProgress.getRecordsCount();
         long checkedRecordsCount = Math.min(jobItemProgress.getCheckedRecordsCount(), recordsCount);
         if (JobStatus.FINISHED == jobItemProgress.getStatus()) {
diff --git a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java
index 91cf01f2cc5..f34fe078082 100644
--- a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java
+++ b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/prepare/MigrationJobPreparer.java
@@ -160,7 +160,6 @@ public final class MigrationJobPreparer {
     }
     
     private void initIncrementalTasks(final MigrationJobItemContext jobItemContext) {
-        PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
         MigrationTaskConfiguration taskConfig = jobItemContext.getTaskConfig();
         PipelineDataSourceManager dataSourceManager = (PipelineDataSourceManager) jobItemContext.getImporterConnector().getConnector();
         JobItemIncrementalTasksProgress initIncremental = null == jobItemContext.getInitProgress() ? null : jobItemContext.getInitProgress().getIncremental();
@@ -169,6 +168,7 @@ public final class MigrationJobPreparer {
         } catch (final SQLException ex) {
             throw new PrepareJobWithGetBinlogPositionException(jobItemContext.getJobId(), ex);
         }
+        PipelineChannelCreator pipelineChannelCreator = jobItemContext.getJobProcessContext().getPipelineChannelCreator();
         PipelineTableMetaDataLoader sourceMetaDataLoader = jobItemContext.getSourceMetaDataLoader();
         ExecuteEngine incrementalExecuteEngine = jobItemContext.getJobProcessContext().getIncrementalExecuteEngine();
         IncrementalTask incrementalTask = new IncrementalTask(taskConfig.getImporterConfig().getConcurrency(), taskConfig.getDumperConfig(), taskConfig.getImporterConfig(),
diff --git a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java
index 6ff54b93a79..69c949b3e02 100644
--- a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java
+++ b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/factory/InternalMetaDataFactory.java
@@ -73,10 +73,10 @@ public final class InternalMetaDataFactory {
         Map<String, ShardingSphereDatabase> result = new ConcurrentHashMap<>(databaseConfigMap.size(), 1);
         for (Entry<String, DatabaseConfiguration> entry : databaseConfigMap.entrySet()) {
             String databaseName = entry.getKey();
-            if (!entry.getValue().getDataSources().isEmpty()) {
-                result.put(databaseName.toLowerCase(), create(databaseName, persistService, entry.getValue(), props, instanceContext));
-            } else {
+            if (entry.getValue().getDataSources().isEmpty()) {
                 result.put(databaseName.toLowerCase(), ShardingSphereDatabase.create(databaseName, protocolType));
+            } else {
+                result.put(databaseName.toLowerCase(), create(databaseName, persistService, entry.getValue(), props, instanceContext));
             }
         }
         return result;
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
index c2b61c5ef38..0c3facf7188 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
+++ b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
@@ -115,9 +115,9 @@ public final class SingleSQLRouter implements SQLRouter<SingleRule> {
     private static void validateSameDataSource(final SQLStatementContext<?> sqlStatementContext, final SingleRule rule,
                                                final ConfigurationProperties props, final Collection<QualifiedTable> singleTableNames, final RouteContext routeContext) {
         String sqlFederationType = props.getValue(ConfigurationPropertyKey.SQL_FEDERATION_TYPE);
-        boolean allTablesInSameDataSource = !"NONE".equals(sqlFederationType)
-                ? sqlStatementContext instanceof SelectStatementContext || rule.isSingleTablesInSameDataSource(singleTableNames)
-                : rule.isAllTablesInSameDataSource(routeContext, singleTableNames);
+        boolean allTablesInSameDataSource = "NONE".equals(sqlFederationType)
+                ? rule.isAllTablesInSameDataSource(routeContext, singleTableNames)
+                : sqlStatementContext instanceof SelectStatementContext || rule.isSingleTablesInSameDataSource(singleTableNames);
         Preconditions.checkState(allTablesInSameDataSource, "All tables must be in the same datasource.");
     }
     
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java
index a59b374e2c9..6f151c7106d 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/SQLOptimizeEngine.java
@@ -61,10 +61,10 @@ public final class SQLOptimizeEngine {
     
     private RelNode optimizeWithCBO(final RelNode bestPlan, final SqlToRelConverter converter) {
         RelOptPlanner planner = converter.getCluster().getPlanner();
-        if (!bestPlan.getTraitSet().equals(converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE))) {
-            planner.setRoot(planner.changeTraits(bestPlan, converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE)));
-        } else {
+        if (bestPlan.getTraitSet().equals(converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE))) {
             planner.setRoot(bestPlan);
+        } else {
+            planner.setRoot(planner.changeTraits(bestPlan, converter.getCluster().traitSet().replace(EnumerableConvention.INSTANCE)));
         }
         return planner.findBestExp();
     }
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java
index b6246e6ff15..10253d018e2 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/statement/select/SelectStatementConverter.java
@@ -57,7 +57,7 @@ public final class SelectStatementConverter implements SQLStatementConverter<Sel
             SqlNode rowCount = limit.get().getRowCount().flatMap(optional -> new PaginationValueSQLConverter().convert(optional)).orElse(null);
             return new SqlOrderBy(SqlParserPos.ZERO, sqlCombine, orderBy, offset, rowCount);
         }
-        return !orderBy.isEmpty() ? new SqlOrderBy(SqlParserPos.ZERO, sqlCombine, orderBy, null, null) : sqlCombine;
+        return orderBy.isEmpty() ? sqlCombine : new SqlOrderBy(SqlParserPos.ZERO, sqlCombine, orderBy, null, null);
     }
     
     private static SqlSelect convertSelect(final SelectStatement selectStatement) {
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
index fc91294fcc0..c73c22c9fdb 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
@@ -51,12 +51,12 @@ public class TranslatableProjectFilterRule extends RelOptRule {
     @Override
     public void onMatch(final RelOptRuleCall call) {
         LogicalProject project = call.rel(0);
-        LogicalFilter filter = call.rel(1);
-        TranslatableTableScan scan = call.rel(2);
         int[] fields = getProjectFields(project.getProjects());
         if (0 == fields.length) {
             return;
         }
+        LogicalFilter filter = call.rel(1);
+        TranslatableTableScan scan = call.rel(2);
         call.transformTo(new TranslatableTableScan(scan.getCluster(), scan.getTable(), scan.getTranslatableTable(), Collections.singletonList(filter.getCondition()), fields));
     }
     
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
index cf83ff1dbe5..29a05a94a3e 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
@@ -43,12 +43,12 @@ public class TranslatableProjectRule extends RelOptRule {
     @Override
     public void onMatch(final RelOptRuleCall call) {
         LogicalProject project = call.rel(0);
-        TranslatableTableScan scan = call.rel(1);
         int[] fields = getProjectFields(project.getProjects());
-        List<RexNode> expressions = project.getProjects();
         if (0 == fields.length) {
             return;
         }
+        TranslatableTableScan scan = call.rel(1);
+        List<RexNode> expressions = project.getProjects();
         if (fields.length == expressions.size()) {
             call.transformTo(new TranslatableTableScan(scan.getCluster(), scan.getTable(), scan.getTranslatableTable(), scan.getFilters(), fields));
         } else {
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java
index debe9947912..4c31fb14702 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/rexnode/SQLOptimizerRexNodeVisitor.java
@@ -150,12 +150,12 @@ public final class SQLOptimizerRexNodeVisitor extends SQLOptimizerRexNodeBaseVis
     @Override
     public RexNode visitInputRef(final InputRefContext ctx) {
         Integer index = Integer.valueOf(ctx.INTEGER_().getText());
-        String sign = ctx.getParent().getStop().getText();
         if (null != columnMap.get(index)) {
             Class<?> dataType = getClass(columnMap.get(index));
             return rexBuilder.makeInputRef(typeFactory.createJavaType(dataType), index);
         }
         if (ctx.getParent() instanceof CastContext) {
+            String sign = ctx.getParent().getStop().getText();
             return makeCastInputRef(sign, index);
         }
         return rexBuilder.makeInputRef(typeFactory.createJavaType(Integer.class), index);
diff --git a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java
index 251f96151d3..bb65f0e6c54 100644
--- a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java
+++ b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/core/ResourceIDGenerator.java
@@ -46,7 +46,7 @@ public final class ResourceIDGenerator {
      *
      * @return next ID
      */
-    String nextId() {
+    public String nextId() {
         return String.format("%d-", count.incrementAndGet());
     }
 }
diff --git a/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java b/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java
index a2f69b9654a..5f6aa532d56 100644
--- a/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java
+++ b/kernel/transaction/distsql/handler/src/main/java/org/apache/shardingsphere/transaction/distsql/handler/query/ShowTransactionRuleExecutor.java
@@ -37,7 +37,7 @@ public final class ShowTransactionRuleExecutor implements MetaDataRequiredQuerya
     public Collection<LocalDataQueryResultRow> getRows(final ShardingSphereMetaData metaData, final ShowTransactionRuleStatement sqlStatement) {
         TransactionRule rule = metaData.getGlobalRuleMetaData().getSingleRule(TransactionRule.class);
         return Collections.singleton(new LocalDataQueryResultRow(rule.getDefaultType().name(), null != rule.getProviderType() ? rule.getProviderType() : "",
-                !rule.getProps().isEmpty() ? PropertiesConverter.convert(rule.getProps()) : ""));
+                rule.getProps().isEmpty() ? "" : PropertiesConverter.convert(rule.getProps())));
     }
     
     @Override
diff --git a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java
index b7a2bb780ab..350adfdf30c 100644
--- a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java
+++ b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataTransactionHolder.java
@@ -25,7 +25,7 @@ import lombok.NoArgsConstructor;
  * Seata transaction holder.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-final class SeataTransactionHolder {
+public final class SeataTransactionHolder {
     
     private static final ThreadLocal<GlobalTransaction> CONTEXT = new ThreadLocal<>();
     
@@ -34,7 +34,7 @@ final class SeataTransactionHolder {
      *
      * @param transaction global transaction context
      */
-    static void set(final GlobalTransaction transaction) {
+    public static void set(final GlobalTransaction transaction) {
         CONTEXT.set(transaction);
     }
     
@@ -43,14 +43,14 @@ final class SeataTransactionHolder {
      *
      * @return global transaction
      */
-    static GlobalTransaction get() {
+    public static GlobalTransaction get() {
         return CONTEXT.get();
     }
     
     /**
      * Clear global transaction.
      */
-    static void clear() {
+    public static void clear() {
         CONTEXT.remove();
     }
 }
diff --git a/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java b/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java
index 98460a625e5..df596f51c45 100644
--- a/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java
+++ b/kernel/transaction/type/xa/provider/atomikos/src/main/java/org/apache/shardingsphere/transaction/xa/atomikos/manager/AtomikosXARecoverableResource.java
@@ -30,7 +30,7 @@ public final class AtomikosXARecoverableResource extends JdbcTransactionalResour
     
     private final String resourceName;
     
-    AtomikosXARecoverableResource(final String serverName, final XADataSource xaDataSource) {
+    public AtomikosXARecoverableResource(final String serverName, final XADataSource xaDataSource) {
         super(serverName, xaDataSource);
         resourceName = serverName;
     }
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
index 44657c68c24..e3daeef7ef4 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
@@ -61,10 +61,10 @@ public final class StateChangedSubscriber {
      */
     @Subscribe
     public synchronized void renew(final StorageNodeChangedEvent event) {
-        QualifiedDatabase qualifiedDatabase = event.getQualifiedDatabase();
         if (!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getQualifiedDatabase().getDatabaseName())) {
             return;
         }
+        QualifiedDatabase qualifiedDatabase = event.getQualifiedDatabase();
         Optional<StaticDataSourceContainedRule> staticDataSourceRule = contextManager.getMetaDataContexts()
                 .getMetaData().getDatabase(qualifiedDatabase.getDatabaseName()).getRuleMetaData().findSingleRule(StaticDataSourceContainedRule.class);
         staticDataSourceRule.ifPresent(optional -> optional.updateStatus(new StorageNodeDataSourceChangedEvent(qualifiedDatabase, event.getDataSource())));
diff --git a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
index 72de244a289..38c735c2ba9 100644
--- a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
+++ b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
@@ -142,10 +142,10 @@ public final class ZookeeperRepository implements ClusterPersistRepository, Inst
     @Override
     public void persist(final String key, final String value) {
         try {
-            if (!isExisted(key)) {
-                client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath(key, value.getBytes(StandardCharsets.UTF_8));
-            } else {
+            if (isExisted(key)) {
                 update(key, value);
+            } else {
+                client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath(key, value.getBytes(StandardCharsets.UTF_8));
             }
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java
index e901734b74e..c06f50ea239 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/BackendConnection.java
@@ -79,7 +79,13 @@ public final class BackendConnection implements ExecutorJDBCConnectionManager {
         List<Connection> result;
         if (connections.size() >= connectionSize) {
             result = new ArrayList<>(connections).subList(0, connectionSize);
-        } else if (!connections.isEmpty()) {
+        } else if (connections.isEmpty()) {
+            result = createNewConnections(dataSourceName, connectionSize, connectionMode);
+            synchronized (cachedConnections) {
+                cachedConnections.putAll(connectionSession.getDatabaseName().toLowerCase() + "." + dataSourceName, result);
+            }
+            executeTransactionHooksAfterCreateConnections(result);
+        } else {
             result = new ArrayList<>(connectionSize);
             result.addAll(connections);
             List<Connection> newConnections = createNewConnections(dataSourceName, connectionSize - connections.size(), connectionMode);
@@ -87,12 +93,6 @@ public final class BackendConnection implements ExecutorJDBCConnectionManager {
             synchronized (cachedConnections) {
                 cachedConnections.putAll(connectionSession.getDatabaseName().toLowerCase() + "." + dataSourceName, newConnections);
             }
-        } else {
-            result = createNewConnections(dataSourceName, connectionSize, connectionMode);
-            synchronized (cachedConnections) {
-                cachedConnections.putAll(connectionSession.getDatabaseName().toLowerCase() + "." + dataSourceName, result);
-            }
-            executeTransactionHooksAfterCreateConnections(result);
         }
         return result;
     }
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
index 45e68256bcc..dc5f4f3a4a4 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
@@ -266,7 +266,7 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
     private String appendAutoTableStrategy(final ShardingAutoTableRuleConfiguration autoTableRuleConfig, final ShardingRuleConfiguration ruleConfig) {
         StringBuilder result = new StringBuilder();
         StandardShardingStrategyConfiguration strategyConfig = (StandardShardingStrategyConfiguration) autoTableRuleConfig.getShardingStrategy();
-        String shardingColumn = !Strings.isNullOrEmpty(strategyConfig.getShardingColumn()) ? strategyConfig.getShardingColumn() : ruleConfig.getDefaultShardingColumn();
+        String shardingColumn = Strings.isNullOrEmpty(strategyConfig.getShardingColumn()) ? ruleConfig.getDefaultShardingColumn() : strategyConfig.getShardingColumn();
         result.append(String.format(DistSQLScriptConstants.AUTO_TABLE_STRATEGY, shardingColumn, getAlgorithmType(ruleConfig.getShardingAlgorithms().get(strategyConfig.getShardingAlgorithmName()))));
         appendKeyGenerateStrategy(ruleConfig.getKeyGenerators(), autoTableRuleConfig.getKeyGenerateStrategy(), result);
         appendAuditStrategy(ruleConfig.getAuditors(), null != autoTableRuleConfig.getAuditStrategy() ? autoTableRuleConfig.getAuditStrategy() : ruleConfig.getDefaultAuditStrategy(), result);
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java
index 3d4ce15c959..df9e02ead42 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/PreviewHandler.java
@@ -168,13 +168,9 @@ public final class PreviewHandler extends SQLRULBackendHandler<PreviewStatement>
     }
     
     private String getDatabaseName() {
-        String result = !Strings.isNullOrEmpty(getConnectionSession().getDatabaseName()) ? getConnectionSession().getDatabaseName() : getConnectionSession().getDefaultDatabaseName();
-        if (Strings.isNullOrEmpty(result)) {
-            throw new NoDatabaseSelectedException();
-        }
-        if (!ProxyContext.getInstance().databaseExists(result)) {
-            throw new UnknownDatabaseException(result);
-        }
+        String result = Strings.isNullOrEmpty(getConnectionSession().getDatabaseName()) ? getConnectionSession().getDefaultDatabaseName() : getConnectionSession().getDatabaseName();
+        ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(result), NoDatabaseSelectedException::new);
+        ShardingSpherePreconditions.checkState(ProxyContext.getInstance().databaseExists(result), () -> new UnknownDatabaseException(result));
         return result;
     }
 }
diff --git a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
index e3e192c8e20..3ddf1f8f71d 100644
--- a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
@@ -155,10 +155,10 @@ public final class MySQLAdminExecutorCreator implements DatabaseAdminExecutorCre
     }
     
     private Optional<DatabaseAdminExecutor> mockExecutor(final String databaseName, final SelectStatement sqlStatement, final String sql) {
-        boolean isNotUseSchema = null == databaseName && null == sqlStatement.getFrom();
         if (hasNoResource()) {
             return Optional.of(new NoResourceShowExecutor(sqlStatement));
         }
+        boolean isNotUseSchema = null == databaseName && null == sqlStatement.getFrom();
         return isNotUseSchema ? Optional.of(new UnicastResourceShowExecutor(sqlStatement, sql)) : Optional.empty();
     }
     
diff --git a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
index 7fef015f041..eafb7d184c6 100644
--- a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutor.java
@@ -102,15 +102,13 @@ public final class ShowProcessListExecutor implements DatabaseAdminQueryExecutor
         rowValues.add(ExecuteProcessStatusEnum.SLEEP == processContext.getProcessStatus() ? "Sleep" : "Execute");
         rowValues.add(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - processContext.getStartTimeMillis()));
         String sql = null;
-        if (ExecuteProcessStatusEnum.SLEEP != processContext.getProcessStatus()) {
-            int processDoneCount = processContext.getUnitStatuses().stream()
-                    .map(each -> ExecuteProcessStatusEnum.DONE == each.getProcessStatus() ? 1 : 0)
-                    .reduce(0, Integer::sum);
+        if (ExecuteProcessStatusEnum.SLEEP == processContext.getProcessStatus()) {
+            rowValues.add("");
+        } else {
+            int processDoneCount = processContext.getUnitStatuses().stream().map(each -> ExecuteProcessStatusEnum.DONE == each.getProcessStatus() ? 1 : 0).reduce(0, Integer::sum);
             String statePrefix = "Executing ";
             rowValues.add(statePrefix + processDoneCount + "/" + processContext.getUnitStatuses().size());
             sql = processContext.getSql();
-        } else {
-            rowValues.add("");
         }
         if (null != sql && sql.length() > 100) {
             sql = sql.substring(0, 100);
diff --git a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
index c57238decce..eb4edabe538 100644
--- a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
+++ b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java
@@ -51,7 +51,7 @@ public final class Bootstrap {
         YamlProxyConfiguration yamlConfig = ProxyConfigurationLoader.load(bootstrapArgs.getConfigurationPath());
         int port = bootstrapArgs.getPort().orElseGet(() -> new ConfigurationProperties(yamlConfig.getServerConfiguration().getProps()).getValue(ConfigurationPropertyKey.PROXY_DEFAULT_PORT));
         List<String> addresses = bootstrapArgs.getAddresses();
-        new BootstrapInitializer().init(yamlConfig, port, bootstrapArgs.getForce());
+        new BootstrapInitializer().init(yamlConfig, port, bootstrapArgs.isForce());
         Optional.ofNullable((Integer) yamlConfig.getServerConfiguration().getProps().get(ConfigurationPropertyKey.CDC_SERVER_PORT.getKey()))
                 .ifPresent(cdcPort -> new CDCServer(addresses, cdcPort).start());
         ShardingSphereProxy shardingSphereProxy = new ShardingSphereProxy();
diff --git a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
index ec8fcacca4e..8167524dcba 100644
--- a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
+++ b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
@@ -103,7 +103,7 @@ public final class BootstrapArguments {
      *
      * @return force parameter
      */
-    public boolean getForce() {
+    public boolean isForce() {
         return args.length >= 4 && parseForceParameter(args[3]);
     }
     
diff --git a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java
index 289146ee4f3..b98088aea34 100644
--- a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java
+++ b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/arguments/BootstrapArgumentsTest.java
@@ -108,11 +108,11 @@ class BootstrapArgumentsTest {
     
     @Test
     void assertGetForce() {
-        assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1"}).getForce());
-        assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "false"}).getForce());
-        assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true "}).getForce());
-        assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true"}).getForce());
-        assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "TrUe"}).getForce());
+        assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1"}).isForce());
+        assertFalse(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "false"}).isForce());
+        assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true "}).isForce());
+        assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "true"}).isForce());
+        assertTrue(new BootstrapArguments(new String[]{"3306", "test_conf", "127.0.0.1", "TrUe"}).isForce());
     }
     
     @Test
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
index 3173e26f956..2232dee8c66 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
@@ -181,9 +181,9 @@ public final class MySQLMultiStatementsHandler implements ProxyBackendHandler {
         return new UpdateResponseHeader(sqlStatementSample, Collections.singletonList(new UpdateResult(updated, 0L)));
     }
     
-    private static class BatchedJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
+    private static final class BatchedJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
         
-        BatchedJDBCExecutorCallback(final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
+        private BatchedJDBCExecutorCallback(final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
             super(TypedSPILoader.getService(DatabaseType.class, "MySQL"), storageTypes, sqlStatement, isExceptionThrown);
         }
         
diff --git a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
index 1511d5e0fb0..4ad079bb864 100644
--- a/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
+++ b/proxy/frontend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
@@ -192,9 +192,9 @@ public final class PostgreSQLBatchedStatementsExecutor {
         return result;
     }
     
-    private static class BatchedStatementsJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
+    private static final class BatchedStatementsJDBCExecutorCallback extends JDBCExecutorCallback<int[]> {
         
-        BatchedStatementsJDBCExecutorCallback(final DatabaseType protocolType, final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
+        private BatchedStatementsJDBCExecutorCallback(final DatabaseType protocolType, final Map<String, DatabaseType> storageTypes, final SQLStatement sqlStatement, final boolean isExceptionThrown) {
             super(protocolType, storageTypes, sqlStatement, isExceptionThrown);
         }
         
diff --git a/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java b/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
index 6cf52266c05..408b2d6f55d 100644
--- a/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
+++ b/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
@@ -440,14 +440,14 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
         int childCount = ctx.getChildCount();
         for (int i = 0; i < childCount; i++) {
             ParseTree child = ctx.getChild(i);
-            if (i != 0) {
+            if (i == 0) {
+                child.accept(this);
+            } else {
                 if (child instanceof TerminalNode) {
                     formatPrintln(",");
                 } else {
                     child.accept(this);
                 }
-            } else {
-                child.accept(this);
             }
         }
         return formattedSQL.toString();
diff --git a/src/resources/pmd.xml b/src/resources/pmd.xml
index 1e9b5336112..61d67827204 100644
--- a/src/resources/pmd.xml
+++ b/src/resources/pmd.xml
@@ -59,6 +59,23 @@
     <rule ref="category/java/bestpractices.xml/UseTryWithResources" />
     <rule ref="category/java/bestpractices.xml/WhileLoopWithLiteralBoolean" />
     
+    <rule ref="category/java/codestyle.xml/AvoidUsingNativeCode" />
+    <rule ref="category/java/codestyle.xml/BooleanGetMethodName" />
+    <rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier" />
+    <rule ref="category/java/codestyle.xml/ConfusingTernary">
+        <properties>
+            <property name="ignoreElseIf" value="false" />
+        </properties>
+    </rule>
+    <rule ref="category/java/codestyle.xml/EmptyMethodInAbstractClassShouldBeAbstract" />
+    <rule ref="category/java/codestyle.xml/FieldDeclarationsShouldBeAtStartOfClass" />
+    <rule ref="category/java/codestyle.xml/FieldNamingConventions" />
+    <rule ref="category/java/codestyle.xml/LinguisticNaming" />
+    <rule ref="category/java/codestyle.xml/PrematureDeclaration" />
+    <rule ref="category/java/codestyle.xml/UnnecessaryCast" />
+    <rule ref="category/java/codestyle.xml/UseDiamondOperator" />
+    <rule ref="category/java/codestyle.xml/UseShortArrayInitializer" />
+    
     <rule ref="category/java/documentation.xml/CommentSize">
         <properties>
             <property name="maxLines" value="40" />
diff --git a/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java b/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
index a0655fdf5b1..ab897f67eb5 100644
--- a/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
+++ b/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
@@ -223,7 +223,7 @@ class SQLNodeConverterEngineIT {
         }
         
         private boolean isPlaceholderWithoutParameter(final InternalSQLParserTestParameter testParam) {
-            return SQLCaseType.Placeholder == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
+            return SQLCaseType.PLACEHOLDER == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
         }
         
         private boolean isSupportedSQLCase(final InternalSQLParserTestParameter testParam) {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
index ba6befe76a7..57d90ee3672 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
@@ -84,7 +84,7 @@ public abstract class InternalSQLParserIT {
         }
         
         private boolean isPlaceholderWithoutParameter(final InternalSQLParserTestParameter testParam) {
-            return SQLCaseType.Placeholder == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
+            return SQLCaseType.PLACEHOLDER == testParam.getSqlCaseType() && SQL_PARSER_TEST_CASES.get(testParam.getSqlCaseId()).getParameters().isEmpty();
         }
     }
 }
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
index 55f2c5fa275..e94003373e8 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
@@ -60,7 +60,7 @@ public final class SQLCaseAssertContext {
     
     private void appendSQL(final StringBuilder builder) {
         builder.append("SQL         : ");
-        if (SQLCaseType.Placeholder == caseType) {
+        if (SQLCaseType.PLACEHOLDER == caseType) {
             builder.append(sql);
             builder.append(System.lineSeparator());
             builder.append("SQL Params  : ");
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
index 72409787ea1..c5b7d6634be 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
@@ -46,12 +46,12 @@ public final class SQLSegmentAssert {
     }
     
     private static void assertStartIndex(final SQLCaseAssertContext assertContext, final SQLSegment actual, final ExpectedSQLSegment expected) {
-        int expectedStartIndex = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralStartIndex() ? expected.getLiteralStartIndex() : expected.getStartIndex();
+        int expectedStartIndex = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralStartIndex() ? expected.getLiteralStartIndex() : expected.getStartIndex();
         assertThat(assertContext.getText(String.format("`%s`'s start index assertion error: ", actual.getClass().getSimpleName())), actual.getStartIndex(), is(expectedStartIndex));
     }
     
     private static void assertStopIndex(final SQLCaseAssertContext assertContext, final SQLSegment actual, final ExpectedSQLSegment expected) {
-        int expectedStopIndex = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralStopIndex() ? expected.getLiteralStopIndex() : expected.getStopIndex();
+        int expectedStopIndex = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralStopIndex() ? expected.getLiteralStopIndex() : expected.getStopIndex();
         assertThat(assertContext.getText(String.format("`%s`'s stop index assertion error: ", actual.getClass().getSimpleName())), actual.getStopIndex(), is(expectedStopIndex));
     }
 }
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
index 43ebb719ea9..a956b7918da 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
@@ -128,7 +128,7 @@ public final class ExpressionAssert {
             assertNull(actual, assertContext.getText("Actual common expression should not exist."));
         } else {
             assertNotNull(actual, assertContext.getText("Actual common expression should exist."));
-            String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
+            String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
             assertThat(assertContext.getText("Common expression text assertion error: "), actual.getText(), is(expectedText));
             SQLSegmentAssert.assertIs(assertContext, actual, expected);
         }
@@ -300,7 +300,7 @@ public final class ExpressionAssert {
     public static void assertFunction(final SQLCaseAssertContext assertContext, final FunctionSegment actual, final ExpectedFunction expected) {
         SQLSegmentAssert.assertIs(assertContext, actual, expected);
         assertThat(assertContext.getText("Function method name assertion error: "), actual.getFunctionName(), is(expected.getFunctionName()));
-        String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText()
+        String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText()
                 ? expected.getLiteralText()
                 : expected.getText();
         assertThat(assertContext.getText("Function text name assertion error: "), actual.getText(), is(expectedText));
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
index 156f3b80372..5efa97e96d2 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
@@ -70,7 +70,7 @@ public final class LimitClauseAssert {
             assertNull(expected, assertContext.getText("Row count should not exist."));
             return;
         }
-        if (SQLCaseType.Placeholder == assertContext.getCaseType()) {
+        if (SQLCaseType.PLACEHOLDER == assertContext.getCaseType()) {
             assertThat(assertContext.getText("Row count index assertion error: "),
                     ((ParameterMarkerPaginationValueSegment) actual).getParameterIndex(), is(expected.getParameterIndex()));
         } else {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
index 9477a1dc153..85c9091e989 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
@@ -39,7 +39,7 @@ public final class ParameterMarkerAssert {
      * @param expected expected parameter markers count
      */
     public static void assertCount(final SQLCaseAssertContext assertContext, final int actual, final int expected) {
-        if (SQLCaseType.Placeholder == assertContext.getCaseType()) {
+        if (SQLCaseType.PLACEHOLDER == assertContext.getCaseType()) {
             assertThat(assertContext.getText("Parameter markers count assertion error: "), actual, is(expected));
         } else {
             assertThat(assertContext.getText("Parameter markers count assertion error: "), actual, is(0));
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
index 47e4592c630..135bf2821fa 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
@@ -115,7 +115,7 @@ public final class ProjectionAssert {
     
     private static void assertSubqueryProjection(final SQLCaseAssertContext assertContext, final SubqueryProjectionSegment actual, final ExpectedSubqueryProjection expected) {
         assertThat(assertContext.getText("Subquery projection alias assertion error: "), actual.getAlias().orElse(null), is(expected.getAlias()));
-        String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
+        String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText() ? expected.getLiteralText() : expected.getText();
         assertThat(assertContext.getText("Subquery projection text assertion error: "), actual.getText(), is(expectedText));
         SelectStatementAssert.assertIs(assertContext, actual.getSubquery().getSelect(), expected.getSubquery().getSelectTestCases());
     }
@@ -154,7 +154,7 @@ public final class ProjectionAssert {
     private static void assertExpressionProjection(final SQLCaseAssertContext assertContext, final ExpressionProjectionSegment actual, final ExpectedExpressionProjection expected) {
         assertThat(assertContext.getText("Expression projection alias assertion error: "),
                 actual.getAlias().orElse(null), is(expected.getAlias()));
-        String expectedText = SQLCaseType.Literal == assertContext.getCaseType() && null != expected.getLiteralText()
+        String expectedText = SQLCaseType.LITERAL == assertContext.getCaseType() && null != expected.getLiteralText()
                 ? expected.getLiteralText()
                 : expected.getText();
         assertThat(assertContext.getText("Expression projection text assertion error: "),
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
index 52b43aed26a..3810d3ac49e 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
@@ -37,9 +37,9 @@ public final class CaseTypedSQLBuilderFactory {
      */
     public static CaseTypedSQLBuilder newInstance(final SQLCaseType caseType) {
         switch (caseType) {
-            case Literal:
+            case LITERAL:
                 return new LiteralSQLBuilder();
-            case Placeholder:
+            case PLACEHOLDER:
                 return new PlaceholderSQLBuilder();
             default:
                 throw new UnsupportedOperationException(caseType.name());
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java
index 885a77ece2f..a4403f38248 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/sql/type/SQLCaseType.java
@@ -22,5 +22,5 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.cases.sql.type;
  */
 public enum SQLCaseType {
     
-    Literal, Placeholder
+    LITERAL, PLACEHOLDER
 }