You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by yx...@apache.org on 2022/09/29 15:47:34 UTC

[shardingsphere] branch master updated: Use null == xxx instead of null != xxx for first priority (#21274)

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

yx9o 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 38279b1f441 Use null == xxx instead of null != xxx for first priority (#21274)
38279b1f441 is described below

commit 38279b1f44120ab09a3370b29dda4e0e78dd7f1c
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Sep 29 23:47:23 2022 +0800

    Use null == xxx instead of null != xxx for first priority (#21274)
---
 .../agent/core/plugin/AgentPluginLoader.java       | 10 ++--
 .../statement/ddl/CreateIndexStatementContext.java |  8 +--
 .../database/schema/util/SchemaMetaDataUtil.java   |  6 +-
 ...gSphereDataSourceForReadwriteSplittingTest.java |  5 +-
 ...tractShardingSphereDataSourceForShadowTest.java |  5 +-
 ...actShardingSphereDataSourceForShardingTest.java |  5 +-
 .../ConsistencyCheckJobAPIImpl.java                |  3 +-
 .../ddlgenerator/PostgresIndexSQLGenerator.java    | 16 +++---
 .../segment/from/impl/JoinTableConverter.java      | 16 +++---
 .../translatable/ParseRexNodeVisitorImpl.java      |  6 +-
 .../translatable/TranslatableTableScan.java        | 30 +++++-----
 .../core/TrafficDistSQLStatementVisitor.java       |  4 +-
 .../core/TransactionDistSQLStatementVisitor.java   |  8 +--
 .../handler/transaction/TransactionSetHandler.java |  8 +--
 .../header/query/impl/MySQLQueryHeaderBuilder.java |  8 +--
 .../proxy/backend/session/ConnectionSession.java   |  5 +-
 .../impl/MySQLDDLStatementSQLVisitor.java          |  9 +--
 .../impl/OpenGaussDCLStatementSQLVisitor.java      |  9 +--
 .../impl/OracleDMLStatementSQLVisitor.java         |  8 +--
 .../statement/impl/OracleStatementSQLVisitor.java  | 52 ++++++++---------
 .../impl/PostgreSQLDCLStatementSQLVisitor.java     | 11 ++--
 .../impl/PostgreSQLStatementSQLVisitor.java        | 19 +++----
 .../impl/SQL92DMLStatementSQLVisitor.java          |  7 +--
 .../segment/generic/GrantLevelSegmentAssert.java   |  6 +-
 .../asserts/segment/owner/OwnerAssert.java         |  6 +-
 .../segment/projection/ProjectionAssert.java       | 12 ++--
 .../asserts/segment/table/TableAssert.java         |  6 +-
 .../dal/impl/ShowBinlogEventsStatementAssert.java  | 12 ++--
 .../dal/impl/ShowIndexStatementAssert.java         | 12 ++--
 .../dcl/impl/CreateLoginStatementAssert.java       |  6 +-
 .../dcl/impl/DenyUserStatementAssert.java          |  6 +-
 .../dcl/impl/DropLoginStatementAssert.java         |  6 +-
 .../dcl/impl/mysql/MySQLGrantStatementAssert.java  |  6 +-
 .../ddl/impl/AlterTableStatementAssert.java        |  6 +-
 .../ddl/impl/AlterViewStatementAssert.java         | 12 ++--
 .../statement/ddl/impl/CloseStatementAssert.java   |  6 +-
 .../ddl/impl/CreateIndexStatementAssert.java       |  6 +-
 .../ddl/impl/CreateTableStatementAssert.java       |  6 +-
 .../ddl/impl/CreateViewStatementAssert.java        | 12 ++--
 .../statement/ddl/impl/CursorStatementAssert.java  |  6 +-
 .../ddl/impl/DropIndexStatementAssert.java         |  6 +-
 .../statement/ddl/impl/FetchStatementAssert.java   |  6 +-
 .../statement/ddl/impl/MoveStatementAssert.java    |  6 +-
 .../ddl/impl/RenameTableStatementAssert.java       |  6 +-
 .../CountDatabaseDiscoveryRuleStatementAssert.java |  6 +-
 .../impl/rule/CountEncryptRuleStatementAssert.java |  6 +-
 ...CountReadwriteSplittingRuleStatementAssert.java |  6 +-
 .../impl/rule/CountShadowRuleStatementAssert.java  |  6 +-
 .../rule/CountShardingRuleStatementAssert.java     |  6 +-
 .../rule/CountSingleTableRuleStatementAssert.java  |  6 +-
 .../ShowDatabaseDiscoveryRulesStatementAssert.java |  6 +-
 ...ShowDefaultShardingStrategyStatementAssert.java |  6 +-
 .../impl/rule/ShowEncryptRulesStatementAssert.java |  6 +-
 ...ShowReadwriteSplittingRulesStatementAssert.java |  6 +-
 .../rule/ShowRulesUsedResourceStatementAssert.java | 12 ++--
 .../rule/ShowShadowAlgorithmsStatementAssert.java  |  6 +-
 .../impl/rule/ShowShadowRulesStatementAssert.java  |  6 +-
 .../rule/ShowShadowTableRulesStatementAssert.java  |  6 +-
 .../ShowShardingAlgorithmsStatementAssert.java     |  6 +-
 .../rule/ShowShardingAuditorsStatementAssert.java  |  6 +-
 ...owShardingBindingTableRulesStatementAssert.java |  6 +-
 ...ShardingBroadcastTableRulesStatementAssert.java |  6 +-
 .../ShowShardingTableNodesStatementAssert.java     |  9 ++-
 .../ShowShardingTableRulesStatementAssert.java     |  6 +-
 ...dingTableRulesUsedAlgorithmStatementAssert.java | 12 ++--
 ...ardingTableRulesUsedAuditorStatementAssert.java | 12 ++--
 ...gTableRulesUsedKeyGeneratorStatementAssert.java | 12 ++--
 .../rule/ShowSingleTableRulesStatementAssert.java  |  6 +-
 .../impl/rule/ShowSingleTableStatementAssert.java  |  6 +-
 ...howUnusedShardingAlgorithmsStatementAssert.java |  6 +-
 .../ShowUnusedShardingAuditorsStatementAssert.java | 12 ++--
 ...UnusedShardingKeyGeneratorsStatementAssert.java |  6 +-
 .../statement/dml/impl/CopyStatementAssert.java    |  6 +-
 .../statement/dml/impl/DeleteStatementAssert.java  | 30 +++++-----
 .../statement/dml/impl/InsertStatementAssert.java  | 60 ++++++++++----------
 .../statement/dml/impl/SelectStatementAssert.java  | 66 +++++++++++-----------
 .../statement/dml/impl/UpdateStatementAssert.java  | 24 ++++----
 .../statement/tcl/impl/LockStatementAssert.java    | 12 ++--
 .../tcl/impl/RollbackStatementAssert.java          |  6 +-
 .../pipeline/core/util/PipelineContextUtil.java    |  5 +-
 .../DefaultParallelRunnerExecutorFactory.java      |  7 +--
 81 files changed, 405 insertions(+), 426 deletions(-)

diff --git a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
index fe0b7f400fe..8155a0844f2 100644
--- a/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
+++ b/shardingsphere-agent/shardingsphere-agent-core/src/main/java/org/apache/shardingsphere/agent/core/plugin/AgentPluginLoader.java
@@ -123,12 +123,12 @@ public final class AgentPluginLoader extends ClassLoader implements Closeable, P
     }
     
     private Collection<String> getPluginNames() {
-        AgentConfiguration configuration = AgentConfigurationRegistry.INSTANCE.get(AgentConfiguration.class);
-        Set<String> pluginNames = new HashSet<>();
-        if (null != configuration && null != configuration.getPlugins()) {
-            pluginNames.addAll(configuration.getPlugins().keySet());
+        AgentConfiguration agentConfig = AgentConfigurationRegistry.INSTANCE.get(AgentConfiguration.class);
+        Set<String> result = new HashSet<>();
+        if (null != agentConfig && null != agentConfig.getPlugins()) {
+            result.addAll(agentConfig.getPlugins().keySet());
         }
-        return pluginNames;
+        return result;
     }
     
     /**
diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/ddl/CreateIndexStatementContext.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/ddl/CreateIndexStatementContext.java
index 947026ef26f..88299f383ac 100644
--- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/ddl/CreateIndexStatementContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/ddl/CreateIndexStatementContext.java
@@ -57,11 +57,11 @@ public final class CreateIndexStatementContext extends CommonSQLStatementContext
     
     @Override
     public Collection<IndexSegment> getIndexes() {
-        if (null != getSqlStatement().getIndex()) {
-            return Collections.singletonList(getSqlStatement().getIndex());
+        if (null == getSqlStatement().getIndex()) {
+            return CreateIndexStatementHandler.getGeneratedIndexStartIndex(getSqlStatement()).map(each -> Collections.singletonList(new IndexSegment(each, each,
+                    new IndexNameSegment(each, each, new IdentifierValue(IndexMetaDataUtil.getGeneratedLogicIndexName(getSqlStatement().getColumns())))))).orElseGet(Collections::emptyList);
         }
-        return CreateIndexStatementHandler.getGeneratedIndexStartIndex(getSqlStatement()).map(each -> Collections.singletonList(new IndexSegment(each, each,
-                new IndexNameSegment(each, each, new IdentifierValue(IndexMetaDataUtil.getGeneratedLogicIndexName(getSqlStatement().getColumns())))))).orElseGet(Collections::emptyList);
+        return Collections.singletonList(getSqlStatement().getIndex());
     }
     
     @Override
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtil.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtil.java
index 9adedf5f989..753cb89f905 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtil.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtil.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.infra.datasource.registry.GlobalDataSourceRegis
 import org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterials;
 import org.apache.shardingsphere.infra.metadata.database.schema.exception.UnsupportedActualDataNodeStructureException;
 import org.apache.shardingsphere.infra.metadata.database.schema.loader.SchemaMetaDataLoaderMaterials;
+import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 
 import java.util.Collection;
 import java.util.LinkedHashMap;
@@ -66,9 +67,8 @@ public class SchemaMetaDataUtil {
     
     private static void checkDataSourceTypeIncludeInstanceAndSetDatabaseTableMap(final DatabaseType databaseType, final DataNodes dataNodes, final String tableName) {
         for (DataNode dataNode : dataNodes.getDataNodes(tableName)) {
-            if (null != databaseType.getType() && !"MySQL".equals(databaseType.getType()) && dataNode.getDataSourceName().contains(".")) {
-                throw new UnsupportedActualDataNodeStructureException(dataNode, databaseType.getJdbcUrlPrefixes());
-            }
+            ShardingSpherePreconditions.checkState(null == databaseType.getType() || "MySQL".equals(databaseType.getType()) || !dataNode.getDataSourceName().contains("."),
+                    () -> new UnsupportedActualDataNodeStructureException(dataNode, databaseType.getJdbcUrlPrefixes()));
             if (dataNode.getDataSourceName().contains(".")) {
                 String database = dataNode.getDataSourceName().split("\\.")[1];
                 GlobalDataSourceRegistry.getInstance().getCachedDatabaseTables().put(dataNode.getTableName(), database);
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForReadwriteSplittingTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForReadwriteSplittingTest.java
index e663ca5cc0a..e0e015c6641 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForReadwriteSplittingTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForReadwriteSplittingTest.java
@@ -43,10 +43,9 @@ public abstract class AbstractShardingSphereDataSourceForReadwriteSplittingTest
     
     @BeforeClass
     public static void initReadwriteSplittingDataSources() throws SQLException, IOException {
-        if (null != dataSource) {
-            return;
+        if (null == dataSource) {
+            dataSource = (ShardingSphereDataSource) YamlShardingSphereDataSourceFactory.createDataSource(getDataSourceMap(), getFile());
         }
-        dataSource = (ShardingSphereDataSource) YamlShardingSphereDataSourceFactory.createDataSource(getDataSourceMap(), getFile());
     }
     
     private static Map<String, DataSource> getDataSourceMap() {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShadowTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShadowTest.java
index e0078c78aa6..44e389da6a2 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShadowTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShadowTest.java
@@ -43,10 +43,9 @@ public abstract class AbstractShardingSphereDataSourceForShadowTest extends Abst
     
     @BeforeClass
     public static void initShadowDataSource() throws SQLException, IOException {
-        if (null != dataSource) {
-            return;
+        if (null == dataSource) {
+            dataSource = (ShardingSphereDataSource) YamlShardingSphereDataSourceFactory.createDataSource(getDataSourceMap(), getFile());
         }
-        dataSource = (ShardingSphereDataSource) YamlShardingSphereDataSourceFactory.createDataSource(getDataSourceMap(), getFile());
     }
     
     private static Map<String, DataSource> getDataSourceMap() {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShardingTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShardingTest.java
index 95e69e9b53a..4751216e2a7 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShardingTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForShardingTest.java
@@ -47,10 +47,9 @@ public abstract class AbstractShardingSphereDataSourceForShardingTest extends Ab
     
     @BeforeClass
     public static void initShardingSphereDataSource() throws SQLException, IOException {
-        if (null != dataSource) {
-            return;
+        if (null == dataSource) {
+            dataSource = (ShardingSphereDataSource) YamlShardingSphereDataSourceFactory.createDataSource(getDataSourceMap(), getFile());
         }
-        dataSource = (ShardingSphereDataSource) YamlShardingSphereDataSourceFactory.createDataSource(getDataSourceMap(), getFile());
     }
     
     private static Map<String, DataSource> getDataSourceMap() {
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobAPIImpl.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobAPIImpl.java
index 207b0954760..c4963d50ab6 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobAPIImpl.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/consistencycheck/ConsistencyCheckJobAPIImpl.java
@@ -134,8 +134,7 @@ public final class ConsistencyCheckJobAPIImpl extends AbstractPipelineJobAPIImpl
         log.info("start disable check job {}", jobId);
         PipelineJobItemProgress jobProgress = getJobItemProgress(jobId, 0);
         if (null != jobProgress && JobStatus.FINISHED == jobProgress.getStatus()) {
-            String errorMessage = String.format("job already finished, can use `CHECK MIGRATION '%s'` to start a new data consistency check job", jobId);
-            throw new PipelineJobHasAlreadyFinishedException(errorMessage);
+            throw new PipelineJobHasAlreadyFinishedException(String.format("job already finished, can use `CHECK MIGRATION '%s'` to start a new data consistency check job", jobId));
         }
         super.startDisabledJob(jobId);
     }
diff --git a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java
index cf0c3c343c4..f3669f75781 100644
--- a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java
+++ b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-dialect/shardingsphere-data-pipeline-postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgresIndexSQLGenerator.java
@@ -121,19 +121,19 @@ public final class PostgresIndexSQLGenerator extends AbstractPostgresDDLAdapter
     }
     
     private boolean isSortOrder(final Map<String, Object> columnDetail) throws SQLException {
-        if (null != columnDetail.get("options")) {
-            String[] options = (String[]) ((PgArray) columnDetail.get("options")).getArray();
-            return options.length > 0 && "DESC".equals(options[0]);
+        if (null == columnDetail.get("options")) {
+            return false;
         }
-        return false;
+        String[] options = (String[]) ((PgArray) columnDetail.get("options")).getArray();
+        return options.length > 0 && "DESC".equals(options[0]);
     }
     
     private Object isNulls(final Map<String, Object> columnDetail) throws SQLException {
-        if (null != columnDetail.get("options")) {
-            String[] options = (String[]) ((PgArray) columnDetail.get("options")).getArray();
-            return options.length > 1 && options[1].split(" ").length > 1 && "FIRST".equals(options[1].split(" ")[1]);
+        if (null == columnDetail.get("options")) {
+            return false;
         }
-        return false;
+        String[] options = (String[]) ((PgArray) columnDetail.get("options")).getArray();
+        return options.length > 1 && options[1].split(" ").length > 1 && "FIRST".equals(options[1].split(" ")[1]);
     }
     
     private Collection<Map<String, Object>> fetchColumnDetails(final Long indexId) {
diff --git a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/from/impl/JoinTableConverter.java b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/from/impl/JoinTableConverter.java
index a0b3f3439af..e3d56033afc 100644
--- a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/from/impl/JoinTableConverter.java
+++ b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/converter/segment/from/impl/JoinTableConverter.java
@@ -61,14 +61,14 @@ public final class JoinTableConverter implements SQLSegmentConverter<JoinTableSe
         if (null != segment.getCondition()) {
             return new ExpressionConverter().convert(segment.getCondition());
         }
-        if (!segment.getUsing().isEmpty()) {
-            Collection<SqlNode> sqlNodes = new LinkedList<>();
-            ColumnConverter columnConverter = new ColumnConverter();
-            for (ColumnSegment each : segment.getUsing()) {
-                columnConverter.convert(each).ifPresent(sqlNodes::add);
-            }
-            return Optional.of(new SqlNodeList(sqlNodes, SqlParserPos.ZERO));
+        if (segment.getUsing().isEmpty()) {
+            return Optional.empty();
+        }
+        Collection<SqlNode> sqlNodes = new LinkedList<>();
+        ColumnConverter columnConverter = new ColumnConverter();
+        for (ColumnSegment each : segment.getUsing()) {
+            columnConverter.convert(each).ifPresent(sqlNodes::add);
         }
-        return Optional.empty();
+        return Optional.of(new SqlNodeList(sqlNodes, SqlParserPos.ZERO));
     }
 }
diff --git a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/ParseRexNodeVisitorImpl.java b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/ParseRexNodeVisitorImpl.java
index ca914764af0..81a5e7ff467 100644
--- a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/ParseRexNodeVisitorImpl.java
+++ b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/ParseRexNodeVisitorImpl.java
@@ -223,11 +223,11 @@ public final class ParseRexNodeVisitorImpl extends ParseRexNodeBaseVisitor<RexNo
                 lowerValue = BigDecimal.valueOf(Long.parseLong(lower));
                 upperValue = BigDecimal.valueOf(Long.parseLong(upper));
             }
-            if (null != each.LP_()) {
-                Range<BigDecimal> range = Range.range(lowerValue, BoundType.OPEN, upperValue, BoundType.OPEN);
+            if (null == each.LP_()) {
+                Range<BigDecimal> range = Range.range(lowerValue, BoundType.CLOSED, upperValue, BoundType.CLOSED);
                 rangeList.add(range);
             } else {
-                Range<BigDecimal> range = Range.range(lowerValue, BoundType.CLOSED, upperValue, BoundType.CLOSED);
+                Range<BigDecimal> range = Range.range(lowerValue, BoundType.OPEN, upperValue, BoundType.OPEN);
                 rangeList.add(range);
             }
         }
diff --git a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableTableScan.java b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableTableScan.java
index 2443b5fc789..1905f82bda8 100644
--- a/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableTableScan.java
+++ b/shardingsphere-kernel/shardingsphere-sql-federation/shardingsphere-sql-federation-optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableTableScan.java
@@ -106,22 +106,22 @@ public class TranslatableTableScan extends TableScan implements EnumerableRel {
     
     @Override
     public String toString() {
-        if (null != filters) {
-            String[] filterValues = new String[number];
-            addFilter(filters, filterValues);
-            return "TranslatableTableScan{translatableTable=" + translatableTable + ", fields=" + Arrays.toString(fields) + ", filters=" + Arrays.toString(filterValues) + '}';
+        if (null == filters) {
+            return "TranslatableTableScan{translatableTable=" + translatableTable + ", fields=" + Arrays.toString(fields) + '}';
         }
-        return "TranslatableTableScan{translatableTable=" + translatableTable + ", fields=" + Arrays.toString(fields) + '}';
+        String[] filterValues = new String[number];
+        addFilter(filters, filterValues);
+        return "TranslatableTableScan{translatableTable=" + translatableTable + ", fields=" + Arrays.toString(fields) + ", filters=" + Arrays.toString(filterValues) + '}';
     }
     
     @Override
     public RelWriter explainTerms(final RelWriter relWriter) {
-        if (null != filters) {
-            String[] filterValues = new String[number];
-            addFilter(filters, filterValues);
-            return super.explainTerms(relWriter).item("fields", Primitive.asList(fields)).item("filters", Primitive.asList(filterValues));
+        if (null == filters) {
+            return super.explainTerms(relWriter).item("fields", Primitive.asList(fields));
         }
-        return super.explainTerms(relWriter).item("fields", Primitive.asList(fields));
+        String[] filterValues = new String[number];
+        addFilter(filters, filterValues);
+        return super.explainTerms(relWriter).item("fields", Primitive.asList(fields)).item("filters", Primitive.asList(filterValues));
     }
     
     @Override
@@ -155,14 +155,14 @@ public class TranslatableTableScan extends TableScan implements EnumerableRel {
      */
     public Result implement(final EnumerableRelImplementor implementor, final Prefer pref) {
         PhysType physType = PhysTypeImpl.of(implementor.getTypeFactory(), getRowType(), pref.preferArray());
-        if (null != filters) {
-            String[] filterValues = new String[number];
-            addFilter(filters, filterValues);
+        if (null == filters) {
             return implementor.result(physType, Blocks.toBlock(Expressions.call(table.getExpression(FederationTranslatableTable.class),
-                    "projectAndFilter", implementor.getRootExpression(), Expressions.constant(filterValues), Expressions.constant(fields))));
+                    "project", implementor.getRootExpression(), Expressions.constant(fields))));
         }
+        String[] filterValues = new String[number];
+        addFilter(filters, filterValues);
         return implementor.result(physType, Blocks.toBlock(Expressions.call(table.getExpression(FederationTranslatableTable.class),
-                "project", implementor.getRootExpression(), Expressions.constant(fields))));
+                "projectAndFilter", implementor.getRootExpression(), Expressions.constant(filterValues), Expressions.constant(fields))));
     }
     
     private void addFilter(final List<RexNode> filters, final String[] filterValues) {
diff --git a/shardingsphere-kernel/shardingsphere-traffic/shardingsphere-traffic-distsql/shardingsphere-traffic-distsql-parser/src/main/java/org/apache/shardingsphere/traffic/distsql/parser/core/TrafficDistSQLStatementVisitor.java b/shardingsphere-kernel/shardingsphere-traffic/shardingsphere-traffic-distsql/shardingsphere-traffic-distsql-parser/src/main/java/org/apache/shardingsphere/traffic/distsql/parser/core/TrafficDistSQLStatementVisitor.java
index 6f8a99850e9..9c5a27ce9a0 100644
--- a/shardingsphere-kernel/shardingsphere-traffic/shardingsphere-traffic-distsql/shardingsphere-traffic-distsql-parser/src/main/java/org/apache/shardingsphere/traffic/distsql/parser/core/TrafficDistSQLStatementVisitor.java
+++ b/shardingsphere-kernel/shardingsphere-traffic/shardingsphere-traffic-distsql/shardingsphere-traffic-distsql-parser/src/main/java/org/apache/shardingsphere/traffic/distsql/parser/core/TrafficDistSQLStatementVisitor.java
@@ -65,8 +65,8 @@ public final class TrafficDistSQLStatementVisitor extends TrafficDistSQLStatemen
         if (null != ctx.loadBalancerDefinition()) {
             loadBalancerSegment = (AlgorithmSegment) visit(ctx.loadBalancerDefinition().algorithmDefinition());
         }
-        return new TrafficRuleSegment(getIdentifierValue(ctx.ruleName()), buildLabels(ctx.labelDefinition()),
-                (AlgorithmSegment) visit(ctx.trafficAlgorithmDefinition().algorithmDefinition()), loadBalancerSegment);
+        return new TrafficRuleSegment(
+                getIdentifierValue(ctx.ruleName()), buildLabels(ctx.labelDefinition()), (AlgorithmSegment) visit(ctx.trafficAlgorithmDefinition().algorithmDefinition()), loadBalancerSegment);
     }
     
     private Collection<String> buildLabels(final LabelDefinitionContext labelDefinition) {
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java
index 0b34ed6ade8..733d1f5006c 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-distsql/shardingsphere-transaction-distsql-parser/src/main/java/org/apache/shardingsphere/transaction/distsql/parser/core/TransactionDistSQLStatementVisitor.java
@@ -52,11 +52,11 @@ public final class TransactionDistSQLStatementVisitor extends TransactionDistSQL
     @Override
     public ASTNode visitTransactionRuleDefinition(final TransactionRuleDefinitionContext ctx) {
         String defaultType = getIdentifierValue(ctx.defaultType());
-        if (null != ctx.providerDefinition()) {
-            TransactionProviderSegment provider = (TransactionProviderSegment) visit(ctx.providerDefinition());
-            return new AlterTransactionRuleStatement(defaultType, provider);
+        if (null == ctx.providerDefinition()) {
+            return new AlterTransactionRuleStatement(defaultType, new TransactionProviderSegment(null, null));
         }
-        return new AlterTransactionRuleStatement(defaultType, new TransactionProviderSegment(null, null));
+        TransactionProviderSegment provider = (TransactionProviderSegment) visit(ctx.providerDefinition());
+        return new AlterTransactionRuleStatement(defaultType, provider);
     }
     
     @Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionSetHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionSetHandler.java
index 4865ad8e317..02027d206f7 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionSetHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionSetHandler.java
@@ -50,11 +50,9 @@ public final class TransactionSetHandler implements ProxyBackendHandler {
             connectionSession.setReadOnly(false);
         }
         if (null != sqlStatement.getIsolationLevel()) {
-            if (sqlStatement instanceof MySQLStatement) {
-                connectionSession.setDefaultIsolationLevel(TransactionUtil.getTransactionIsolationLevel(Connection.TRANSACTION_REPEATABLE_READ));
-            } else {
-                connectionSession.setDefaultIsolationLevel(TransactionUtil.getTransactionIsolationLevel(Connection.TRANSACTION_READ_COMMITTED));
-            }
+            connectionSession.setDefaultIsolationLevel(sqlStatement instanceof MySQLStatement
+                    ? TransactionUtil.getTransactionIsolationLevel(Connection.TRANSACTION_REPEATABLE_READ)
+                    : TransactionUtil.getTransactionIsolationLevel(Connection.TRANSACTION_READ_COMMITTED));
             connectionSession.setIsolationLevel(sqlStatement.getIsolationLevel());
         }
         return new UpdateResponseHeader(sqlStatement);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java
index 9cbd5f48c06..90a017056a5 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilder.java
@@ -40,14 +40,14 @@ public final class MySQLQueryHeaderBuilder implements QueryHeaderBuilder {
         String actualTableName = queryResultMetaData.getTableName(columnIndex);
         String tableName;
         boolean primaryKey;
-        if (null != actualTableName && null != database) {
+        if (null == actualTableName || null == database) {
+            tableName = actualTableName;
+            primaryKey = false;
+        } else {
             tableName = getLogicTableName(database, actualTableName);
             ShardingSphereSchema schema = database.getSchema(schemaName);
             primaryKey = null != schema
                     && Optional.ofNullable(schema.getTable(tableName)).map(optional -> optional.getColumns().get(columnName.toLowerCase())).map(ShardingSphereColumn::isPrimaryKey).orElse(false);
-        } else {
-            tableName = actualTableName;
-            primaryKey = false;
         }
         int columnType = queryResultMetaData.getColumnType(columnIndex);
         String columnTypeName = queryResultMetaData.getColumnTypeName(columnIndex);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java
index 1d7e261fdc1..f10492446b7 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/session/ConnectionSession.java
@@ -107,10 +107,9 @@ public final class ConnectionSession {
      * @param databaseName database name
      */
     public void setCurrentDatabase(final String databaseName) {
-        if (null != databaseName && databaseName.equals(this.databaseName)) {
-            return;
+        if (null == databaseName || !databaseName.equals(this.databaseName)) {
+            this.databaseName = databaseName;
         }
-        this.databaseName = databaseName;
     }
     
     /**
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLDDLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLDDLStatementSQLVisitor.java
index 705f66711d1..2f9cfd13a2f 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLDDLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLDDLStatementSQLVisitor.java
@@ -415,12 +415,12 @@ public final class MySQLDDLStatementSQLVisitor extends MySQLStatementSQLVisitor
     
     private ModifyColumnDefinitionSegment generateModifyColumnDefinitionSegment(final ModifyColumnContext ctx) {
         ColumnSegment column = new ColumnSegment(ctx.columnInternalRef.start.getStartIndex(), ctx.columnInternalRef.stop.getStopIndex(), (IdentifierValue) visit(ctx.columnInternalRef));
-        ModifyColumnDefinitionSegment modifyColumnDefinition = new ModifyColumnDefinitionSegment(
+        ModifyColumnDefinitionSegment result = new ModifyColumnDefinitionSegment(
                 ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), generateColumnDefinitionSegment(column, ctx.fieldDefinition()));
         if (null != ctx.place()) {
-            modifyColumnDefinition.setColumnPosition((ColumnPositionSegment) visit(ctx.place()));
+            result.setColumnPosition((ColumnPositionSegment) visit(ctx.place()));
         }
-        return modifyColumnDefinition;
+        return result;
     }
     
     private ChangeColumnDefinitionSegment generateModifyColumnDefinitionSegment(final ChangeColumnContext ctx) {
@@ -526,7 +526,8 @@ public final class MySQLDDLStatementSQLVisitor extends MySQLStatementSQLVisitor
         if (null != ctx.columnName()) {
             columnName = (ColumnSegment) visit(ctx.columnName());
         }
-        return null == ctx.columnName() ? new ColumnFirstPositionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), columnName)
+        return null == ctx.columnName()
+                ? new ColumnFirstPositionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), columnName)
                 : new ColumnAfterPositionSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), columnName);
     }
     
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussDCLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussDCLStatementSQLVisitor.java
index 18a9e5a3347..c8f9e5902f9 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussDCLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussDCLStatementSQLVisitor.java
@@ -73,12 +73,9 @@ public final class OpenGaussDCLStatementSQLVisitor extends OpenGaussStatementSQL
     
     @SuppressWarnings("unchecked")
     private Optional<Collection<SimpleTableSegment>> getTableFromPrivilegeClause(final PrivilegeClauseContext ctx) {
-        if (null != ctx.onObjectClause() && null != ctx.onObjectClause().privilegeLevel()) {
-            if (null != ctx.onObjectClause().privilegeLevel().tableNames()) {
-                return Optional.of(((CollectionValue<SimpleTableSegment>) visit(ctx.onObjectClause().privilegeLevel().tableNames())).getValue());
-            }
-        }
-        return Optional.empty();
+        return null == ctx.onObjectClause() || null == ctx.onObjectClause().privilegeLevel() || null == ctx.onObjectClause().privilegeLevel().tableNames()
+                ? Optional.empty()
+                : Optional.of(((CollectionValue<SimpleTableSegment>) visit(ctx.onObjectClause().privilegeLevel().tableNames())).getValue());
     }
     
     @Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java
index 87b41139951..55ac57d85fa 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDMLStatementSQLVisitor.java
@@ -203,11 +203,9 @@ public final class OracleDMLStatementSQLVisitor extends OracleStatementSQLVisito
     @Override
     public ASTNode visitInsertMultiTable(final InsertMultiTableContext ctx) {
         OracleInsertStatement result = new OracleInsertStatement();
-        if (null != ctx.conditionalInsertClause()) {
-            result.setInsertMultiTableElementSegment((InsertMultiTableElementSegment) visit(ctx.conditionalInsertClause()));
-        } else {
-            result.setInsertMultiTableElementSegment(createInsertMultiTableElementSegment(ctx.multiTableElement()));
-        }
+        result.setInsertMultiTableElementSegment(null == ctx.conditionalInsertClause()
+                ? createInsertMultiTableElementSegment(ctx.multiTableElement())
+                : (InsertMultiTableElementSegment) visit(ctx.conditionalInsertClause()));
         OracleSelectStatement subquery = (OracleSelectStatement) visit(ctx.selectSubquery());
         SubquerySegment subquerySegment = new SubquerySegment(ctx.selectSubquery().start.getStartIndex(), ctx.selectSubquery().stop.getStopIndex(), subquery);
         result.setSelectSubquery(subquerySegment);
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
index 218f832e185..ab63d091034 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
@@ -323,34 +323,30 @@ public abstract class OracleStatementSQLVisitor extends OracleStatementBaseVisit
     
     @Override
     public final ASTNode visitBooleanPrimary(final BooleanPrimaryContext ctx) {
-        if (null != ctx.IS()) {
-            String rightText = "";
-            if (null != ctx.NOT()) {
-                rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(ctx.NOT().getSymbol().getStartIndex(),
-                        ctx.NOT().getSymbol().getStopIndex()))).concat(" ");
-            }
-            Token operatorToken = null;
-            if (null != ctx.NULL()) {
-                operatorToken = ctx.NULL().getSymbol();
-            }
-            if (null != ctx.TRUE()) {
-                operatorToken = ctx.TRUE().getSymbol();
-            }
-            if (null != ctx.FALSE()) {
-                operatorToken = ctx.FALSE().getSymbol();
-            }
-            int startIndex = null == operatorToken ? ctx.IS().getSymbol().getStopIndex() + 1 : operatorToken.getStartIndex();
-            rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(startIndex, ctx.stop.getStopIndex())));
-            ExpressionSegment right = new LiteralExpressionSegment(ctx.IS().getSymbol().getStopIndex() + 1, ctx.stop.getStopIndex(), rightText);
-            String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
-            ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary());
-            String operator = "IS";
-            return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text);
-        }
-        if (null != ctx.comparisonOperator() || null != ctx.SAFE_EQ_()) {
-            return createCompareSegment(ctx);
-        }
-        return visit(ctx.predicate());
+        if (null == ctx.IS()) {
+            return null == ctx.comparisonOperator() && null == ctx.SAFE_EQ_() ? visit(ctx.predicate()) : createCompareSegment(ctx);
+        }
+        String rightText = "";
+        if (null != ctx.NOT()) {
+            rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(ctx.NOT().getSymbol().getStartIndex(), ctx.NOT().getSymbol().getStopIndex()))).concat(" ");
+        }
+        Token operatorToken = null;
+        if (null != ctx.NULL()) {
+            operatorToken = ctx.NULL().getSymbol();
+        }
+        if (null != ctx.TRUE()) {
+            operatorToken = ctx.TRUE().getSymbol();
+        }
+        if (null != ctx.FALSE()) {
+            operatorToken = ctx.FALSE().getSymbol();
+        }
+        int startIndex = null == operatorToken ? ctx.IS().getSymbol().getStopIndex() + 1 : operatorToken.getStartIndex();
+        rightText = rightText.concat(ctx.start.getInputStream().getText(new Interval(startIndex, ctx.stop.getStopIndex())));
+        ExpressionSegment right = new LiteralExpressionSegment(ctx.IS().getSymbol().getStopIndex() + 1, ctx.stop.getStopIndex(), rightText);
+        String text = ctx.start.getInputStream().getText(new Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
+        ExpressionSegment left = (ExpressionSegment) visit(ctx.booleanPrimary());
+        String operator = "IS";
+        return new BinaryOperationExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), left, right, operator, text);
     }
     
     private ASTNode createCompareSegment(final BooleanPrimaryContext ctx) {
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLDCLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLDCLStatementSQLVisitor.java
index 7bbb9f166a7..3d6bda947c5 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLDCLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLDCLStatementSQLVisitor.java
@@ -77,12 +77,13 @@ public final class PostgreSQLDCLStatementSQLVisitor extends PostgreSQLStatementS
     
     @SuppressWarnings("unchecked")
     private Optional<Collection<SimpleTableSegment>> getTableFromPrivilegeClause(final PrivilegeClauseContext ctx) {
-        if (null != ctx.onObjectClause() && null != ctx.onObjectClause().privilegeLevel()) {
-            if (null != ctx.onObjectClause().privilegeLevel().tableNames()) {
-                return Optional.of(((CollectionValue<SimpleTableSegment>) visit(ctx.onObjectClause().privilegeLevel().tableNames())).getValue());
-            }
+        if (null == ctx.onObjectClause() || null == ctx.onObjectClause().privilegeLevel()) {
+            return Optional.empty();
         }
-        return Optional.empty();
+        if (null == ctx.onObjectClause().privilegeLevel().tableNames()) {
+            return Optional.empty();
+        }
+        return Optional.of(((CollectionValue<SimpleTableSegment>) visit(ctx.onObjectClause().privilegeLevel().tableNames())).getValue());
     }
     
     @Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
index 9668a2cb7b2..baba4820605 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
@@ -204,14 +204,14 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
     
     @Override
     public final ASTNode visitParameterMarker(final ParameterMarkerContext ctx) {
-        if (null != ctx.DOLLAR_()) {
-            int parameterIndex = ((NumberLiteralValue) visit(ctx.numberLiterals())).getValue().intValue();
-            if (parameterIndex > currentParameterIndex) {
-                currentParameterIndex = parameterIndex;
-            }
-            return new ParameterMarkerValue(parameterIndex - 1, ParameterMarkerType.DOLLAR);
+        if (null == ctx.DOLLAR_()) {
+            return new ParameterMarkerValue(currentParameterIndex++, ParameterMarkerType.QUESTION);
+        }
+        int parameterIndex = ((NumberLiteralValue) visit(ctx.numberLiterals())).getValue().intValue();
+        if (parameterIndex > currentParameterIndex) {
+            currentParameterIndex = parameterIndex;
         }
-        return new ParameterMarkerValue(currentParameterIndex++, ParameterMarkerType.QUESTION);
+        return new ParameterMarkerValue(parameterIndex - 1, ParameterMarkerType.DOLLAR);
     }
     
     @Override
@@ -388,10 +388,7 @@ public abstract class PostgreSQLStatementSQLVisitor extends PostgreSQLStatementP
     private ExpressionSegment createSubqueryExpressionSegment(final CExprContext ctx) {
         SubquerySegment subquerySegment = new SubquerySegment(ctx.selectWithParens().getStart().getStartIndex(),
                 ctx.selectWithParens().getStop().getStopIndex(), (PostgreSQLSelectStatement) visit(ctx.selectWithParens()));
-        if (null != ctx.EXISTS()) {
-            return new ExistsSubqueryExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment);
-        }
-        return new SubqueryExpressionSegment(subquerySegment);
+        return null == ctx.EXISTS() ? new SubqueryExpressionSegment(subquerySegment) : new ExistsSubqueryExpression(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), subquerySegment);
     }
     
     @Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java
index 452903da877..4bee93ddc7c 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/java/org/apache/shardingsphere/sql/parser/sql92/visitor/statement/impl/SQL92DMLStatementSQLVisitor.java
@@ -308,10 +308,9 @@ public final class SQL92DMLStatementSQLVisitor extends SQL92StatementSQLVisitor
     
     @Override
     public ASTNode visitAlias(final AliasContext ctx) {
-        if (null != ctx.identifier()) {
-            return new AliasSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.identifier()));
-        }
-        return new AliasSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), new IdentifierValue(ctx.STRING_().getText()));
+        return null == ctx.identifier()
+                ? new AliasSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), new IdentifierValue(ctx.STRING_().getText()))
+                : new AliasSegment(ctx.start.getStartIndex(), ctx.stop.getStopIndex(), (IdentifierValue) visit(ctx.identifier()));
     }
     
     private ASTNode createProjection(final ProjectionContext ctx, final AliasSegment alias) {
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/generic/GrantLevelSegmentAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/generic/GrantLevelSegmentAssert.java
index c9fa4a8fc6f..860b5b6e9eb 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/generic/GrantLevelSegmentAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/generic/GrantLevelSegmentAssert.java
@@ -43,11 +43,11 @@ public final class GrantLevelSegmentAssert {
      * @param expected expected grant statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final GrantLevelSegment actual, final List<ExpectedSimpleTable> expected) {
-        if (null != expected && !expected.isEmpty()) {
+        if (null == expected || expected.isEmpty()) {
+            assertNull(assertContext.getText("Actual table should not exist."), actual.getTableName());
+        } else {
             assertThat(expected.size(), is(1));
             assertThat(actual.getTableName(), is(expected.get(0).getName()));
-        } else {
-            assertNull(assertContext.getText("Actual table should not exist."), actual.getTableName());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/owner/OwnerAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/owner/OwnerAssert.java
index bc17f0d03b9..06613cca222 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/owner/OwnerAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/owner/OwnerAssert.java
@@ -44,11 +44,11 @@ public final class OwnerAssert {
     public static void assertIs(final SQLCaseAssertContext assertContext, final OwnerSegment actual, final ExpectedOwner expected) {
         IdentifierValueAssert.assertIs(assertContext, actual.getIdentifier(), expected, "Owner");
         SQLSegmentAssert.assertIs(assertContext, actual, expected);
-        if (null != expected.getOwner()) {
+        if (null == expected.getOwner()) {
+            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getOwner().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual owner should exist."), actual.getOwner().isPresent());
             OwnerAssert.assertIs(assertContext, actual.getOwner().get(), expected.getOwner());
-        } else {
-            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getOwner().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/projection/ProjectionAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/projection/ProjectionAssert.java
index 536bc45b3ad..bb1f604582a 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/projection/ProjectionAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/projection/ProjectionAssert.java
@@ -121,22 +121,22 @@ public final class ProjectionAssert {
     }
     
     private static void assertShorthandProjection(final SQLCaseAssertContext assertContext, final ShorthandProjectionSegment actual, final ExpectedShorthandProjection expected) {
-        if (null != expected.getOwner()) {
+        if (null == expected.getOwner()) {
+            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getOwner().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual owner should exist."), actual.getOwner().isPresent());
             OwnerAssert.assertIs(assertContext, actual.getOwner().get(), expected.getOwner());
-        } else {
-            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getOwner().isPresent());
         }
     }
     
     private static void assertColumnProjection(final SQLCaseAssertContext assertContext, final ColumnProjectionSegment actual, final ExpectedColumnProjection expected) {
         IdentifierValueAssert.assertIs(assertContext, actual.getColumn().getIdentifier(), expected, "Column projection");
         assertThat(assertContext.getText("Column projection alias assertion error: "), actual.getAlias().orElse(null), is(expected.getAlias()));
-        if (null != expected.getOwner()) {
+        if (null == expected.getOwner()) {
+            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getColumn().getOwner().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual owner should exist."), actual.getColumn().getOwner().isPresent());
             OwnerAssert.assertIs(assertContext, actual.getColumn().getOwner().get(), expected.getOwner());
-        } else {
-            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getColumn().getOwner().isPresent());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java
index cda41b306a2..fa4d6bfaaa2 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/table/TableAssert.java
@@ -81,11 +81,11 @@ public final class TableAssert {
     public static void assertIs(final SQLCaseAssertContext assertContext, final SimpleTableSegment actual, final ExpectedSimpleTable expected) {
         IdentifierValueAssert.assertIs(assertContext, actual.getTableName().getIdentifier(), expected, "Table");
         assertThat(assertContext.getText("Table alias assertion error: "), actual.getAlias().orElse(null), is(expected.getAlias()));
-        if (null != expected.getOwner()) {
+        if (null == expected.getOwner()) {
+            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getOwner().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual owner should exist."), actual.getOwner().isPresent());
             OwnerAssert.assertIs(assertContext, actual.getOwner().get(), expected.getOwner());
-        } else {
-            assertFalse(assertContext.getText("Actual owner should not exist."), actual.getOwner().isPresent());
         }
         SQLSegmentAssert.assertIs(assertContext, actual, expected);
     }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowBinlogEventsStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowBinlogEventsStatementAssert.java
index 9e49398f329..426281b4f78 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowBinlogEventsStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowBinlogEventsStatementAssert.java
@@ -43,18 +43,18 @@ public final class ShowBinlogEventsStatementAssert {
      * @param expected expected show binlog events statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final MySQLShowBinlogEventsStatement actual, final ShowBinlogEventsStatementTestCase expected) {
-        if (null != expected.getLogName()) {
+        if (null == expected.getLogName()) {
+            assertNull(assertContext.getText("Actual logName should not exist."), actual.getLogName());
+        } else {
             assertNotNull(assertContext.getText("Actual logName should exist."), actual.getLogName());
             assertThat(actual.getLogName(), is(expected.getLogName()));
-        } else {
-            assertNull(assertContext.getText("Actual logName should not exist."), actual.getLogName());
         }
-        if (null != expected.getLimitClause()) {
+        if (null == expected.getLimitClause()) {
+            assertNull(assertContext.getText("Actual limit clause should not exist."), actual.getLimit());
+        } else {
             assertNotNull(assertContext.getText("Actual limit clause should exist."), actual.getLimit());
             LimitClauseAssert.assertOffset(assertContext, actual.getLimit().getOffset().get(), expected.getLimitClause().getOffset());
             LimitClauseAssert.assertRowCount(assertContext, actual.getLimit().getRowCount().get(), expected.getLimitClause().getRowCount());
-        } else {
-            assertNull(assertContext.getText("Actual limit clause should not exist."), actual.getLimit());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowIndexStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowIndexStatementAssert.java
index 3edc3f3b748..027338b9ea0 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowIndexStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowIndexStatementAssert.java
@@ -48,19 +48,19 @@ public final class ShowIndexStatementAssert {
     }
     
     private static void assertTable(final SQLCaseAssertContext assertContext, final MySQLShowIndexStatement actual, final ShowIndexStatementTestCase expected) {
-        if (null != expected.getTable()) {
-            TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
-        } else {
+        if (null == expected.getTable()) {
             assertNull(assertContext.getText("Actual table segment should not exist."), actual.getTable());
+        } else {
+            TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
         }
     }
     
     private static void assertSchema(final SQLCaseAssertContext assertContext, final MySQLShowIndexStatement actual, final ShowIndexStatementTestCase expected) {
-        if (null != expected.getSchema()) {
+        if (null == expected.getSchema()) {
+            assertFalse(assertContext.getText("Actual database segment should not exist."), actual.getFromSchema().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database segment should exist."), actual.getFromSchema().isPresent());
             SQLSegmentAssert.assertIs(assertContext, actual.getFromSchema().get(), expected.getSchema());
-        } else {
-            assertFalse(assertContext.getText("Actual database segment should not exist."), actual.getFromSchema().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/CreateLoginStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/CreateLoginStatementAssert.java
index 2b4df3c15fc..a1427e75ffd 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/CreateLoginStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/CreateLoginStatementAssert.java
@@ -43,12 +43,12 @@ public final class CreateLoginStatementAssert {
      * @param expected expected create login statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final SQLServerCreateLoginStatement actual, final CreateLoginStatementTestCase expected) {
-        if (null != expected.getLogin()) {
+        if (null == expected.getLogin()) {
+            assertNull(assertContext.getText("Actual login should not exist."), actual.getLoginSegment());
+        } else {
             assertNotNull(assertContext.getText("Actual login should exist."), actual.getLoginSegment());
             assertThat(assertContext.getText("Login name assertion error: "), actual.getLoginSegment().getLoginName().getValueWithQuoteCharacters(), is(expected.getLogin().getName()));
             SQLSegmentAssert.assertIs(assertContext, actual.getLoginSegment(), expected.getLogin());
-        } else {
-            assertNull(assertContext.getText("Actual login should not exist."), actual.getLoginSegment());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DenyUserStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DenyUserStatementAssert.java
index 4e3dfb621e5..646125d1f14 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DenyUserStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DenyUserStatementAssert.java
@@ -48,11 +48,11 @@ public final class DenyUserStatementAssert {
     }
     
     private static void assertTable(final SQLCaseAssertContext assertContext, final SQLServerDenyUserStatement actual, final DenyUserStatementTestCase expected) {
-        if (null != expected.getTable()) {
+        if (null == expected.getTable()) {
+            assertNull(assertContext.getText("Actual table segment should not exist."), actual.getTable());
+        } else {
             assertNotNull(assertContext.getText("Actual table segment should exist."), actual.getTable());
             TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
-        } else {
-            assertNull(assertContext.getText("Actual table segment should not exist."), actual.getTable());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DropLoginStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DropLoginStatementAssert.java
index cb4e0cc0005..a1c31373b94 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DropLoginStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/DropLoginStatementAssert.java
@@ -43,12 +43,12 @@ public final class DropLoginStatementAssert {
      * @param expected expected drop login statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final SQLServerDropLoginStatement actual, final DropLoginStatementTestCase expected) {
-        if (null != expected.getLogin()) {
+        if (null == expected.getLogin()) {
+            assertNull(assertContext.getText("Actual login should not exist."), actual.getLoginSegment());
+        } else {
             assertNotNull(assertContext.getText("Actual login should exist."), actual.getLoginSegment());
             assertThat(assertContext.getText("Login name assertion error: "), actual.getLoginSegment().getLoginName().getValueWithQuoteCharacters(), is(expected.getLogin().getName()));
             SQLSegmentAssert.assertIs(assertContext, actual.getLoginSegment(), expected.getLogin());
-        } else {
-            assertNull(assertContext.getText("Actual login should not exist."), actual.getLoginSegment());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/mysql/MySQLGrantStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/mysql/MySQLGrantStatementAssert.java
index 1929d358fa9..3b11752e040 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/mysql/MySQLGrantStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dcl/impl/mysql/MySQLGrantStatementAssert.java
@@ -43,11 +43,11 @@ public final class MySQLGrantStatementAssert {
      * @param expected expected grant statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final MySQLGrantStatement actual, final GrantStatementTestCase expected) {
-        if (null != expected.getTables() && !expected.getTables().isEmpty()) {
+        if (null == expected.getTables() || expected.getTables().isEmpty()) {
+            assertThat(assertContext.getText("Actual table should not exist."), actual.getTables(), is(Collections.emptyList()));
+        } else {
             assertThat(expected.getTables().size(), is(1));
             GrantLevelSegmentAssert.assertIs(assertContext, actual.getLevel(), expected.getTables());
-        } else {
-            assertThat(assertContext.getText("Actual table should not exist."), actual.getTables(), is(Collections.emptyList()));
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterTableStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterTableStatementAssert.java
index ef3d8275844..cce1e683b3e 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterTableStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterTableStatementAssert.java
@@ -82,7 +82,9 @@ public final class AlterTableStatementAssert {
     
     private static void assertConvertTable(final SQLCaseAssertContext assertContext, final AlterTableStatement actual, final AlterTableStatementTestCase expected) {
         Optional<ConvertTableDefinitionSegment> convertTable = actual.getConvertTableDefinition();
-        if (null != expected.getConvertTable()) {
+        if (null == expected.getConvertTable()) {
+            assertFalse(assertContext.getText("Actual convert table segment should not exist."), convertTable.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual convert table segment should exist."), convertTable.isPresent());
             CharsetAssert.assertIs(assertContext, convertTable.get().getCharsetName(), expected.getConvertTable().getCharsetName());
             if (null == expected.getConvertTable().getCollateExpression()) {
@@ -91,8 +93,6 @@ public final class AlterTableStatementAssert {
                 ExpressionAssert.assertExpression(assertContext, convertTable.get().getCollateValue(), expected.getConvertTable().getCollateExpression().getCollateName());
             }
             SQLSegmentAssert.assertIs(assertContext, convertTable.get(), expected.getConvertTable());
-        } else {
-            assertFalse(assertContext.getText("Actual convert table segment should not exist."), convertTable.isPresent());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterViewStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterViewStatementAssert.java
index 2733b5b2d8f..c1b0ca53914 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterViewStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AlterViewStatementAssert.java
@@ -55,21 +55,21 @@ public final class AlterViewStatementAssert {
     }
     
     private static void assertViewDefinition(final SQLCaseAssertContext assertContext, final AlterViewStatement actual, final AlterViewStatementTestCase expected) {
-        if (null != expected.getViewDefinition()) {
+        if (null == expected.getViewDefinition()) {
+            assertFalse("actual view definition should not exist", AlterViewStatementHandler.getViewDefinition(actual).isPresent());
+        } else {
             assertTrue("actual view definition should exist", AlterViewStatementHandler.getViewDefinition(actual).isPresent());
             assertThat(assertContext.getText(String.format("`%s`'s view definition assertion error: ", actual.getClass().getSimpleName())), AlterViewStatementHandler.getViewDefinition(actual).get(),
                     is(expected.getViewDefinition()));
-        } else {
-            assertFalse("actual view definition should not exist", AlterViewStatementHandler.getViewDefinition(actual).isPresent());
         }
     }
     
     private static void assertSelect(final SQLCaseAssertContext assertContext, final AlterViewStatement actual, final AlterViewStatementTestCase expected) {
-        if (null != expected.getSelectStatement()) {
+        if (null == expected.getSelectStatement()) {
+            assertFalse("actual select statement should not exist", AlterViewStatementHandler.getSelectStatement(actual).isPresent());
+        } else {
             assertTrue("actual select statement should exist", AlterViewStatementHandler.getSelectStatement(actual).isPresent());
             SelectStatementAssert.assertIs(assertContext, AlterViewStatementHandler.getSelectStatement(actual).get(), expected.getSelectStatement());
-        } else {
-            assertFalse("actual select statement should not exist", AlterViewStatementHandler.getSelectStatement(actual).isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CloseStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CloseStatementAssert.java
index f5e2ffdcd7f..141ec1675b8 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CloseStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CloseStatementAssert.java
@@ -49,12 +49,12 @@ public final class CloseStatementAssert {
     }
     
     private static void assertCursorName(final SQLCaseAssertContext assertContext, final CloseStatement actual, final CloseStatementTestCase expected) {
-        if (null != expected.getCursorName()) {
+        if (null == expected.getCursorName()) {
+            assertFalse(assertContext.getText("Actual cursor name should not exist."), actual.getCursorName().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual cursor name should exist."), actual.getCursorName().isPresent());
             IdentifierValueAssert.assertIs(assertContext, actual.getCursorName().get().getIdentifier(), expected.getCursorName(), "Close");
             SQLSegmentAssert.assertIs(assertContext, actual.getCursorName().get(), expected.getCursorName());
-        } else {
-            assertFalse(assertContext.getText("Actual cursor name should not exist."), actual.getCursorName().isPresent());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateIndexStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateIndexStatementAssert.java
index 53afbf77937..a257fda939d 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateIndexStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateIndexStatementAssert.java
@@ -51,11 +51,11 @@ public final class CreateIndexStatementAssert {
     }
     
     private static void assertTable(final SQLCaseAssertContext assertContext, final CreateIndexStatement actual, final CreateIndexStatementTestCase expected) {
-        if (null != expected.getTable()) {
+        if (null == expected.getTable()) {
+            assertNull(assertContext.getText("Actual table segment should not exist."), actual.getTable());
+        } else {
             assertNotNull(assertContext.getText("Actual table segment should exist."), actual.getTable());
             TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
-        } else {
-            assertNull(assertContext.getText("Actual table segment should not exist."), actual.getTable());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateTableStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateTableStatementAssert.java
index 20555520eae..3d93b4d9615 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateTableStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateTableStatementAssert.java
@@ -86,11 +86,11 @@ public final class CreateTableStatementAssert {
     
     private static void assertCreateTableAsSelectStatement(final SQLCaseAssertContext assertContext, final CreateTableStatement actual, final CreateTableStatementTestCase expected) {
         Optional<SelectStatement> selectStatement = CreateTableStatementHandler.getSelectStatement(actual);
-        if (null != expected.getCreateTableAsSelectStatement()) {
+        if (null == expected.getCreateTableAsSelectStatement()) {
+            assertFalse("actual select statement should not exist", selectStatement.isPresent());
+        } else {
             assertTrue("actual select statement should exist", selectStatement.isPresent());
             SelectStatementAssert.assertIs(assertContext, selectStatement.get(), expected.getCreateTableAsSelectStatement());
-        } else {
-            assertFalse("actual select statement should not exist", selectStatement.isPresent());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateViewStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateViewStatementAssert.java
index 20b9dff4290..363544953ce 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateViewStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CreateViewStatementAssert.java
@@ -54,21 +54,21 @@ public final class CreateViewStatementAssert {
     }
     
     private static void assertViewDefinition(final SQLCaseAssertContext assertContext, final CreateViewStatement actual, final CreateViewStatementTestCase expected) {
-        if (null != expected.getViewDefinition()) {
+        if (null == expected.getViewDefinition()) {
+            assertNull("actual view definition should not exist", actual.getViewDefinition());
+        } else {
             assertNotNull("actual view definition should exist", actual.getViewDefinition());
             assertThat(assertContext.getText(String.format("`%s`'s view definition assertion error: ", actual.getClass().getSimpleName())), actual.getViewDefinition(),
                     is(expected.getViewDefinition()));
-        } else {
-            assertNull("actual view definition should not exist", actual.getViewDefinition());
         }
     }
     
     private static void assertSelect(final SQLCaseAssertContext assertContext, final CreateViewStatement actual, final CreateViewStatementTestCase expected) {
-        if (null != expected.getSelectStatement()) {
+        if (null == expected.getSelectStatement()) {
+            assertNull("actual select statement should not exist", actual.getSelect());
+        } else {
             assertNotNull("actual select statement should exist", actual.getSelect());
             SelectStatementAssert.assertIs(assertContext, actual.getSelect(), expected.getSelectStatement());
-        } else {
-            assertNull("actual select statement should not exist", actual.getSelect());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CursorStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CursorStatementAssert.java
index c095761abe9..4aad2087e1d 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CursorStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CursorStatementAssert.java
@@ -53,11 +53,11 @@ public final class CursorStatementAssert {
     }
     
     private static void assertSelect(final SQLCaseAssertContext assertContext, final OpenGaussCursorStatement actual, final CursorStatementTestCase expected) {
-        if (null != expected.getSelectTestCase()) {
+        if (null == expected.getSelectTestCase()) {
+            assertNull(assertContext.getText("Actual select statement should not exist."), actual.getSelect());
+        } else {
             assertNotNull(assertContext.getText("Actual select statement should exist."), actual.getSelect());
             SelectStatementAssert.assertIs(assertContext, actual.getSelect(), expected.getSelectTestCase());
-        } else {
-            assertNull(assertContext.getText("Actual select statement should not exist."), actual.getSelect());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DropIndexStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DropIndexStatementAssert.java
index c678bc72cc5..6868f9bba0d 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DropIndexStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DropIndexStatementAssert.java
@@ -54,11 +54,11 @@ public final class DropIndexStatementAssert {
     
     private static void assertTables(final SQLCaseAssertContext assertContext, final DropIndexStatement actual, final DropIndexStatementTestCase expected) {
         Optional<SimpleTableSegment> simpleTableSegment = DropIndexStatementHandler.getSimpleTableSegment(actual);
-        if (null != expected.getTable()) {
+        if (null == expected.getTable()) {
+            assertFalse(assertContext.getText("Actual table segment should not exist."), simpleTableSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual table segment should exist."), simpleTableSegment.isPresent());
             TableAssert.assertIs(assertContext, simpleTableSegment.get(), expected.getTable());
-        } else {
-            assertFalse(assertContext.getText("Actual table segment should not exist."), simpleTableSegment.isPresent());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/FetchStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/FetchStatementAssert.java
index 5e402f8061b..95ce138faa6 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/FetchStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/FetchStatementAssert.java
@@ -53,11 +53,11 @@ public final class FetchStatementAssert {
     }
     
     private static void assertDirection(final SQLCaseAssertContext assertContext, final FetchStatement actual, final FetchStatementTestCase expected) {
-        if (null != expected.getDirection()) {
+        if (null == expected.getDirection()) {
+            assertFalse(assertContext.getText("Actual direction segment should not exist."), actual.getDirection().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual direction segment should exist."), actual.getDirection().isPresent());
             DirectionSegmentAssert.assertIs(assertContext, actual.getDirection().get(), expected.getDirection());
-        } else {
-            assertFalse(assertContext.getText("Actual direction segment should not exist."), actual.getDirection().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/MoveStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/MoveStatementAssert.java
index 2103cb7f0fa..b2ec2674a19 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/MoveStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/MoveStatementAssert.java
@@ -53,11 +53,11 @@ public final class MoveStatementAssert {
     }
     
     private static void assertDirection(final SQLCaseAssertContext assertContext, final MoveStatement actual, final MoveStatementTestCase expected) {
-        if (null != expected.getDirection()) {
+        if (null == expected.getDirection()) {
+            assertFalse(assertContext.getText("Actual direction segment should not exist."), actual.getDirection().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual direction segment should exist."), actual.getDirection().isPresent());
             DirectionSegmentAssert.assertIs(assertContext, actual.getDirection().get(), expected.getDirection());
-        } else {
-            assertFalse(assertContext.getText("Actual direction segment should not exist."), actual.getDirection().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/RenameTableStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/RenameTableStatementAssert.java
index 205edce3682..c15ac7826fe 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/RenameTableStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/RenameTableStatementAssert.java
@@ -43,7 +43,9 @@ public final class RenameTableStatementAssert {
      * @param expected expected rename table statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final RenameTableStatement actual, final RenameTableStatementTestCase expected) {
-        if (null != expected.getRenames()) {
+        if (null == expected.getRenames()) {
+            assertNull(assertContext.getText("Actual rename table segment should exist."), actual.getRenameTables());
+        } else {
             assertNotNull(assertContext.getText("Actual rename table segment should exist."), actual.getRenameTables());
             int count = 0;
             for (RenameTableDefinitionSegment each : actual.getRenameTables()) {
@@ -52,8 +54,6 @@ public final class RenameTableStatementAssert {
                 TableAssert.assertIs(assertContext, each.getRenameTable(), expected.getRenames().get(count).getRenameTable());
                 count++;
             }
-        } else {
-            assertNull(assertContext.getText("Actual rename table segment should exist."), actual.getRenameTables());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountDatabaseDiscoveryRuleStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountDatabaseDiscoveryRuleStatementAssert.java
index 2a15f609fec..e0ed6c2ae74 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountDatabaseDiscoveryRuleStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountDatabaseDiscoveryRuleStatementAssert.java
@@ -41,11 +41,11 @@ public final class CountDatabaseDiscoveryRuleStatementAssert {
      * @param expected expected count database discovery rule statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final CountDatabaseDiscoveryRuleStatement actual, final CountDatabaseDiscoveryRuleStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountEncryptRuleStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountEncryptRuleStatementAssert.java
index 1fe119f7529..158d0bfd8b5 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountEncryptRuleStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountEncryptRuleStatementAssert.java
@@ -41,11 +41,11 @@ public final class CountEncryptRuleStatementAssert {
      * @param expected expected count encrypt rule statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final CountEncryptRuleStatement actual, final CountEncryptRuleStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountReadwriteSplittingRuleStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountReadwriteSplittingRuleStatementAssert.java
index 201809ac813..17abebcff68 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountReadwriteSplittingRuleStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountReadwriteSplittingRuleStatementAssert.java
@@ -41,11 +41,11 @@ public final class CountReadwriteSplittingRuleStatementAssert {
      * @param expected expected count readwrite splitting rule statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final CountReadwriteSplittingRuleStatement actual, final CountReadwriteSplittingRuleStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShadowRuleStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShadowRuleStatementAssert.java
index 683a84aa5e3..f22ce2f781b 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShadowRuleStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShadowRuleStatementAssert.java
@@ -41,11 +41,11 @@ public final class CountShadowRuleStatementAssert {
      * @param expected expected count shadow rule statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final CountShadowRuleStatement actual, final CountShadowRuleStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShardingRuleStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShardingRuleStatementAssert.java
index 642338c45ff..7a068bc569d 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShardingRuleStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountShardingRuleStatementAssert.java
@@ -41,11 +41,11 @@ public final class CountShardingRuleStatementAssert {
      * @param expected expected count sharding rule statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final CountShardingRuleStatement actual, final CountShardingRuleStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountSingleTableRuleStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountSingleTableRuleStatementAssert.java
index c3448b3b399..4b8f57e9c3a 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountSingleTableRuleStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/CountSingleTableRuleStatementAssert.java
@@ -41,11 +41,11 @@ public final class CountSingleTableRuleStatementAssert {
      * @param expected expected count single table rule statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final CountSingleTableRuleStatement actual, final CountSingleTableRuleStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDatabaseDiscoveryRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDatabaseDiscoveryRulesStatementAssert.java
index 244b390d553..ea296f8dd58 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDatabaseDiscoveryRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDatabaseDiscoveryRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowDatabaseDiscoveryRulesStatementAssert {
      * @param expected expected show database discovery rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowRulesStatement actual, final ShowDataBaseDiscoveryRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDefaultShardingStrategyStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDefaultShardingStrategyStatementAssert.java
index cd70c714b9d..82b9c20663b 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDefaultShardingStrategyStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowDefaultShardingStrategyStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowDefaultShardingStrategyStatementAssert {
      * @param expected expected show default sharding strategy statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowDefaultShardingStrategyStatement actual, final ShowDefaultShardingStrategyStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowEncryptRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowEncryptRulesStatementAssert.java
index 7feb3244071..9b424292a72 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowEncryptRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowEncryptRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowEncryptRulesStatementAssert {
      * @param expected expected show encrypt rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowEncryptRulesStatement actual, final ShowEncryptRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowReadwriteSplittingRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowReadwriteSplittingRulesStatementAssert.java
index f449b98b731..a0cce8724d2 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowReadwriteSplittingRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowReadwriteSplittingRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowReadwriteSplittingRulesStatementAssert {
      * @param expected expected show readwrite-splitting rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowReadwriteSplittingRulesStatement actual, final ShowReadwriteSplittingRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowRulesUsedResourceStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowRulesUsedResourceStatementAssert.java
index e3effa64a39..a8b7600a7d8 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowRulesUsedResourceStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowRulesUsedResourceStatementAssert.java
@@ -42,16 +42,16 @@ public final class ShowRulesUsedResourceStatementAssert {
      * @param expected expected show rules used resource statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowRulesUsedResourceStatement actual, final ShowRulesUsedResourceStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
-        if (!Strings.isNullOrEmpty(expected.getResourceName())) {
-            assertTrue(assertContext.getText("Actual resource should exist."), actual.getResourceName().isPresent());
-        } else {
+        if (Strings.isNullOrEmpty(expected.getResourceName())) {
             assertFalse(assertContext.getText("Actual resource should not exist."), actual.getResourceName().isPresent());
+        } else {
+            assertTrue(assertContext.getText("Actual resource should exist."), actual.getResourceName().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowAlgorithmsStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowAlgorithmsStatementAssert.java
index eda4bdb8df0..b7bd7dbdbad 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowAlgorithmsStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowAlgorithmsStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShadowAlgorithmsStatementAssert {
      * @param expected expected show shadow algorithms statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShadowAlgorithmsStatement actual, final ShowShadowAlgorithmsStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowRulesStatementAssert.java
index 4654cc87850..69bbbb66ed4 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShadowRulesStatementAssert {
      * @param expected expected show shadow rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShadowRulesStatement actual, final ShowShadowRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowTableRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowTableRulesStatementAssert.java
index 81c05bdc797..1f017a7f115 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowTableRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShadowTableRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShadowTableRulesStatementAssert {
      * @param expected expected show shadow table rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShadowTableRulesStatement actual, final ShowShadowTableRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAlgorithmsStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAlgorithmsStatementAssert.java
index e89f192db05..504b3adcc8f 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAlgorithmsStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAlgorithmsStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShardingAlgorithmsStatementAssert {
      * @param expected expected show sharding algorithms statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingAlgorithmsStatement actual, final ShowShardingAlgorithmsStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAuditorsStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAuditorsStatementAssert.java
index 47ec8bfd2b3..cdbbb91cd71 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAuditorsStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingAuditorsStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShardingAuditorsStatementAssert {
      * @param expected expected show sharding auditors statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingAuditorsStatement actual, final ShowShardingAuditorsStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBindingTableRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBindingTableRulesStatementAssert.java
index 2e87846b68b..de306074665 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBindingTableRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBindingTableRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShardingBindingTableRulesStatementAssert {
      * @param expected expected show sharding binding table rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingBindingTableRulesStatement actual, final ShowShardingBindingTableRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBroadcastTableRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBroadcastTableRulesStatementAssert.java
index aed8cad73e8..92e91c8529d 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBroadcastTableRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingBroadcastTableRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShardingBroadcastTableRulesStatementAssert {
      * @param expected expected show sharding broadcast table rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingBroadcastTableRulesStatement actual, final ShowShardingBroadcastTableRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableNodesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableNodesStatementAssert.java
index cc3292547d8..d6cd3d7e2b6 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableNodesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableNodesStatementAssert.java
@@ -42,14 +42,13 @@ public final class ShowShardingTableNodesStatementAssert {
      * @param actual actual show sharding table nodes statement
      * @param expected expected show sharding table nodes statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingTableNodesStatement actual,
-                                final ShowShardingTableNodesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingTableNodesStatement actual, final ShowShardingTableNodesStatementTestCase expected) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             assertThat(assertContext.getText("Table assertion error:"), actual.getTableName(), is(expected.getTable()));
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesStatementAssert.java
index 56621a347fa..1766cb15597 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowShardingTableRulesStatementAssert {
      * @param expected expected show database discovery rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingTableRulesStatement actual, final ShowShardingTableRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAlgorithmStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAlgorithmStatementAssert.java
index 6f26963bcb7..9978495df42 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAlgorithmStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAlgorithmStatementAssert.java
@@ -45,17 +45,17 @@ public final class ShowShardingTableRulesUsedAlgorithmStatementAssert {
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingTableRulesUsedAlgorithmStatement actual,
                                 final ShowShardingTableRulesUsedAlgorithmStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
-        if (!Strings.isNullOrEmpty(expected.getAlgorithmName())) {
+        if (Strings.isNullOrEmpty(expected.getAlgorithmName())) {
+            assertFalse(assertContext.getText("Actual algorithmName should not exist."), actual.getShardingAlgorithmName().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual algorithmName should exist."), actual.getShardingAlgorithmName().isPresent());
             assertThat(assertContext.getText("algorithmName assertion error:"), actual.getShardingAlgorithmName().get(), is(expected.getAlgorithmName()));
-        } else {
-            assertFalse(assertContext.getText("Actual algorithmName should not exist."), actual.getShardingAlgorithmName().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAuditorStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAuditorStatementAssert.java
index 5acd8eebbd6..ccea6ba6baa 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAuditorStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedAuditorStatementAssert.java
@@ -45,17 +45,17 @@ public final class ShowShardingTableRulesUsedAuditorStatementAssert {
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingTableRulesUsedAuditorStatement actual,
                                 final ShowShardingTableRulesUsedAuditorStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
-        if (!Strings.isNullOrEmpty(expected.getAuditor())) {
+        if (Strings.isNullOrEmpty(expected.getAuditor())) {
+            assertFalse(assertContext.getText("Actual auditor should not exist."), actual.getAuditorName().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual auditor should exist."), actual.getAuditorName().isPresent());
             assertThat(assertContext.getText("Auditor assertion error:"), actual.getAuditorName().get(), is(expected.getAuditor()));
-        } else {
-            assertFalse(assertContext.getText("Actual auditor should not exist."), actual.getAuditorName().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedKeyGeneratorStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedKeyGeneratorStatementAssert.java
index ea73e009a90..d22a0d68cac 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedKeyGeneratorStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowShardingTableRulesUsedKeyGeneratorStatementAssert.java
@@ -45,17 +45,17 @@ public final class ShowShardingTableRulesUsedKeyGeneratorStatementAssert {
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowShardingTableRulesUsedKeyGeneratorStatement actual,
                                 final ShowShardingTableRulesUsedKeyGeneratorStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
-        if (!Strings.isNullOrEmpty(expected.getKeyGenerator())) {
+        if (Strings.isNullOrEmpty(expected.getKeyGenerator())) {
+            assertFalse(assertContext.getText("Actual keyGenerator should not exist."), actual.getKeyGeneratorName().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual keyGenerator should exist."), actual.getKeyGeneratorName().isPresent());
             assertThat(assertContext.getText("KeyGenerator assertion error:"), actual.getKeyGeneratorName().get(), is(expected.getKeyGenerator()));
-        } else {
-            assertFalse(assertContext.getText("Actual keyGenerator should not exist."), actual.getKeyGeneratorName().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableRulesStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableRulesStatementAssert.java
index 6269d22c76b..77c102f8bd4 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableRulesStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableRulesStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowSingleTableRulesStatementAssert {
      * @param expected expected show single table rules statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowSingleTableRulesStatement actual, final ShowSingleTableRulesStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableStatementAssert.java
index f40957481c5..b6834d61624 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowSingleTableStatementAssert {
      * @param expected expected show single table statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowSingleTableStatement actual, final ShowSingleTableStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAlgorithmsStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAlgorithmsStatementAssert.java
index d5bc637bae8..e2d7ca16e06 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAlgorithmsStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAlgorithmsStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowUnusedShardingAlgorithmsStatementAssert {
      * @param expected expected show unused sharding algorithms statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowUnusedShardingAlgorithmsStatement actual, final ShowUnusedShardingAlgorithmsStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAuditorsStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAuditorsStatementAssert.java
index fb92639d0ba..77bc849a548 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAuditorsStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAuditorsStatementAssert.java
@@ -17,9 +17,6 @@
 
 package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowUnusedShardingAuditorsStatement;
@@ -27,6 +24,9 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAs
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.database.DatabaseAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowUnusedShardingAuditorsStatementTestCase;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 /**
  * Show unused sharding auditors statement assert.
  */
@@ -41,11 +41,11 @@ public final class ShowUnusedShardingAuditorsStatementAssert {
      * @param expected expected show unused sharding auditors statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowUnusedShardingAuditorsStatement actual, final ShowUnusedShardingAuditorsStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingKeyGeneratorsStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingKeyGeneratorsStatementAssert.java
index 242084de078..b2b101b1346 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingKeyGeneratorsStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingKeyGeneratorsStatementAssert.java
@@ -41,11 +41,11 @@ public final class ShowUnusedShardingKeyGeneratorsStatementAssert {
      * @param expected expected show unused sharding key generators statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowUnusedShardingKeyGeneratorsStatement actual, final ShowUnusedShardingKeyGeneratorsStatementTestCase expected) {
-        if (null != expected.getDatabase()) {
+        if (null == expected.getDatabase()) {
+            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual database should exist."), actual.getDatabase().isPresent());
             DatabaseAssert.assertIs(assertContext, actual.getDatabase().get(), expected.getDatabase());
-        } else {
-            assertFalse(assertContext.getText("Actual database should not exist."), actual.getDatabase().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/CopyStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/CopyStatementAssert.java
index 7a0a0eb7b99..f197e3eae41 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/CopyStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/CopyStatementAssert.java
@@ -65,11 +65,11 @@ public final class CopyStatementAssert {
     
     private static void assertColumns(final SQLCaseAssertContext assertContext, final CopyStatement actual, final CopyStatementTestCase expected) {
         Collection<ColumnSegment> columnSegments = CopyStatementHandler.getColumns(actual);
-        if (null != expected.getColumns() && !expected.getColumns().getColumns().isEmpty()) {
+        if (null == expected.getColumns() || expected.getColumns().getColumns().isEmpty()) {
+            assertTrue(assertContext.getText("Actual column segments should not exist."), columnSegments.isEmpty());
+        } else {
             assertFalse(assertContext.getText("Actual column segments should exist."), columnSegments.isEmpty());
             ColumnAssert.assertIs(assertContext, columnSegments, expected.getColumns().getColumns());
-        } else {
-            assertTrue(assertContext.getText("Actual column segments should not exist."), columnSegments.isEmpty());
         }
     }
     
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/DeleteStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/DeleteStatementAssert.java
index 8f17f751053..a03f65714be 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/DeleteStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/DeleteStatementAssert.java
@@ -71,11 +71,11 @@ public final class DeleteStatementAssert {
     
     private static void assertWithClause(final SQLCaseAssertContext assertContext, final DeleteStatement actual, final DeleteStatementTestCase expected) {
         Optional<WithSegment> withSegment = DeleteStatementHandler.getWithSegment(actual);
-        if (null != expected.getWithClause()) {
+        if (null == expected.getWithClause()) {
+            assertFalse(assertContext.getText("Actual with segment should not exist."), withSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual with segment should exist."), withSegment.isPresent());
             WithClauseAssert.assertIs(assertContext, withSegment.get(), expected.getWithClause());
-        } else {
-            assertFalse(assertContext.getText("Actual with segment should not exist."), withSegment.isPresent());
         }
     }
     
@@ -100,41 +100,41 @@ public final class DeleteStatementAssert {
     
     private static void assertOutput(final SQLCaseAssertContext assertContext, final DeleteStatement actual, final DeleteStatementTestCase expected) {
         Optional<OutputSegment> outputSegment = DeleteStatementHandler.getOutputSegment(actual);
-        if (null != expected.getOutputClause()) {
+        if (null == expected.getOutputClause()) {
+            assertFalse(assertContext.getText("Actual output segment should not exist."), outputSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual output segment should exist."), outputSegment.isPresent());
             OutputClauseAssert.assertIs(assertContext, outputSegment.get(), expected.getOutputClause());
-        } else {
-            assertFalse(assertContext.getText("Actual output segment should not exist."), outputSegment.isPresent());
         }
     }
     
     private static void assertWhereClause(final SQLCaseAssertContext assertContext, final DeleteStatement actual, final DeleteStatementTestCase expected) {
-        if (null != expected.getWhereClause()) {
+        if (null == expected.getWhereClause()) {
+            assertFalse(assertContext.getText("Actual where segment should not exist."), actual.getWhere().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual where segment should exist."), actual.getWhere().isPresent());
             WhereClauseAssert.assertIs(assertContext, actual.getWhere().get(), expected.getWhereClause());
-        } else {
-            assertFalse(assertContext.getText("Actual where segment should not exist."), actual.getWhere().isPresent());
         }
     }
     
     private static void assertOrderByClause(final SQLCaseAssertContext assertContext, final DeleteStatement actual, final DeleteStatementTestCase expected) {
         Optional<OrderBySegment> orderBySegment = DeleteStatementHandler.getOrderBySegment(actual);
-        if (null != expected.getOrderByClause()) {
+        if (null == expected.getOrderByClause()) {
+            assertFalse(assertContext.getText("Actual order by segment should not exist."), orderBySegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual order by segment should exist."), orderBySegment.isPresent());
             OrderByClauseAssert.assertIs(assertContext, orderBySegment.get(), expected.getOrderByClause());
-        } else {
-            assertFalse(assertContext.getText("Actual order by segment should not exist."), orderBySegment.isPresent());
         }
     }
     
     private static void assertLimitClause(final SQLCaseAssertContext assertContext, final DeleteStatement actual, final DeleteStatementTestCase expected) {
         Optional<LimitSegment> limitSegment = DeleteStatementHandler.getLimitSegment(actual);
-        if (null != expected.getLimitClause()) {
+        if (null == expected.getLimitClause()) {
+            assertFalse(assertContext.getText("Actual limit segment should not exist."), limitSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual limit segment should exist."), limitSegment.isPresent());
             LimitClauseAssert.assertRowCount(assertContext, limitSegment.get().getRowCount().orElse(null), expected.getLimitClause().getRowCount());
             SQLSegmentAssert.assertIs(assertContext, limitSegment.get(), expected.getLimitClause());
-        } else {
-            assertFalse(assertContext.getText("Actual limit segment should not exist."), limitSegment.isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/InsertStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/InsertStatementAssert.java
index 6968d7cb599..4bcdf6bb8a5 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/InsertStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/InsertStatementAssert.java
@@ -71,97 +71,97 @@ public final class InsertStatementAssert {
     }
     
     private static void assertTable(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
-        if (null != expected.getTable()) {
-            TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
-        } else {
+        if (null == expected.getTable()) {
             assertNull(assertContext.getText("Actual table should not exist."), actual.getTable());
+        } else {
+            TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
         }
     }
     
     private static void assertInsertColumnsClause(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
-        if (null != expected.getInsertColumnsClause()) {
+        if (null == expected.getInsertColumnsClause()) {
+            assertFalse(assertContext.getText("Actual insert columns segment should not exist."), actual.getInsertColumns().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual insert columns segment should exist."), actual.getInsertColumns().isPresent());
             InsertColumnsClauseAssert.assertIs(assertContext, actual.getInsertColumns().get(), expected.getInsertColumnsClause());
-        } else {
-            assertFalse(assertContext.getText("Actual insert columns segment should not exist."), actual.getInsertColumns().isPresent());
         }
     }
     
     private static void assertInsertValuesClause(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
-        if (null != expected.getInsertValuesClause()) {
+        if (null == expected.getInsertValuesClause()) {
+            assertTrue(assertContext.getText("Actual insert values segment should not exist."), actual.getValues().isEmpty());
+        } else {
             assertFalse(assertContext.getText("Actual insert values segment should exist."), actual.getValues().isEmpty());
             InsertValuesClauseAssert.assertIs(assertContext, actual.getValues(), expected.getInsertValuesClause());
-        } else {
-            assertTrue(assertContext.getText("Actual insert values segment should not exist."), actual.getValues().isEmpty());
         }
     }
     
     private static void assertSetClause(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
         Optional<SetAssignmentSegment> setAssignmentSegment = InsertStatementHandler.getSetAssignmentSegment(actual);
-        if (null != expected.getSetClause()) {
+        if (null == expected.getSetClause()) {
+            assertFalse(assertContext.getText("Actual set assignment segment should not exist."), setAssignmentSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual set assignment segment should exist."), setAssignmentSegment.isPresent());
             SetClauseAssert.assertIs(assertContext, setAssignmentSegment.get(), expected.getSetClause());
-        } else {
-            assertFalse(assertContext.getText("Actual set assignment segment should not exist."), setAssignmentSegment.isPresent());
         }
     }
     
     private static void assertInsertSelectClause(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
-        if (null != expected.getSelectTestCase()) {
+        if (null == expected.getSelectTestCase()) {
+            assertFalse(assertContext.getText("Actual insert select segment should not exist."), actual.getInsertSelect().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual insert select segment should exist."), actual.getInsertSelect().isPresent());
             SelectStatementAssert.assertIs(assertContext, actual.getInsertSelect().get().getSelect(), expected.getSelectTestCase());
-        } else {
-            assertFalse(assertContext.getText("Actual insert select segment should not exist."), actual.getInsertSelect().isPresent());
         }
     }
     
     private static void assertOnDuplicateKeyColumns(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
         Optional<OnDuplicateKeyColumnsSegment> onDuplicateKeyColumnsSegment = InsertStatementHandler.getOnDuplicateKeyColumnsSegment(actual);
-        if (null != expected.getOnDuplicateKeyColumns()) {
+        if (null == expected.getOnDuplicateKeyColumns()) {
+            assertFalse(assertContext.getText("Actual on duplicate key columns segment should not exist."), onDuplicateKeyColumnsSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual on duplicate key columns segment should exist."), onDuplicateKeyColumnsSegment.isPresent());
             OnDuplicateKeyColumnsAssert.assertIs(assertContext, onDuplicateKeyColumnsSegment.get(), expected.getOnDuplicateKeyColumns());
-        } else {
-            assertFalse(assertContext.getText("Actual on duplicate key columns segment should not exist."), onDuplicateKeyColumnsSegment.isPresent());
         }
     }
     
     private static void assertWithClause(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
         Optional<WithSegment> withSegment = InsertStatementHandler.getWithSegment(actual);
-        if (null != expected.getWithClause()) {
+        if (null == expected.getWithClause()) {
+            assertFalse(assertContext.getText("Actual with segment should not exist."), withSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual with segment should exist."), withSegment.isPresent());
             WithClauseAssert.assertIs(assertContext, withSegment.get(), expected.getWithClause());
-        } else {
-            assertFalse(assertContext.getText("Actual with segment should not exist."), withSegment.isPresent());
         }
     }
     
     private static void assertOutputClause(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
         Optional<OutputSegment> outputSegment = InsertStatementHandler.getOutputSegment(actual);
-        if (null != expected.getOutputClause()) {
+        if (null == expected.getOutputClause()) {
+            assertFalse(assertContext.getText("Actual output segment should not exist."), outputSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual output segment should exist."), outputSegment.isPresent());
             OutputClauseAssert.assertIs(assertContext, outputSegment.get(), expected.getOutputClause());
-        } else {
-            assertFalse(assertContext.getText("Actual output segment should not exist."), outputSegment.isPresent());
         }
     }
     
     private static void assertInsertMultiTableElement(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
         Optional<InsertMultiTableElementSegment> insertTableElementSegment = InsertStatementHandler.getInsertMultiTableElementSegment(actual);
-        if (null != expected.getInsertTableElement()) {
+        if (null == expected.getInsertTableElement()) {
+            assertFalse(assertContext.getText("Actual insert multi table element segment should not exist."), insertTableElementSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual insert multi table element segment should exist."), insertTableElementSegment.isPresent());
             InsertMultiTableElementAssert.assertIs(assertContext, insertTableElementSegment.get(), expected.getInsertTableElement());
-        } else {
-            assertFalse(assertContext.getText("Actual insert multi table element segment should not exist."), insertTableElementSegment.isPresent());
         }
     }
     
     private static void assertSelectSubqueryClause(final SQLCaseAssertContext assertContext, final InsertStatement actual, final InsertStatementTestCase expected) {
         Optional<SubquerySegment> selectSubquery = InsertStatementHandler.getSelectSubquery(actual);
-        if (null != expected.getSelectSubquery()) {
+        if (null == expected.getSelectSubquery()) {
+            assertFalse(assertContext.getText("Actual select subquery segment should not exist."), selectSubquery.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual select subquery segment should exist."), selectSubquery.isPresent());
             SelectStatementAssert.assertIs(assertContext, selectSubquery.get().getSelect(), expected.getSelectSubquery());
-        } else {
-            assertFalse(assertContext.getText("Actual select subquery segment should not exist."), selectSubquery.isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java
index 3a3fffb0e4a..ec8163e717a 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/SelectStatementAssert.java
@@ -82,20 +82,20 @@ public final class SelectStatementAssert {
     
     private static void assertWindowClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
         Optional<WindowSegment> windowSegment = SelectStatementHandler.getWindowSegment(actual);
-        if (null != expected.getWindowClause()) {
+        if (null == expected.getWindowClause()) {
+            assertFalse(assertContext.getText("Actual window segment should not exist."), windowSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual window segment should exist."), windowSegment.isPresent());
             SQLSegmentAssert.assertIs(assertContext, windowSegment.get(), expected.getWindowClause());
-        } else {
-            assertFalse(assertContext.getText("Actual window segment should not exist."), windowSegment.isPresent());
         }
     }
     
     private static void assertHavingClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
-        if (null != expected.getHavingClause()) {
+        if (null == expected.getHavingClause()) {
+            assertFalse(assertContext.getText("Actual having segment should not exist."), actual.getHaving().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual having segment should exist."), actual.getHaving().isPresent());
             HavingClauseAssert.assertIs(assertContext, actual.getHaving().get(), expected.getHavingClause());
-        } else {
-            assertFalse(assertContext.getText("Actual having segment should not exist."), actual.getHaving().isPresent());
         }
     }
     
@@ -107,77 +107,77 @@ public final class SelectStatementAssert {
     }
     
     private static void assertTable(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
-        if (null != expected.getFrom()) {
-            TableAssert.assertIs(assertContext, actual.getFrom(), expected.getFrom());
-        } else {
+        if (null == expected.getFrom()) {
             assertNull(assertContext.getText("Actual simple-table should not exist."), actual.getFrom());
+        } else {
+            TableAssert.assertIs(assertContext, actual.getFrom(), expected.getFrom());
         }
         if (actual instanceof MySQLSelectStatement) {
-            if (null != expected.getSimpleTable()) {
+            if (null == expected.getSimpleTable()) {
+                assertFalse(assertContext.getText("Actual simple-table should not exist."), ((MySQLSelectStatement) actual).getTable().isPresent());
+            } else {
                 Optional<SimpleTableSegment> table = ((MySQLSelectStatement) actual).getTable();
                 TableAssert.assertIs(assertContext, table.orElse(null), expected.getSimpleTable());
-            } else {
-                assertFalse(assertContext.getText("Actual simple-table should not exist."), ((MySQLSelectStatement) actual).getTable().isPresent());
             }
         }
     }
     
     private static void assertWhereClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
-        if (null != expected.getWhereClause()) {
+        if (null == expected.getWhereClause()) {
+            assertFalse(assertContext.getText("Actual where segment should not exist."), actual.getWhere().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual where segment should exist."), actual.getWhere().isPresent());
             WhereClauseAssert.assertIs(assertContext, actual.getWhere().get(), expected.getWhereClause());
-        } else {
-            assertFalse(assertContext.getText("Actual where segment should not exist."), actual.getWhere().isPresent());
         }
     }
     
     private static void assertGroupByClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
-        if (null != expected.getGroupByClause()) {
+        if (null == expected.getGroupByClause()) {
+            assertFalse(assertContext.getText("Actual group by segment should not exist."), actual.getGroupBy().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual group by segment should exist."), actual.getGroupBy().isPresent());
             GroupByClauseAssert.assertIs(assertContext, actual.getGroupBy().get(), expected.getGroupByClause());
-        } else {
-            assertFalse(assertContext.getText("Actual group by segment should not exist."), actual.getGroupBy().isPresent());
         }
     }
     
     private static void assertOrderByClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
-        if (null != expected.getOrderByClause()) {
+        if (null == expected.getOrderByClause()) {
+            assertFalse(assertContext.getText("Actual order by segment should not exist."), actual.getOrderBy().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual order by segment should exist."), actual.getOrderBy().isPresent());
             OrderByClauseAssert.assertIs(assertContext, actual.getOrderBy().get(), expected.getOrderByClause());
-        } else {
-            assertFalse(assertContext.getText("Actual order by segment should not exist."), actual.getOrderBy().isPresent());
         }
     }
     
     private static void assertLimitClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
         Optional<LimitSegment> limitSegment = SelectStatementHandler.getLimitSegment(actual);
-        if (null != expected.getLimitClause()) {
+        if (null == expected.getLimitClause()) {
+            assertFalse(assertContext.getText("Actual limit segment should not exist."), limitSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual limit segment should exist."), limitSegment.isPresent());
             LimitClauseAssert.assertOffset(assertContext, limitSegment.get().getOffset().orElse(null), expected.getLimitClause().getOffset());
             LimitClauseAssert.assertRowCount(assertContext, limitSegment.get().getRowCount().orElse(null), expected.getLimitClause().getRowCount());
             SQLSegmentAssert.assertIs(assertContext, limitSegment.get(), expected.getLimitClause());
-        } else {
-            assertFalse(assertContext.getText("Actual limit segment should not exist."), limitSegment.isPresent());
         }
     }
     
     private static void assertLockClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
         Optional<LockSegment> actualLock = SelectStatementHandler.getLockSegment(actual);
-        if (null != expected.getLockClause()) {
+        if (null == expected.getLockClause()) {
+            assertFalse(assertContext.getText("Actual lock segment should not exist."), actualLock.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual lock segment should exist."), actualLock.isPresent());
             LockClauseAssert.assertIs(assertContext, actualLock.get(), expected.getLockClause());
-        } else {
-            assertFalse(assertContext.getText("Actual lock segment should not exist."), actualLock.isPresent());
         }
     }
     
     private static void assertWithClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
         Optional<WithSegment> withSegment = SelectStatementHandler.getWithSegment(actual);
-        if (null != expected.getWithClause()) {
+        if (null == expected.getWithClause()) {
+            assertFalse(assertContext.getText("Actual with segment should not exist."), withSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual with segment should exist."), withSegment.isPresent());
             WithClauseAssert.assertIs(assertContext, withSegment.get(), expected.getWithClause());
-        } else {
-            assertFalse(assertContext.getText("Actual with segment should not exist."), withSegment.isPresent());
         }
     }
     
@@ -199,11 +199,11 @@ public final class SelectStatementAssert {
     
     private static void assertModelClause(final SQLCaseAssertContext assertContext, final SelectStatement actual, final SelectStatementTestCase expected) {
         Optional<ModelSegment> modelSegment = SelectStatementHandler.getModelSegment(actual);
-        if (null != expected.getModelClause()) {
+        if (null == expected.getModelClause()) {
+            assertFalse(assertContext.getText("Actual model segment should not exist."), modelSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual model segment should exist."), modelSegment.isPresent());
             ModelClauseAssert.assertIs(assertContext, modelSegment.get(), expected.getModelClause());
-        } else {
-            assertFalse(assertContext.getText("Actual model segment should not exist."), modelSegment.isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/UpdateStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/UpdateStatementAssert.java
index 548ba03d045..30891c52918 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/UpdateStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dml/impl/UpdateStatementAssert.java
@@ -60,10 +60,10 @@ public final class UpdateStatementAssert {
     }
     
     private static void assertTable(final SQLCaseAssertContext assertContext, final UpdateStatement actual, final UpdateStatementTestCase expected) {
-        if (null != expected.getTable()) {
-            TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
-        } else {
+        if (null == expected.getTable()) {
             assertNull(assertContext.getText("Actual from should not exist."), actual.getTable());
+        } else {
+            TableAssert.assertIs(assertContext, actual.getTable(), expected.getTable());
         }
     }
     
@@ -72,32 +72,32 @@ public final class UpdateStatementAssert {
     }
     
     private static void assertWhereClause(final SQLCaseAssertContext assertContext, final UpdateStatement actual, final UpdateStatementTestCase expected) {
-        if (null != expected.getWhereClause()) {
+        if (null == expected.getWhereClause()) {
+            assertFalse(assertContext.getText("Actual where segment should not exist."), actual.getWhere().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual where segment should exist."), actual.getWhere().isPresent());
             WhereClauseAssert.assertIs(assertContext, actual.getWhere().get(), expected.getWhereClause());
-        } else {
-            assertFalse(assertContext.getText("Actual where segment should not exist."), actual.getWhere().isPresent());
         }
     }
     
     private static void assertOrderByClause(final SQLCaseAssertContext assertContext, final UpdateStatement actual, final UpdateStatementTestCase expected) {
         Optional<OrderBySegment> orderBySegment = UpdateStatementHandler.getOrderBySegment(actual);
-        if (null != expected.getOrderByClause()) {
+        if (null == expected.getOrderByClause()) {
+            assertFalse(assertContext.getText("Actual order by segment should not exist."), orderBySegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual order by segment should exist."), orderBySegment.isPresent());
             OrderByClauseAssert.assertIs(assertContext, orderBySegment.get(), expected.getOrderByClause());
-        } else {
-            assertFalse(assertContext.getText("Actual order by segment should not exist."), orderBySegment.isPresent());
         }
     }
     
     private static void assertLimitClause(final SQLCaseAssertContext assertContext, final UpdateStatement actual, final UpdateStatementTestCase expected) {
         Optional<LimitSegment> limitSegment = UpdateStatementHandler.getLimitSegment(actual);
-        if (null != expected.getLimitClause()) {
+        if (null == expected.getLimitClause()) {
+            assertFalse(assertContext.getText("Actual limit segment should not exist."), limitSegment.isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual limit segment should exist."), limitSegment.isPresent());
             LimitClauseAssert.assertRowCount(assertContext, limitSegment.get().getRowCount().orElse(null), expected.getLimitClause().getRowCount());
             SQLSegmentAssert.assertIs(assertContext, limitSegment.get(), expected.getLimitClause());
-        } else {
-            assertFalse(assertContext.getText("Actual limit segment should not exist."), limitSegment.isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/LockStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/LockStatementAssert.java
index 4dac7450f39..375f83610b2 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/LockStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/LockStatementAssert.java
@@ -46,27 +46,27 @@ public final class LockStatementAssert {
     public static void assertIs(final SQLCaseAssertContext assertContext, final LockStatement actual, final LockStatementTestCase expected) {
         if (actual instanceof MySQLLockStatement) {
             MySQLLockStatement lockStatement = (MySQLLockStatement) actual;
-            if (null != expected.getTables() && !expected.getTables().isEmpty()) {
+            if (null == expected.getTables() || expected.getTables().isEmpty()) {
+                assertTrue(assertContext.getText("Actual lock statement should not exist."), lockStatement.getTables().isEmpty());
+            } else {
                 assertFalse(assertContext.getText("Actual lock statement should exist."), lockStatement.getTables().isEmpty());
                 int count = 0;
                 for (SimpleTableSegment each : lockStatement.getTables()) {
                     TableAssert.assertIs(assertContext, each, expected.getTables().get(count));
                     count++;
                 }
-            } else {
-                assertTrue(assertContext.getText("Actual lock statement should not exist."), lockStatement.getTables().isEmpty());
             }
         } else if (actual instanceof PostgreSQLLockStatement) {
             PostgreSQLLockStatement lockStatement = (PostgreSQLLockStatement) actual;
-            if (null != expected.getTables() && !expected.getTables().isEmpty()) {
+            if (null == expected.getTables() || expected.getTables().isEmpty()) {
+                assertTrue(assertContext.getText("Actual lock statement should not exist."), lockStatement.getTables().isEmpty());
+            } else {
                 assertFalse(assertContext.getText("Actual lock statement should exist."), lockStatement.getTables().isEmpty());
                 int count = 0;
                 for (SimpleTableSegment each : lockStatement.getTables()) {
                     TableAssert.assertIs(assertContext, each, expected.getTables().get(count));
                     count++;
                 }
-            } else {
-                assertTrue(assertContext.getText("Actual lock statement should not exist."), lockStatement.getTables().isEmpty());
             }
         }
     }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/RollbackStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/RollbackStatementAssert.java
index 317c4dfb0d8..eb08b5c26ee 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/RollbackStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/RollbackStatementAssert.java
@@ -42,11 +42,11 @@ public final class RollbackStatementAssert {
      * @param expected expected rollback statement test case
      */
     public static void assertIs(final SQLCaseAssertContext assertContext, final RollbackStatement actual, final RollbackStatementTestCase expected) {
-        if (null != expected.getSavepointName()) {
+        if (null == expected.getSavepointName()) {
+            assertFalse(assertContext.getText("Actual savepoint name should not exist."), actual.getSavepointName().isPresent());
+        } else {
             assertTrue(assertContext.getText("Actual savepoint name should exist."), actual.getSavepointName().isPresent());
             assertThat(assertContext.getText("Savepoint name assertion error."), actual.getSavepointName().get(), is(expected.getSavepointName()));
-        } else {
-            assertFalse(assertContext.getText("Actual savepoint name should not exist."), actual.getSavepointName().isPresent());
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java
index 5d2c56534aa..37b2d098257 100644
--- a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java
+++ b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java
@@ -89,10 +89,9 @@ public final class PipelineContextUtil {
     }
     
     private static void mockModeConfig() {
-        if (null != PipelineContext.getModeConfig()) {
-            return;
+        if (null == PipelineContext.getModeConfig()) {
+            PipelineContext.initModeConfig(createModeConfig());
         }
-        PipelineContext.initModeConfig(createModeConfig());
     }
     
     private static ModeConfiguration createModeConfig() {
diff --git a/shardingsphere-test/shardingsphere-test-common/src/main/java/org/apache/shardingsphere/test/runner/parallel/DefaultParallelRunnerExecutorFactory.java b/shardingsphere-test/shardingsphere-test-common/src/main/java/org/apache/shardingsphere/test/runner/parallel/DefaultParallelRunnerExecutorFactory.java
index c06316d7a4f..662e14ae40d 100644
--- a/shardingsphere-test/shardingsphere-test-common/src/main/java/org/apache/shardingsphere/test/runner/parallel/DefaultParallelRunnerExecutorFactory.java
+++ b/shardingsphere-test/shardingsphere-test-common/src/main/java/org/apache/shardingsphere/test/runner/parallel/DefaultParallelRunnerExecutorFactory.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.test.runner.parallel.impl.DefaultParallelRunner
 
 import java.util.Collection;
 import java.util.LinkedList;
-import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -80,10 +79,10 @@ public class DefaultParallelRunnerExecutorFactory<T> implements ParallelRunnerEx
      * @return all executors
      */
     public Collection<ParallelRunnerExecutor> getAllExecutors() {
-        List<ParallelRunnerExecutor> executors = new LinkedList<>(this.executors.values());
+        Collection<ParallelRunnerExecutor> result = new LinkedList<>(executors.values());
         if (null != defaultExecutor) {
-            executors.add(defaultExecutor);
+            result.add(defaultExecutor);
         }
-        return executors;
+        return result;
     }
 }