You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2022/06/10 15:00:55 UTC

[shardingsphere] branch master updated: Refactor UpdatableRALBackendHandler (#18289)

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

panjuan 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 b11676fc415 Refactor UpdatableRALBackendHandler (#18289)
b11676fc415 is described below

commit b11676fc415b7ea46affeb5f45af4d2f4963ab5f
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Jun 10 23:00:47 2022 +0800

    Refactor UpdatableRALBackendHandler (#18289)
---
 .../distsql/ral/QueryableRALBackendHandler.java    | 44 ++++++++---------
 .../text/distsql/ral/RALBackendHandler.java        | 14 +-----
 .../text/distsql/ral/RALBackendHandlerFactory.java |  4 +-
 .../distsql/ral/UpdatableRALBackendHandler.java    | 11 +++--
 .../text/distsql/ral/advanced/FormatHandler.java   |  2 +-
 .../ral/advanced/ParseDistSQLBackendHandler.java   | 11 ++---
 .../ral/common/updatable/AlterInstanceHandler.java | 19 +++-----
 .../updatable/AlterSQLParserRuleHandler.java       |  2 +-
 .../common/updatable/AlterTrafficRuleHandler.java  |  6 +--
 .../updatable/AlterTransactionRuleHandler.java     |  2 +-
 .../ral/common/updatable/ApplyDistSQLHandler.java  |  2 +-
 .../common/updatable/CreateTrafficRuleHandler.java | 10 ++--
 .../common/updatable/DiscardDistSQLHandler.java    |  2 +-
 .../common/updatable/DropTrafficRuleHandler.java   | 12 ++---
 .../ImportDatabaseConfigurationHandler.java        | 55 ++++++++++------------
 .../ral/common/updatable/LabelInstanceHandler.java |  8 ++--
 .../common/updatable/PrepareDistSQLHandler.java    |  2 +-
 .../updatable/RefreshTableMetadataHandler.java     | 29 ++++++------
 .../common/updatable/SetInstanceStatusHandler.java |  6 +--
 .../SetReadwriteSplittingStatusHandler.java        |  8 ++--
 .../ral/common/updatable/SetVariableHandler.java   | 18 +++----
 .../common/updatable/UnlabelInstanceHandler.java   | 10 ++--
 22 files changed, 127 insertions(+), 150 deletions(-)

diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
index 4dbe4e9eed7..3139e9a8f46 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
@@ -18,13 +18,15 @@
 package org.apache.shardingsphere.proxy.backend.text.distsql.ral;
 
 import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
+import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseCell;
 import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
 import org.apache.shardingsphere.proxy.backend.response.data.impl.TextQueryResponseCell;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
-import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
+import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
 import org.apache.shardingsphere.sharding.merge.dal.common.MultipleLocalDataMergedResult;
 
 import java.sql.SQLException;
@@ -43,15 +45,23 @@ public abstract class QueryableRALBackendHandler<E extends RALStatement> extends
     
     private List<QueryHeader> queryHeaders;
     
-    private MultipleLocalDataMergedResult mergedResult;
+    private MergedResult mergedResult;
     
     @Override
-    protected final ResponseHeader handle(final ContextManager contextManager, final E sqlStatement) throws SQLException {
-        queryHeaders = createQueryHeader(getColumnNames());
-        mergedResult = createMergedResult(getRows(contextManager));
+    public final ResponseHeader execute() throws SQLException {
+        queryHeaders = createQueryHeader();
+        mergedResult = createMergedResult();
         return new QueryResponseHeader(queryHeaders);
     }
     
+    private List<QueryHeader> createQueryHeader() {
+        return getColumnNames().stream().map(each -> new QueryHeader("", "", each, each, Types.CHAR, "CHAR", 255, 0, false, false, false, false)).collect(Collectors.toList());
+    }
+    
+    private MergedResult createMergedResult() throws SQLException {
+        return new MultipleLocalDataMergedResult(getRows(ProxyContext.getInstance().getContextManager()));
+    }
+    
     @Override
     public final boolean next() throws SQLException {
         return null != mergedResult && mergedResult.next();
@@ -59,28 +69,14 @@ public abstract class QueryableRALBackendHandler<E extends RALStatement> extends
     
     @Override
     public final Collection<Object> getRowData() throws SQLException {
-        return createQueryResponseRow(queryHeaders.size(), mergedResult).getData();
+        List<QueryResponseCell> cells = new ArrayList<>(queryHeaders.size());
+        for (int i = 0; i < queryHeaders.size(); i++) {
+            cells.add(new TextQueryResponseCell(mergedResult.getValue(i + 1, Object.class)));
+        }
+        return new QueryResponseRow(cells).getData();
     }
     
     protected abstract Collection<String> getColumnNames();
     
     protected abstract Collection<List<Object>> getRows(ContextManager contextManager) throws SQLException;
-    
-    private MultipleLocalDataMergedResult createMergedResult(final Collection<List<Object>> rows) {
-        return new MultipleLocalDataMergedResult(rows);
-    }
-    
-    private List<QueryHeader> createQueryHeader(final Collection<String> columnNames) {
-        return columnNames.stream()
-                .map(each -> new QueryHeader("", "", each, each, Types.CHAR, "CHAR", 255, 0, false, false, false, false))
-                .collect(Collectors.toList());
-    }
-    
-    private QueryResponseRow createQueryResponseRow(final int size, final MultipleLocalDataMergedResult mergedResult) {
-        List<QueryResponseCell> cells = new ArrayList<>(size);
-        for (int i = 0; i < size; i++) {
-            cells.add(new TextQueryResponseCell(mergedResult.getValue(i + 1, Object.class)));
-        }
-        return new QueryResponseRow(cells);
-    }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java
index abe0e6361a5..342f1bb3481 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandler.java
@@ -19,14 +19,9 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.ral;
 
 import lombok.Getter;
 import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
-import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandler;
 
-import java.sql.SQLException;
-
 /**
  * RAL backend handler.
  */
@@ -43,15 +38,8 @@ public abstract class RALBackendHandler<E extends RALStatement> implements TextP
      * @param sqlStatement SQL statement
      * @param connectionSession connection session
      */
-    public void init(final RALStatement sqlStatement, final ConnectionSession connectionSession) {
+    public final void init(final RALStatement sqlStatement, final ConnectionSession connectionSession) {
         this.sqlStatement = (E) sqlStatement;
         this.connectionSession = connectionSession;
     }
-    
-    @Override
-    public final ResponseHeader execute() throws SQLException {
-        return handle(ProxyContext.getInstance().getContextManager(), sqlStatement);
-    }
-    
-    protected abstract ResponseHeader handle(ContextManager contextManager, E sqlStatement) throws SQLException;
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java
index 5d7ed1f8fa7..b7e0c35a6d1 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/RALBackendHandlerFactory.java
@@ -153,7 +153,7 @@ public final class RALBackendHandlerFactory {
         if (sqlStatement instanceof UpdatableScalingRALStatement) {
             return new UpdatableScalingRALBackendHandler((UpdatableScalingRALStatement) sqlStatement);
         }
-        return getHandler(sqlStatement, connectionSession);
+        return createRALBackendHandler(sqlStatement, connectionSession);
     }
     
     private static RALBackendHandler<?> newInstance(final Class<? extends RALBackendHandler> clazz) {
@@ -164,7 +164,7 @@ public final class RALBackendHandlerFactory {
         }
     }
     
-    private static RALBackendHandler<?> getHandler(final RALStatement sqlStatement, final ConnectionSession connectionSession) {
+    private static RALBackendHandler<?> createRALBackendHandler(final RALStatement sqlStatement, final ConnectionSession connectionSession) {
         Class<? extends RALBackendHandler> clazz = HANDLERS.get(sqlStatement.getClass().getName());
         if (null == clazz) {
             throw new UnsupportedOperationException(String.format("Unsupported SQL statement : %s", sqlStatement.getClass().getCanonicalName()));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java
index 862dc93e72c..4c297cdabcf 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/UpdatableRALBackendHandler.java
@@ -20,9 +20,12 @@ package org.apache.shardingsphere.proxy.backend.text.distsql.ral;
 import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
 import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
 import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 
+import java.sql.SQLException;
+
 /**
  * Updatable RAL backend handler.
  * 
@@ -31,10 +34,10 @@ import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResp
 public abstract class UpdatableRALBackendHandler<E extends RALStatement> extends RALBackendHandler<E> {
     
     @Override
-    protected final ResponseHeader handle(final ContextManager contextManager, final E sqlStatement) throws DistSQLException {
-        update(contextManager, sqlStatement);
-        return new UpdateResponseHeader(sqlStatement);
+    public final ResponseHeader execute() throws SQLException {
+        update(ProxyContext.getInstance().getContextManager());
+        return new UpdateResponseHeader(getSqlStatement());
     }
     
-    protected abstract void update(ContextManager contextManager, E sqlStatement) throws DistSQLException;
+    protected abstract void update(ContextManager contextManager) throws DistSQLException;
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
index 594ec72f6a4..bfd719cde32 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/FormatHandler.java
@@ -41,7 +41,7 @@ public final class FormatHandler extends QueryableRALBackendHandler<FormatStatem
     
     @Override
     protected Collection<String> getColumnNames() {
-        return Collections.singletonList(FORMATTED_RESULT);
+        return Collections.singleton(FORMATTED_RESULT);
     }
     
     @Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
index 4d1fe2e12c5..3090cf78f95 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLBackendHandler.java
@@ -25,7 +25,6 @@ import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.parser.rule.SQLParserRule;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import org.apache.shardingsphere.proxy.backend.text.distsql.ral.QueryableRALBackendHandler;
 import org.apache.shardingsphere.sql.parser.exception.SQLParsingException;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
@@ -56,17 +55,17 @@ public final class ParseDistSQLBackendHandler extends QueryableRALBackendHandler
         Preconditions.checkState(sqlParserRule.isPresent());
         SQLStatement parsedSqlStatement;
         try {
-            parsedSqlStatement = sqlParserRule.get().getSQLParserEngine(getStorageType(getConnectionSession()).getType()).parse(getSqlStatement().getSql(), false);
-        } catch (SQLParsingException ex) {
+            parsedSqlStatement = sqlParserRule.get().getSQLParserEngine(getStorageType().getType()).parse(getSqlStatement().getSql(), false);
+        } catch (final SQLParsingException ex) {
             throw new SQLParsingException("You have a syntax error in your parsed statement");
         }
         return Collections.singleton(Arrays.asList(parsedSqlStatement.getClass().getSimpleName(), new Gson().toJson(parsedSqlStatement)));
     }
     
-    private static DatabaseType getStorageType(final ConnectionSession connectionSession) {
-        String databaseName = connectionSession.getDatabaseName();
+    private DatabaseType getStorageType() {
+        String databaseName = getConnectionSession().getDatabaseName();
         return Strings.isNullOrEmpty(databaseName) || !ProxyContext.getInstance().databaseExists(databaseName)
-                ? connectionSession.getDatabaseType()
+                ? getConnectionSession().getDatabaseType()
                 : ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().get(databaseName).getResource().getDatabaseType();
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java
index be8783f86f8..f03d58068a4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterInstanceHandler.java
@@ -36,23 +36,18 @@ public final class AlterInstanceHandler extends UpdatableRALBackendHandler<Alter
     private static final String XA_RECOVERY_NODES = "xa_recovery_nodes";
     
     @Override
-    protected void update(final ContextManager contextManager, final AlterInstanceStatement sqlStatement) throws DistSQLException {
-        if (XA_RECOVERY_NODES.equalsIgnoreCase(sqlStatement.getKey())) {
-            setXaRecoveryId(contextManager, sqlStatement);
-        } else {
-            throw new UnsupportedOperationException(String.format("%s is not supported", sqlStatement.getKey()));
+    protected void update(final ContextManager contextManager) throws DistSQLException {
+        if (!XA_RECOVERY_NODES.equalsIgnoreCase(getSqlStatement().getKey())) {
+            throw new UnsupportedOperationException(String.format("%s is not supported", getSqlStatement().getKey()));
         }
-    }
-    
-    private void setXaRecoveryId(final ContextManager contextManager, final AlterInstanceStatement sqlStatement) {
         Optional<MetaDataPersistService> persistService = contextManager.getMetaDataContexts().getPersistService();
         if (!persistService.isPresent()) {
-            throw new UnsupportedOperationException(String.format("No persistence configuration found, unable to set '%s'", sqlStatement.getKey()));
+            throw new UnsupportedOperationException(String.format("No persistence configuration found, unable to set '%s'", getSqlStatement().getKey()));
         }
-        if (!contextManager.getInstanceContext().getComputeNodeInstanceById(sqlStatement.getInstanceId()).isPresent()) {
-            throw new UnsupportedOperationException(String.format("'%s' does not exist", sqlStatement.getInstanceId()));
+        if (!contextManager.getInstanceContext().getComputeNodeInstanceById(getSqlStatement().getInstanceId()).isPresent()) {
+            throw new UnsupportedOperationException(String.format("'%s' does not exist", getSqlStatement().getInstanceId()));
         }
         // TODO need support standalone mode
-        ShardingSphereEventBus.getInstance().post(new XaRecoveryIdChangedEvent(sqlStatement.getInstanceId(), Splitter.on(",").splitToList(sqlStatement.getValue())));
+        ShardingSphereEventBus.getInstance().post(new XaRecoveryIdChangedEvent(getSqlStatement().getInstanceId(), Splitter.on(",").splitToList(getSqlStatement().getValue())));
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java
index 9ce86e52ca8..39fbeac61a4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterSQLParserRuleHandler.java
@@ -37,7 +37,7 @@ import java.util.Optional;
 public final class AlterSQLParserRuleHandler extends UpdatableRALBackendHandler<AlterSQLParserRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final AlterSQLParserRuleStatement sqlStatement) {
+    protected void update(final ContextManager contextManager) {
         Optional<SQLParserRuleConfiguration> currentConfig = findCurrentConfiguration();
         SQLParserRuleConfiguration toBeAlteredRuleConfig = createSQLParserRuleConfiguration(currentConfig.orElseGet(() -> new DefaultSQLParserRuleConfigurationBuilder().build()));
         Collection<RuleConfiguration> globalRuleConfigs = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getConfigurations();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java
index e82cb61ccb6..626fc8c5f96 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTrafficRuleHandler.java
@@ -45,11 +45,11 @@ import java.util.stream.Collectors;
 public final class AlterTrafficRuleHandler extends UpdatableRALBackendHandler<AlterTrafficRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final AlterTrafficRuleStatement sqlStatement) throws DistSQLException {
+    protected void update(final ContextManager contextManager) throws DistSQLException {
         Optional<TrafficRuleConfiguration> currentConfig = findCurrentConfiguration();
         DistSQLException.predictionThrow(currentConfig.isPresent(), () -> new RequiredRuleMissedException("Traffic"));
-        check(sqlStatement, currentConfig.get());
-        TrafficRuleConfiguration toBeAlteredConfig = TrafficRuleConverter.convert(sqlStatement.getSegments());
+        check(getSqlStatement(), currentConfig.get());
+        TrafficRuleConfiguration toBeAlteredConfig = TrafficRuleConverter.convert(getSqlStatement().getSegments());
         persistNewRuleConfigurations(toBeAlteredConfig, currentConfig.get());
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java
index b74b4252bf0..1e0629d7610 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/AlterTransactionRuleHandler.java
@@ -38,7 +38,7 @@ import java.util.Optional;
 public final class AlterTransactionRuleHandler extends UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final AlterTransactionRuleStatement sqlStatement) {
+    protected void update(final ContextManager contextManager) {
         ShardingSphereRuleMetaData globalRuleMetaData = contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData();
         Collection<ShardingSphereRule> globalRules = globalRuleMetaData.getRules();
         globalRules.removeIf(each -> each instanceof TransactionRule);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java
index 9c509f9e88e..1700bb51044 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ApplyDistSQLHandler.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 public final class ApplyDistSQLHandler extends UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final AlterTransactionRuleStatement sqlStatement) {
+    protected void update(final ContextManager contextManager) {
         // TODO Metadata support required
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java
index 7453c0df7d3..ff7fcfacf35 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/CreateTrafficRuleHandler.java
@@ -46,19 +46,19 @@ import java.util.stream.Collectors;
 public final class CreateTrafficRuleHandler extends UpdatableRALBackendHandler<CreateTrafficRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final CreateTrafficRuleStatement sqlStatement) throws DistSQLException {
+    protected void update(final ContextManager contextManager) throws DistSQLException {
         Optional<TrafficRuleConfiguration> trafficRuleConfig = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData()
                 .findRuleConfigurations(TrafficRuleConfiguration.class).stream().findAny();
         if (trafficRuleConfig.isPresent()) {
-            checkTrafficRuleConfiguration(sqlStatement, trafficRuleConfig.get());
+            checkTrafficRuleConfiguration(trafficRuleConfig.get());
         }
         checkInvalidAlgorithmNames();
-        updateToRepository(TrafficRuleConverter.convert(sqlStatement.getSegments()), trafficRuleConfig.orElse(null));
+        updateToRepository(TrafficRuleConverter.convert(getSqlStatement().getSegments()), trafficRuleConfig.orElse(null));
     }
     
-    private void checkTrafficRuleConfiguration(final CreateTrafficRuleStatement sqlStatement, final TrafficRuleConfiguration trafficRuleConfig) throws DistSQLException {
+    private void checkTrafficRuleConfiguration(final TrafficRuleConfiguration trafficRuleConfig) throws DistSQLException {
         Collection<String> currentRuleNames = trafficRuleConfig.getTrafficStrategies().stream().map(TrafficStrategyConfiguration::getName).collect(Collectors.toSet());
-        Set<String> duplicatedRuleNames = sqlStatement.getSegments().stream().map(TrafficRuleSegment::getName).filter(currentRuleNames::contains).collect(Collectors.toSet());
+        Set<String> duplicatedRuleNames = getSqlStatement().getSegments().stream().map(TrafficRuleSegment::getName).filter(currentRuleNames::contains).collect(Collectors.toSet());
         DistSQLException.predictionThrow(duplicatedRuleNames.isEmpty(), () -> new DuplicateRuleException("traffic", duplicatedRuleNames));
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java
index 6f850ab5792..61313834371 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DiscardDistSQLHandler.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 public final class DiscardDistSQLHandler extends UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final AlterTransactionRuleStatement sqlStatement) {
+    protected void update(final ContextManager contextManager) {
         // TODO Metadata support required
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java
index 72fea003d52..0a8e9c0eee0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/DropTrafficRuleHandler.java
@@ -39,24 +39,24 @@ import java.util.stream.Collectors;
 public final class DropTrafficRuleHandler extends UpdatableRALBackendHandler<DropTrafficRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final DropTrafficRuleStatement sqlStatement) throws DistSQLException {
+    protected void update(final ContextManager contextManager) throws DistSQLException {
         Optional<TrafficRuleConfiguration> config = ProxyContext.getInstance()
                 .getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRuleConfiguration(TrafficRuleConfiguration.class);
-        if (!sqlStatement.isContainsIfExistClause()) {
+        if (!getSqlStatement().isContainsIfExistClause()) {
             DistSQLException.predictionThrow(config.isPresent(), () -> new RequiredRuleMissedException("Traffic"));
-            checkTrafficRuleConfiguration(sqlStatement, config.get());
+            checkTrafficRuleConfiguration(config.get());
         }
         if (config.isPresent()) {
-            config.get().getTrafficStrategies().removeIf(each -> sqlStatement.getRuleNames().contains(each.getName()));
+            config.get().getTrafficStrategies().removeIf(each -> getSqlStatement().getRuleNames().contains(each.getName()));
             getUnusedAlgorithm(config.get()).forEach(each -> config.get().getTrafficAlgorithms().remove(each));
             getUnusedLoadBalancer(config.get()).forEach(each -> config.get().getLoadBalancers().remove(each));
             updateToRepository(config.get());
         }
     }
     
-    private void checkTrafficRuleConfiguration(final DropTrafficRuleStatement sqlStatement, final TrafficRuleConfiguration config) throws DistSQLException {
+    private void checkTrafficRuleConfiguration(final TrafficRuleConfiguration config) throws DistSQLException {
         Set<String> currentTrafficStrategyNames = config.getTrafficStrategies().stream().map(TrafficStrategyConfiguration::getName).collect(Collectors.toSet());
-        Set<String> notExistRuleNames = sqlStatement.getRuleNames().stream().filter(each -> !currentTrafficStrategyNames.contains(each)).collect(Collectors.toSet());
+        Set<String> notExistRuleNames = getSqlStatement().getRuleNames().stream().filter(each -> !currentTrafficStrategyNames.contains(each)).collect(Collectors.toSet());
         DistSQLException.predictionThrow(notExistRuleNames.isEmpty(), () -> new RequiredRuleMissedException("Traffic"));
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
index 344c77ca7dc..c80f89b2c33 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
@@ -86,6 +86,32 @@ public final class ImportDatabaseConfigurationHandler extends UpdatableRALBacken
     
     private final YamlProxyDataSourceConfigurationSwapper dataSourceConfigSwapper = new YamlProxyDataSourceConfigurationSwapper();
     
+    @Override
+    protected void update(final ContextManager contextManager) throws DistSQLException {
+        if (!getSqlStatement().getFilePath().isPresent()) {
+            return;
+        }
+        File yamlFile = new File(getSqlStatement().getFilePath().get());
+        YamlProxyDatabaseConfiguration yamlConfig;
+        try {
+            yamlConfig = YamlEngine.unmarshal(yamlFile, YamlProxyDatabaseConfiguration.class);
+        } catch (final IOException ex) {
+            throw new ShardingSphereException(ex);
+        }
+        String databaseName = yamlConfig.getDatabaseName();
+        DistSQLException.predictionThrow(!Strings.isNullOrEmpty(databaseName), () -> new ImportDatabaseNotExistedException(yamlFile.getName()));
+        checkDatabaseName(databaseName);
+        DistSQLException.predictionThrow(null != yamlConfig.getDataSources() && !yamlConfig.getDataSources().isEmpty(), () -> new ImportResourceNotExistedException(yamlFile.getName()));
+        alterResourcesConfig(databaseName, yamlConfig.getDataSources());
+        alterRulesConfig(databaseName, yamlConfig.getRules());
+    }
+    
+    private void checkDatabaseName(final String databaseName) {
+        if (!ProxyContext.getInstance().getAllDatabaseNames().contains(databaseName)) {
+            throw new DatabaseNotExistedException(databaseName);
+        }
+    }
+    
     private void alterResourcesConfig(final String databaseName, final Map<String, YamlProxyDataSourceConfiguration> yamlDataSourceMap) throws DistSQLException {
         Map<String, DataSourceProperties> toBeUpdatedResourcePropsMap = new LinkedHashMap<>(yamlDataSourceMap.size(), 1);
         for (Entry<String, YamlProxyDataSourceConfiguration> each : yamlDataSourceMap.entrySet()) {
@@ -142,33 +168,4 @@ public final class ImportDatabaseConfigurationHandler extends UpdatableRALBacken
         Optional<MetaDataPersistService> metaDataPersistService = metaDataContexts.getPersistService();
         metaDataPersistService.ifPresent(optional -> optional.getDatabaseRulePersistService().persist(databaseName, toBeUpdatedRuleConfigs));
     }
-    
-    private void checkDatabaseName(final String databaseName) {
-        if (!ProxyContext.getInstance().getAllDatabaseNames().contains(databaseName)) {
-            throw new DatabaseNotExistedException(databaseName);
-        }
-    }
-    
-    @Override
-    protected void update(final ContextManager contextManager, final ImportDatabaseConfigurationStatement sqlStatement) throws DistSQLException {
-        if (!sqlStatement.getFilePath().isPresent()) {
-            return;
-        }
-        File yamlFile = new File(sqlStatement.getFilePath().get());
-        YamlProxyDatabaseConfiguration yamlConfig;
-        try {
-            yamlConfig = YamlEngine.unmarshal(yamlFile, YamlProxyDatabaseConfiguration.class);
-            if (null == yamlConfig) {
-                return;
-            }
-        } catch (final IOException ex) {
-            throw new ShardingSphereException(ex);
-        }
-        String databaseName = yamlConfig.getDatabaseName();
-        DistSQLException.predictionThrow(!Strings.isNullOrEmpty(databaseName), () -> new ImportDatabaseNotExistedException(yamlFile.getName()));
-        checkDatabaseName(databaseName);
-        DistSQLException.predictionThrow(null != yamlConfig.getDataSources() && !yamlConfig.getDataSources().isEmpty(), () -> new ImportResourceNotExistedException(yamlFile.getName()));
-        alterResourcesConfig(databaseName, yamlConfig.getDataSources());
-        alterRulesConfig(databaseName, yamlConfig.getRules());
-    }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java
index 372e3786a68..46516995d54 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/LabelInstanceHandler.java
@@ -38,16 +38,16 @@ import java.util.Optional;
 public final class LabelInstanceHandler extends UpdatableRALBackendHandler<LabelInstanceStatement> {
     
     @Override
-    public void update(final ContextManager contextManager, final LabelInstanceStatement sqlStatement) {
+    public void update(final ContextManager contextManager) {
         MetaDataPersistService persistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService().orElse(null);
         if (null == persistService || null == persistService.getRepository() || persistService.getRepository() instanceof StandalonePersistRepository) {
             throw new UnsupportedOperationException("Labels can only be added in cluster mode");
         }
-        String instanceId = sqlStatement.getInstanceId();
+        String instanceId = getSqlStatement().getInstanceId();
         Optional<ComputeNodeInstance> computeNodeInstance = contextManager.getInstanceContext().getComputeNodeInstanceById(instanceId);
         if (computeNodeInstance.isPresent()) {
-            Collection<String> labels = new LinkedHashSet<>(sqlStatement.getLabels());
-            if (!sqlStatement.isOverwrite() && null != computeNodeInstance.get().getLabels()) {
+            Collection<String> labels = new LinkedHashSet<>(getSqlStatement().getLabels());
+            if (!getSqlStatement().isOverwrite() && null != computeNodeInstance.get().getLabels()) {
                 labels.addAll(computeNodeInstance.get().getLabels());
             }
             ShardingSphereEventBus.getInstance().post(new LabelsChangedEvent(instanceId, new LinkedList<>(labels)));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java
index 7ffb2e99698..a91757c703e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/PrepareDistSQLHandler.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 public final class PrepareDistSQLHandler extends UpdatableRALBackendHandler<AlterTransactionRuleStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final AlterTransactionRuleStatement sqlStatement) {
+    protected void update(final ContextManager contextManager) {
         // TODO Metadata support required
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
index 164e6b9bc4d..04ccce7201c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
@@ -33,22 +33,22 @@ import org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 public final class RefreshTableMetadataHandler extends UpdatableRALBackendHandler<RefreshTableMetadataStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final RefreshTableMetadataStatement sqlStatement) throws DistSQLException {
+    protected void update(final ContextManager contextManager) throws DistSQLException {
         String databaseName = getDatabaseName();
-        String schemaName = getSchemaName(sqlStatement, databaseName);
-        if (sqlStatement.getResourceName().isPresent()) {
-            if (sqlStatement.getTableName().isPresent()) {
-                contextManager.reloadMetaData(databaseName, schemaName, sqlStatement.getResourceName().get(), sqlStatement.getTableName().get());
+        String schemaName = getSchemaName(databaseName);
+        if (getSqlStatement().getResourceName().isPresent()) {
+            if (getSqlStatement().getTableName().isPresent()) {
+                contextManager.reloadMetaData(databaseName, schemaName, getSqlStatement().getResourceName().get(), getSqlStatement().getTableName().get());
             } else {
-                contextManager.reloadSchemaMetaData(databaseName, schemaName, sqlStatement.getResourceName().get());
+                contextManager.reloadSchemaMetaData(databaseName, schemaName, getSqlStatement().getResourceName().get());
             }
             return;
         }
-        if (sqlStatement.getTableName().isPresent()) {
-            contextManager.reloadMetaData(databaseName, schemaName, sqlStatement.getTableName().get());
-            return;
+        if (getSqlStatement().getTableName().isPresent()) {
+            contextManager.reloadMetaData(databaseName, schemaName, getSqlStatement().getTableName().get());
+        } else {
+            contextManager.reloadMetaData(databaseName);
         }
-        contextManager.reloadMetaData(databaseName);
     }
     
     private String getDatabaseName() {
@@ -62,10 +62,9 @@ public final class RefreshTableMetadataHandler extends UpdatableRALBackendHandle
         return result;
     }
     
-    private String getSchemaName(final RefreshTableMetadataStatement sqlStatement, final String databaseName) {
-        if (sqlStatement.getSchemaName().isPresent()) {
-            return sqlStatement.getSchemaName().get();
-        }
-        return DatabaseTypeEngine.getDefaultSchemaName(getConnectionSession().getDatabaseType(), databaseName);
+    private String getSchemaName(final String databaseName) {
+        return getSqlStatement().getSchemaName().isPresent()
+                ? getSqlStatement().getSchemaName().get()
+                : DatabaseTypeEngine.getDefaultSchemaName(getConnectionSession().getDatabaseType(), databaseName);
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java
index 197b82f1c0b..7ebf6076e03 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetInstanceStatusHandler.java
@@ -31,12 +31,12 @@ import org.apache.shardingsphere.proxy.backend.text.distsql.ral.UpdatableRALBack
 public final class SetInstanceStatusHandler extends UpdatableRALBackendHandler<SetInstanceStatusStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final SetInstanceStatusStatement sqlStatement) {
+    protected void update(final ContextManager contextManager) {
         if (!contextManager.getInstanceContext().isCluster()) {
             throw new UnsupportedOperationException("Only allowed in cluster mode");
         }
-        String instanceId = sqlStatement.getInstanceId();
-        boolean isDisable = "DISABLE".equals(sqlStatement.getStatus());
+        String instanceId = getSqlStatement().getInstanceId();
+        boolean isDisable = "DISABLE".equals(getSqlStatement().getStatus());
         if (isDisable) {
             checkDisablingIsValid(contextManager, instanceId);
         } else {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
index 2ab49884545..d9c02877af0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
@@ -58,16 +58,16 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
     private static final String DISABLE = "DISABLE";
     
     @Override
-    protected void update(final ContextManager contextManager, final SetReadwriteSplittingStatusStatement sqlStatement) throws DistSQLException {
-        String databaseName = sqlStatement.getDatabase().isPresent() ? sqlStatement.getDatabase().get().getIdentifier().getValue() : getConnectionSession().getDatabaseName();
-        String toBeUpdatedResource = sqlStatement.getResourceName();
+    protected void update(final ContextManager contextManager) throws DistSQLException {
+        String databaseName = getSqlStatement().getDatabase().isPresent() ? getSqlStatement().getDatabase().get().getIdentifier().getValue() : getConnectionSession().getDatabaseName();
+        String toBeUpdatedResource = getSqlStatement().getResourceName();
         checkModeAndPersistRepository(contextManager);
         checkDatabaseName(databaseName);
         checkReadwriteSplittingRule(contextManager, databaseName);
         Map<String, String> replicaResources = getReplicaResources(contextManager, databaseName);
         Map<String, String> disabledResources = getDisabledResources(contextManager, databaseName);
         Map<String, String> autoAwareResources = getAutoAwareResources(contextManager, databaseName);
-        boolean isDisable = DISABLE.equals(sqlStatement.getStatus());
+        boolean isDisable = DISABLE.equals(getSqlStatement().getStatus());
         if (isDisable) {
             checkDisable(contextManager, databaseName, disabledResources.keySet(), toBeUpdatedResource, replicaResources);
         } else {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java
index b232660c866..cefdc1e1d4c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetVariableHandler.java
@@ -43,14 +43,14 @@ import java.util.Properties;
 public final class SetVariableHandler extends UpdatableRALBackendHandler<SetVariableStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final SetVariableStatement sqlStatement) throws DistSQLException {
-        Enum<?> enumType = getEnumType(sqlStatement.getName());
+    protected void update(final ContextManager contextManager) throws DistSQLException {
+        Enum<?> enumType = getEnumType(getSqlStatement().getName());
         if (enumType instanceof ConfigurationPropertyKey) {
-            handleConfigurationProperty((ConfigurationPropertyKey) enumType, sqlStatement.getValue());
+            handleConfigurationProperty((ConfigurationPropertyKey) enumType, getSqlStatement().getValue());
         } else if (enumType instanceof VariableEnum) {
-            handleVariables(sqlStatement);
+            handleVariables();
         } else {
-            throw new UnsupportedVariableException(sqlStatement.getName());
+            throw new UnsupportedVariableException(getSqlStatement().getName());
         }
     }
     
@@ -83,8 +83,8 @@ public final class SetVariableHandler extends UpdatableRALBackendHandler<SetVari
         }
     }
     
-    private void handleVariables(final SetVariableStatement setVariableStatement) {
-        VariableEnum variable = VariableEnum.getValueOf(setVariableStatement.getName());
+    private void handleVariables() {
+        VariableEnum variable = VariableEnum.getValueOf(getSqlStatement().getName());
         switch (variable) {
             case AGENT_PLUGINS_ENABLED:
                 Boolean agentPluginsEnabled = BooleanUtils.toBooleanObject(getSqlStatement().getValue());
@@ -94,14 +94,14 @@ public final class SetVariableHandler extends UpdatableRALBackendHandler<SetVari
                 getConnectionSession().getTransactionStatus().setTransactionType(getTransactionType(getSqlStatement().getValue()));
                 break;
             default:
-                throw new UnsupportedVariableException(setVariableStatement.getName());
+                throw new UnsupportedVariableException(getSqlStatement().getName());
         }
     }
     
     private TransactionType getTransactionType(final String transactionTypeName) throws UnsupportedVariableException {
         try {
             return TransactionType.valueOf(transactionTypeName.toUpperCase());
-        } catch (IllegalArgumentException ex) {
+        } catch (final IllegalArgumentException ex) {
             throw new UnsupportedVariableException(transactionTypeName);
         }
     }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java
index 8f38d1cb690..aa29f4f7eb3 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/UnlabelInstanceHandler.java
@@ -40,19 +40,19 @@ import java.util.Optional;
 public final class UnlabelInstanceHandler extends UpdatableRALBackendHandler<UnlabelInstanceStatement> {
     
     @Override
-    protected void update(final ContextManager contextManager, final UnlabelInstanceStatement sqlStatement) throws DistSQLException {
+    protected void update(final ContextManager contextManager) throws DistSQLException {
         MetaDataPersistService persistService = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getPersistService().orElse(null);
         if (null == persistService || null == persistService.getRepository() || persistService.getRepository() instanceof StandalonePersistRepository) {
             throw new UnsupportedOperationException("Labels can only be removed in cluster mode");
         }
-        String instanceId = sqlStatement.getInstanceId();
+        String instanceId = getSqlStatement().getInstanceId();
         Optional<ComputeNodeInstance> computeNodeInstance = contextManager.getInstanceContext().getComputeNodeInstanceById(instanceId);
         if (computeNodeInstance.isPresent()) {
             Collection<String> labels = new LinkedHashSet<>(computeNodeInstance.get().getLabels());
-            if (sqlStatement.getLabels().isEmpty()) {
-                ShardingSphereEventBus.getInstance().post(new LabelsChangedEvent(instanceId, Collections.EMPTY_LIST));
+            if (getSqlStatement().getLabels().isEmpty()) {
+                ShardingSphereEventBus.getInstance().post(new LabelsChangedEvent(instanceId, Collections.emptyList()));
             } else {
-                labels.removeAll(sqlStatement.getLabels());
+                labels.removeAll(getSqlStatement().getLabels());
                 ShardingSphereEventBus.getInstance().post(new LabelsChangedEvent(instanceId, new LinkedList<>(labels)));
             }
         }