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 4d13af3463a Fix TODO in RALBackendHandlerFactory and
QueryableRALBackendHandler. (#24568)
4d13af3463a is described below
commit 4d13af3463a21ae85636228d26c0aa1e816cf658
Author: Raigor <[email protected]>
AuthorDate: Mon Mar 13 08:25:24 2023 +0800
Fix TODO in RALBackendHandlerFactory and QueryableRALBackendHandler.
(#24568)
---
.../distsql/ral/QueryableRALBackendHandler.java | 28 ++++++++++++----------
.../handler/distsql/ral/RALBackendHandler.java | 21 +---------------
.../distsql/ral/RALBackendHandlerFactory.java | 12 ++++------
.../ral/UpdatableGlobalRuleRALBackendHandler.java | 5 ++--
.../distsql/ral/UpdatableRALBackendHandler.java | 4 +---
5 files changed, 26 insertions(+), 44 deletions(-)
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
index 4237a76b3e1..b355617f10f 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
@@ -24,7 +24,6 @@ import
org.apache.shardingsphere.distsql.handler.ral.query.InstanceContextRequir
import
org.apache.shardingsphere.distsql.handler.ral.query.MetaDataRequiredQueryableRALExecutor;
import
org.apache.shardingsphere.distsql.handler.ral.query.QueryableRALExecutor;
import
org.apache.shardingsphere.distsql.parser.statement.ral.QueryableRALStatement;
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataMergedResult;
import
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
@@ -54,21 +53,26 @@ import java.util.stream.Collectors;
*
* @param <T> type of queryable RAL statement
*/
-public final class QueryableRALBackendHandler<T extends QueryableRALStatement>
extends RALBackendHandler<T> {
+public final class QueryableRALBackendHandler<T extends QueryableRALStatement>
implements RALBackendHandler {
+
+ private final T sqlStatement;
+
+ private final ConnectionSession connectionSession;
private List<QueryHeader> queryHeaders;
private MergedResult mergedResult;
- public QueryableRALBackendHandler(final RALStatement sqlStatement, final
ConnectionSession connectionSession) {
- // TODO remove this constructor after the refactoring of
RALBackendHandler is complete
- init(sqlStatement, connectionSession);
+ @SuppressWarnings("unchecked")
+ public QueryableRALBackendHandler(final QueryableRALStatement
sqlStatement, final ConnectionSession connectionSession) {
+ this.sqlStatement = (T) sqlStatement;
+ this.connectionSession = connectionSession;
}
@SuppressWarnings("unchecked")
@Override
public ResponseHeader execute() {
- QueryableRALExecutor<T> executor =
TypedSPILoader.getService(QueryableRALExecutor.class,
getSqlStatement().getClass().getName());
+ QueryableRALExecutor<T> executor =
TypedSPILoader.getService(QueryableRALExecutor.class,
sqlStatement.getClass().getName());
mergedResult = getMergedResult(executor);
queryHeaders = createQueryHeader(executor.getColumnNames());
return new QueryResponseHeader(queryHeaders);
@@ -87,25 +91,25 @@ public final class QueryableRALBackendHandler<T extends
QueryableRALStatement> e
if (executor instanceof ConnectionSessionRequiredQueryableRALExecutor)
{
return
getMergedResultByConnectionSessionRequiredExecutor((ConnectionSessionRequiredQueryableRALExecutor<T>)
executor);
}
- return createMergedResult(executor.getRows(getSqlStatement()));
+ return createMergedResult(executor.getRows(sqlStatement));
}
private MergedResult
getMergedResultByInstanceContextRequiredExecutor(final
InstanceContextRequiredQueryableRALExecutor<T> executor) {
- return
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getInstanceContext(),
getSqlStatement()));
+ return
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getInstanceContext(),
sqlStatement));
}
private MergedResult getMergedResultByMetaDataRequiredExecutor(final
MetaDataRequiredQueryableRALExecutor<T> executor) {
- return
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
getSqlStatement()));
+ return
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
sqlStatement));
}
private MergedResult getMergedResultByDatabaseRequiredExecutor(final
DatabaseRequiredQueryableRALExecutor<T> executor) {
- String databaseName = getDatabaseName(getConnectionSession(),
getSqlStatement());
+ String databaseName = getDatabaseName(connectionSession, sqlStatement);
checkDatabaseName(databaseName);
- return
createMergedResult(executor.getRows(ProxyContext.getInstance().getDatabase(databaseName),
getSqlStatement()));
+ return
createMergedResult(executor.getRows(ProxyContext.getInstance().getDatabase(databaseName),
sqlStatement));
}
private MergedResult
getMergedResultByConnectionSessionRequiredExecutor(final
ConnectionSessionRequiredQueryableRALExecutor<T> executor) {
- return
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
getConnectionSession(), getSqlStatement()));
+ return
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
connectionSession, sqlStatement));
}
private List<QueryHeader> createQueryHeader(final Collection<String>
columnNames) {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
index fec2f20645a..1d622db1270 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
@@ -17,29 +17,10 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
-import lombok.Getter;
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
-import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
/**
* RAL backend handler.
*/
-@Getter
-public abstract class RALBackendHandler<T extends RALStatement> implements
DistSQLBackendHandler {
-
- private T sqlStatement;
-
- private ConnectionSession connectionSession;
-
- /**
- * Initialize.
- *
- * @param sqlStatement SQL statement
- * @param connectionSession connection session
- */
- public final void init(final RALStatement sqlStatement, final
ConnectionSession connectionSession) {
- this.sqlStatement = (T) sqlStatement;
- this.connectionSession = connectionSession;
- }
+public interface RALBackendHandler extends DistSQLBackendHandler {
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
index 89f8b6e3043..191fbc6dc1c 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
@@ -19,11 +19,10 @@ package
org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.handler.ral.update.RALUpdater;
import
org.apache.shardingsphere.distsql.parser.statement.ral.QueryableRALStatement;
import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
+import
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableGlobalRuleRALStatement;
import
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -42,12 +41,11 @@ public final class RALBackendHandlerFactory {
*/
public static ProxyBackendHandler newInstance(final RALStatement
sqlStatement, final ConnectionSession connectionSession) {
if (sqlStatement instanceof QueryableRALStatement) {
- return new QueryableRALBackendHandler<>(sqlStatement,
connectionSession);
+ return new QueryableRALBackendHandler<>((QueryableRALStatement)
sqlStatement, connectionSession);
}
- // TODO remove other updatable RAL backend handlers after the
refactoring of RALBackendHandler is complete
- if (TypedSPILoader.contains(RALUpdater.class,
sqlStatement.getClass().getName())) {
- return new UpdatableRALBackendHandler<>((UpdatableRALStatement)
sqlStatement, connectionSession);
+ if (sqlStatement instanceof UpdatableGlobalRuleRALStatement) {
+ new
UpdatableGlobalRuleRALBackendHandler((UpdatableGlobalRuleRALStatement)
sqlStatement);
}
- return new UpdatableGlobalRuleRALBackendHandler(sqlStatement);
+ return new UpdatableRALBackendHandler<>((UpdatableRALStatement)
sqlStatement, connectionSession);
}
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
index 3a30316d9c8..71063a1f128 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
import
org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException;
import
org.apache.shardingsphere.distsql.handler.ral.update.GlobalRuleRALUpdater;
import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
+import
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableGlobalRuleRALStatement;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -36,9 +37,9 @@ import java.util.LinkedList;
*/
public final class UpdatableGlobalRuleRALBackendHandler implements
DistSQLBackendHandler {
- private final RALStatement sqlStatement;
+ private final UpdatableGlobalRuleRALStatement sqlStatement;
- public UpdatableGlobalRuleRALBackendHandler(final RALStatement
sqlStatement) {
+ public UpdatableGlobalRuleRALBackendHandler(final
UpdatableGlobalRuleRALStatement sqlStatement) {
this.sqlStatement = sqlStatement;
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
index 329a5a15552..e3a449c0931 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
import lombok.RequiredArgsConstructor;
-import lombok.Setter;
import org.apache.shardingsphere.distsql.handler.ral.update.RALUpdater;
import
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
@@ -33,8 +32,7 @@ import java.sql.SQLException;
* Updatable RAL backend handler.
*/
@RequiredArgsConstructor
-@Setter
-public final class UpdatableRALBackendHandler<T extends UpdatableRALStatement>
extends RALBackendHandler<T> {
+public final class UpdatableRALBackendHandler<T extends UpdatableRALStatement>
implements RALBackendHandler {
private final UpdatableRALStatement sqlStatement;