You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ch...@apache.org on 2025/05/09 00:50:13 UTC
(shardingsphere) branch master updated: Minor refactor for SQLFederationProcessor (#35347)
This is an automated email from the ASF dual-hosted git repository.
chengzhang 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 ab7463b2090 Minor refactor for SQLFederationProcessor (#35347)
ab7463b2090 is described below
commit ab7463b20909474d11cd9b3a14456c889108bc07
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Fri May 9 08:50:06 2025 +0800
Minor refactor for SQLFederationProcessor (#35347)
---
.../sqlfederation/engine/SQLFederationEngine.java | 10 +++++-----
.../engine/processor/SQLFederationProcessor.java | 12 +++++-------
.../processor/impl/StandardSQLFederationProcessor.java | 8 ++++----
3 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java
index 4a153528d0a..1de5a662efd 100644
--- a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java
+++ b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/SQLFederationEngine.java
@@ -189,10 +189,10 @@ public final class SQLFederationEngine implements AutoCloseable {
String databaseName = selectStatementContext.getTablesContext().getDatabaseNames().stream().findFirst().orElse(currentDatabaseName);
String schemaName = selectStatementContext.getTablesContext().getSchemaName().orElse(currentSchemaName);
SqlToRelConverter converter = creeateSQLToRelConverter(databaseName, schemaName, selectStatementContext.getDatabaseType(), processor.getConvention());
+ schemaPlus = getSqlFederationSchema(converter, schemaName, queryContext.getSql());
+ processor.prepare(prepareEngine, callback, databaseName, schemaName, federationContext, sqlFederationRule.getOptimizerContext(), schemaPlus);
SQLFederationExecutionPlan executionPlan = compileQuery(converter, databaseName, schemaName,
federationContext.getMetaData(), selectStatementContext, queryContext.getSql(), processor.getConvention());
- schemaPlus = getSqlFederationSchema(converter, schemaName, queryContext.getSql());
- processor.registerExecutor(prepareEngine, callback, databaseName, schemaName, federationContext, sqlFederationRule.getOptimizerContext(), schemaPlus);
resultSet = processor.executePlan(prepareEngine, callback, executionPlan, converter, federationContext, schemaPlus);
return resultSet;
// CHECKSTYLE:OFF
@@ -245,7 +245,7 @@ public final class SQLFederationEngine implements AutoCloseable {
public void close() throws SQLException {
Collection<SQLException> result = new LinkedList<>();
closeResultSet().ifPresent(result::add);
- unregisterExecutor();
+ release();
if (result.isEmpty()) {
return;
}
@@ -265,9 +265,9 @@ public final class SQLFederationEngine implements AutoCloseable {
return Optional.empty();
}
- private void unregisterExecutor() {
+ private void release() {
if (null != queryContext && null != schemaPlus) {
- processor.unregisterExecutor(queryContext, schemaPlus);
+ processor.release(queryContext, schemaPlus);
}
}
}
diff --git a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/SQLFederationProcessor.java b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/SQLFederationProcessor.java
index 680d261cfd3..7e81cdf21f9 100644
--- a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/SQLFederationProcessor.java
+++ b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/SQLFederationProcessor.java
@@ -38,7 +38,7 @@ import java.sql.ResultSet;
public interface SQLFederationProcessor {
/**
- * Register executor.
+ * Prepare.
*
* @param prepareEngine prepare engine
* @param callback callback
@@ -48,18 +48,16 @@ public interface SQLFederationProcessor {
* @param optimizerContext optimizer context
* @param schemaPlus sql federation schema
*/
- default void registerExecutor(DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, JDBCExecutorCallback<? extends ExecuteResult> callback,
- String databaseName, String schemaName, SQLFederationContext federationContext, OptimizerContext optimizerContext, SchemaPlus schemaPlus) {
- }
+ void prepare(DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, JDBCExecutorCallback<? extends ExecuteResult> callback,
+ String databaseName, String schemaName, SQLFederationContext federationContext, OptimizerContext optimizerContext, SchemaPlus schemaPlus);
/**
- * Unregister executor.
+ * Release.
*
* @param queryContext query context
* @param schemaPlus sql federation schema
*/
- default void unregisterExecutor(QueryContext queryContext, SchemaPlus schemaPlus) {
- }
+ void release(QueryContext queryContext, SchemaPlus schemaPlus);
/**
* Execute plan.
diff --git a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/impl/StandardSQLFederationProcessor.java b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/impl/StandardSQLFederationProcessor.java
index d3938d715d5..8cae468854c 100644
--- a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/impl/StandardSQLFederationProcessor.java
+++ b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/engine/processor/impl/StandardSQLFederationProcessor.java
@@ -70,9 +70,9 @@ public final class StandardSQLFederationProcessor implements SQLFederationProces
private final JDBCExecutor jdbcExecutor;
@Override
- public void registerExecutor(final DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, final JDBCExecutorCallback<? extends ExecuteResult> callback,
- final String databaseName, final String schemaName, final SQLFederationContext federationContext, final OptimizerContext optimizerContext,
- final SchemaPlus schemaPlus) {
+ public void prepare(final DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, final JDBCExecutorCallback<? extends ExecuteResult> callback,
+ final String databaseName, final String schemaName, final SQLFederationContext federationContext, final OptimizerContext optimizerContext,
+ final SchemaPlus schemaPlus) {
if (null == schemaPlus) {
return;
}
@@ -91,7 +91,7 @@ public final class StandardSQLFederationProcessor implements SQLFederationProces
}
@Override
- public void unregisterExecutor(final QueryContext queryContext, final SchemaPlus schemaPlus) {
+ public void release(final QueryContext queryContext, final SchemaPlus schemaPlus) {
Collection<SimpleTableSegment> simpleTables = queryContext.getSqlStatementContext() instanceof TableAvailable
? ((TableAvailable) queryContext.getSqlStatementContext()).getTablesContext().getSimpleTables()
: Collections.emptyList();