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 <[email protected]>
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)));
}
}