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 <duanzhengqi...@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();

Reply via email to