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

duanzhengqiang 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 7d6c812  Create new package federate execution (#10603)
7d6c812 is described below

commit 7d6c812f359bf41472a62cbc0493b253fdeb5769
Author: Juan Pan(Trista) <[email protected]>
AuthorDate: Tue Jun 1 17:02:09 2021 +0800

    Create new package federate execution (#10603)
---
 .../ShardingSQLRewriteContextDecorator.java        |  2 +-
 .../federated/ShardingFederatedRoutingEngine.java  |  2 +-
 .../type/single/SingleTablesRoutingEngine.java     |  2 +-
 .../type/single/SingleTablesRoutingEngineTest.java |  4 +-
 .../infra/context/metadata/MetaDataContexts.java   |  2 +-
 .../execute/FederateExecutor.java}                 |  6 +--
 .../execute/FederateJDBCExecutor.java}             |  8 ++--
 .../execute/raw/FederateExecuteDataContext.java}   |  6 +--
 .../execute/raw/FederateRawExecutor.java}          | 15 ++++---
 .../schema/FederateLogicSchema.java}               | 20 ++++-----
 .../schema/FederateLogicSchemaFactory.java}        | 16 ++++----
 .../schema/row/FederateRowEnumerator.java}         |  8 ++--
 .../schema/row/FederateRowExecutor.java}           |  6 +--
 .../schema/table/AbstractFederateTable.java}       | 12 +++---
 .../schema/table/FederateFilterableTable.java}     | 24 +++++------
 .../FederateExecuteContextGenerator.java}          | 12 +++---
 .../generator/FederateExecuteSQLGenerator.java}    |  8 ++--
 .../execute/raw/plan/PlannerInitializer.java       | 47 ----------------------
 .../optimize/context/OptimizeContextFactory.java   |  4 +-
 .../{ => core}/convert/SqlNodeConverter.java       |  2 +-
 .../{ => core}/plan/PlannerInitializer.java        |  2 +-
 .../{ => core}/schema/LogicSchemaMetadata.java     |  2 +-
 .../{ => core}/schema/LogicSchemaMetadatas.java    |  2 +-
 .../{ => core}/schema/LogicTableMetadata.java      |  2 +-
 .../infra/route/context/RouteContext.java          |  2 +-
 .../jdbc/adapter/AbstractStatementAdapter.java     | 10 ++---
 .../statement/ShardingSpherePreparedStatement.java | 34 ++++++++--------
 .../core/statement/ShardingSphereStatement.java    | 34 ++++++++--------
 ...iteTest.java => AbstractSQLFederationTest.java} |  2 +-
 ...ctShardingSphereDataSourceForFederateTest.java} |  2 +-
 ...Test.java => FederatePrepareStatementTest.java} |  4 +-
 ...atementTest.java => FederateStatementTest.java} |  4 +-
 .../statement/CircuitBreakerPreparedStatement.java |  4 +-
 .../backend/communication/ProxySQLExecutor.java    | 26 ++++++------
 .../jdbc/connection/BackendConnection.java         | 14 +++----
 .../frontend/command/CommandExecutorTask.java      |  2 +-
 .../netty/FrontendChannelInboundHandler.java       |  2 +-
 .../frontend/command/CommandExecutorTaskTest.java  |  8 ++--
 38 files changed, 157 insertions(+), 205 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
index 29a9402..e0d59aa 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
@@ -37,7 +37,7 @@ public final class ShardingSQLRewriteContextDecorator 
implements SQLRewriteConte
     @SuppressWarnings("unchecked")
     @Override
     public void decorate(final ShardingRule shardingRule, final 
ConfigurationProperties props, final SQLRewriteContext sqlRewriteContext, final 
RouteContext routeContext) {
-        if (routeContext.isToCalcite()) {
+        if (routeContext.isFederated()) {
             return;
         }
         for (ParameterRewriter each : new 
ShardingParameterRewriterBuilder(shardingRule, 
routeContext).getParameterRewriters(sqlRewriteContext.getSchema())) {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/federated/ShardingFederatedRoutingEngine.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/federated/ShardingFederatedRoutingEngine.java
index 47da4e5..1a8a456 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/federated/ShardingFederatedRoutingEngine.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/federated/ShardingFederatedRoutingEngine.java
@@ -47,7 +47,7 @@ public final class ShardingFederatedRoutingEngine implements 
ShardingRouteEngine
                 fillRouteContext(routeContext, shardingRule, each);
             }
         }
-        routeContext.setToCalcite(true);
+        routeContext.setFederated(true);
     }
     
     private void fillRouteContext(final RouteContext routeContext, final 
ShardingRule shardingRule, final String logicTableName) {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngine.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngine.java
index a6a42f4..c8a79c9 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngine.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngine.java
@@ -58,7 +58,7 @@ public final class SingleTablesRoutingEngine implements 
ShardingRouteEngine {
         } else {
             fillRouteContext(shardingRule, routeContext, logicTables);
             if (1 < routeContext.getRouteUnits().size()) {
-                routeContext.setToCalcite(true);
+                routeContext.setFederated(true);
             }
         }
     }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngineTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngineTest.java
index 5ebb272..6996b28 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngineTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/single/SingleTablesRoutingEngineTest.java
@@ -62,7 +62,7 @@ public final class SingleTablesRoutingEngineTest {
         RouteMapper tableMapper1 = tableMappers.next();
         assertThat(tableMapper1.getActualName(), is("t_order_item"));
         assertThat(tableMapper1.getLogicName(), is("t_order_item"));
-        assertThat(routeContext.isToCalcite(), is(false));
+        assertThat(routeContext.isFederated(), is(false));
     }
     
     @Test
@@ -86,7 +86,7 @@ public final class SingleTablesRoutingEngineTest {
         RouteMapper tableMapper1 = 
routeUnits.get(1).getTableMappers().iterator().next();
         assertThat(tableMapper1.getActualName(), is("t_order_item"));
         assertThat(tableMapper1.getLogicName(), is("t_order_item"));
-        assertThat(routeContext.isToCalcite(), is(true));
+        assertThat(routeContext.isFederated(), is(true));
     }
     
     @Test
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
index 90f54fb..9898f90 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContexts.java
@@ -81,7 +81,7 @@ public interface MetaDataContexts extends Closeable {
     /**
      * Get optimize context factory.
      *
-     * @return calcite context factory
+     * @return optimize context factory
      */
     OptimizeContextFactory getOptimizeContextFactory();
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/CalciteExecutor.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/FederateExecutor.java
similarity index 92%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/CalciteExecutor.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/FederateExecutor.java
index e726e20..f2ab39e 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/CalciteExecutor.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/FederateExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.execute;
+package org.apache.shardingsphere.infra.executor.sql.federate.execute;
 
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
 
@@ -24,9 +24,9 @@ import java.sql.SQLException;
 import java.util.List;
 
 /**
- * Calcite executor.
+ * Federate executor.
  */
-public interface CalciteExecutor {
+public interface FederateExecutor {
     
     /**
      * Execute query.
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/CalciteJDBCExecutor.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/FederateJDBCExecutor.java
similarity index 94%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/CalciteJDBCExecutor.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/FederateJDBCExecutor.java
index 87a1278..00f474a 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/CalciteJDBCExecutor.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/FederateJDBCExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.execute;
+package org.apache.shardingsphere.infra.executor.sql.federate.execute;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.jdbc.CalciteConnection;
@@ -35,9 +35,9 @@ import java.util.List;
 import java.util.Properties;
 
 /**
- * Calcite JDBC executor.
+ * Federate JDBC executor.
  */
-public final class CalciteJDBCExecutor implements CalciteExecutor {
+public final class FederateJDBCExecutor implements FederateExecutor {
     
     public static final String CONNECTION_URL = "jdbc:calcite:";
     
@@ -57,7 +57,7 @@ public final class CalciteJDBCExecutor implements 
CalciteExecutor {
         }
     }
     
-    public CalciteJDBCExecutor(final OptimizeContext context) {
+    public FederateJDBCExecutor(final OptimizeContext context) {
         this.context = context;
         PROPERTIES.setProperty(CalciteConnectionProperty.LEX.camelName(), 
context.getConnectionProperties().getProperty(CalciteConnectionProperty.LEX.camelName()));
         
PROPERTIES.setProperty(CalciteConnectionProperty.CONFORMANCE.camelName(), 
context.getConnectionProperties().getProperty(CalciteConnectionProperty.CONFORMANCE.camelName()));
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/context/CalciteDataContext.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/raw/FederateExecuteDataContext.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/context/CalciteDataContext.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/raw/FederateExecuteDataContext.java
index b453a06..85a9aff 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/context/CalciteDataContext.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/raw/FederateExecuteDataContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.raw.context;
+package org.apache.shardingsphere.infra.executor.sql.federate.execute.raw;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.DataContext;
@@ -25,10 +25,10 @@ import org.apache.calcite.schema.SchemaPlus;
 import org.apache.shardingsphere.infra.optimize.context.OptimizeContext;
 
 /**
- * Calcite data context.
+ * Federate execute data context.
  */
 @RequiredArgsConstructor
-public final class CalciteDataContext implements DataContext {
+public final class FederateExecuteDataContext implements DataContext {
     
     private final OptimizeContext context;
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/CalciteRawExecutor.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/raw/FederateRawExecutor.java
similarity index 81%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/CalciteRawExecutor.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/raw/FederateRawExecutor.java
index b251d9e..83c978b 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/CalciteRawExecutor.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/execute/raw/FederateRawExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.execute.raw;
+package org.apache.shardingsphere.infra.executor.sql.federate.execute.raw;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.adapter.enumerable.EnumerableConvention;
@@ -30,8 +30,7 @@ import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.parser.SqlParseException;
 import org.apache.calcite.sql.parser.SqlParser;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.raw.context.CalciteDataContext;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateExecutor;
 import org.apache.shardingsphere.infra.optimize.context.OptimizeContext;
 
 import java.sql.ResultSet;
@@ -39,10 +38,10 @@ import java.util.Collections;
 import java.util.List;
 
 /**
- * Calcite raw executor.
+ * Federate raw executor.
  */
 @RequiredArgsConstructor
-public final class CalciteRawExecutor implements CalciteExecutor {
+public final class FederateRawExecutor implements FederateExecutor {
     
     private final OptimizeContext context;
     
@@ -73,7 +72,7 @@ public final class CalciteRawExecutor implements 
CalciteExecutor {
     
     private Enumerable<Object[]> execute(final RelNode bestPlan) {
         RelOptCluster cluster = context.getRelConverter().getCluster();
-        return new CalciteInterpretableConverter(cluster, 
cluster.traitSetOf(InterpretableConvention.INSTANCE), bestPlan).bind(new 
CalciteDataContext(context));
+        return new FederateInterpretableConverter(cluster, 
cluster.traitSetOf(InterpretableConvention.INSTANCE), bestPlan).bind(new 
FederateExecuteDataContext(context));
     }
     
     private RelNode optimize(final RelNode logicPlan) {
@@ -82,9 +81,9 @@ public final class CalciteRawExecutor implements 
CalciteExecutor {
         return planner.findBestExp();
     }
     
-    public static final class CalciteInterpretableConverter extends 
InterpretableConverter {
+    public static final class FederateInterpretableConverter extends 
InterpretableConverter {
         
-        public CalciteInterpretableConverter(final RelOptCluster cluster, 
final RelTraitSet traits, final RelNode input) {
+        public FederateInterpretableConverter(final RelOptCluster cluster, 
final RelTraitSet traits, final RelNode input) {
             super(cluster, traits, input);
         }
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/CalciteLogicSchema.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchema.java
similarity index 67%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/CalciteLogicSchema.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchema.java
index 3fb585f..a5a16b5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/CalciteLogicSchema.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchema.java
@@ -15,40 +15,40 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.schema;
+package org.apache.shardingsphere.infra.executor.sql.federate.schema;
 
 import lombok.Getter;
 import org.apache.calcite.schema.Table;
 import org.apache.calcite.schema.impl.AbstractSchema;
 import org.apache.commons.collections4.map.LinkedMap;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.table.CalciteFilterableTable;
-import org.apache.shardingsphere.infra.optimize.schema.LogicSchemaMetadata;
-import org.apache.shardingsphere.infra.optimize.schema.LogicTableMetadata;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.table.FederateFilterableTable;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.LogicSchemaMetadata;
+import org.apache.shardingsphere.infra.optimize.core.schema.LogicTableMetadata;
 
 import java.util.Map;
 import java.util.Map.Entry;
 
 
 /**
- * Calcite logic schema.
+ * Federate logic schema.
  *
  */
 @Getter
-public final class CalciteLogicSchema extends AbstractSchema {
+public final class FederateLogicSchema extends AbstractSchema {
     
     private final String name;
     
     private final Map<String, Table> tables = new LinkedMap<>();
     
-    public CalciteLogicSchema(final LogicSchemaMetadata metadata, final 
CalciteRowExecutor executor) {
+    public FederateLogicSchema(final LogicSchemaMetadata metadata, final 
FederateRowExecutor executor) {
         this.name = metadata.getName();
         initTables(metadata, executor);
     }
     
-    private void initTables(final LogicSchemaMetadata metadata, final 
CalciteRowExecutor executor) {
+    private void initTables(final LogicSchemaMetadata metadata, final 
FederateRowExecutor executor) {
         for (Entry<String, LogicTableMetadata> entry : 
metadata.getTables().entrySet()) {
-            tables.put(entry.getKey(), new 
CalciteFilterableTable(entry.getValue(), executor));
+            tables.put(entry.getKey(), new 
FederateFilterableTable(entry.getValue(), executor));
         }
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/CalciteLogicSchemaFactory.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchemaFactory.java
similarity index 69%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/CalciteLogicSchemaFactory.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchemaFactory.java
index b94dcb6..240c174 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/CalciteLogicSchemaFactory.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/FederateLogicSchemaFactory.java
@@ -15,23 +15,23 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.schema;
+package org.apache.shardingsphere.infra.executor.sql.federate.schema;
 
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.optimize.schema.LogicSchemaMetadatas;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.LogicSchemaMetadatas;
 
 import java.util.Map;
 
 /**
- * Calcite logic schema factory.
+ * Federate logic schema factory.
  */
-public final class CalciteLogicSchemaFactory {
+public final class FederateLogicSchemaFactory {
     
     private final LogicSchemaMetadatas metadatas;
     
-    public CalciteLogicSchemaFactory(final Map<String, ShardingSphereMetaData> 
metaDataMap) {
+    public FederateLogicSchemaFactory(final Map<String, 
ShardingSphereMetaData> metaDataMap) {
         metadatas = new LogicSchemaMetadatas(metaDataMap);
     }
     
@@ -42,10 +42,10 @@ public final class CalciteLogicSchemaFactory {
      * @param executor executor
      * @return schema
      */
-    public CalciteLogicSchema create(final String name, final 
CalciteRowExecutor executor) {
+    public FederateLogicSchema create(final String name, final 
FederateRowExecutor executor) {
         if (!metadatas.getSchemas().containsKey(name)) {
             throw new ShardingSphereException("No `%s` schema.", name);
         }
-        return new CalciteLogicSchema(metadatas.getSchemas().get(name), 
executor);
+        return new FederateLogicSchema(metadatas.getSchemas().get(name), 
executor);
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/row/CalciteRowEnumerator.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/row/FederateRowEnumerator.java
similarity index 92%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/row/CalciteRowEnumerator.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/row/FederateRowEnumerator.java
index 542ee66..3168738 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/row/CalciteRowEnumerator.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/row/FederateRowEnumerator.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.schema.row;
+package org.apache.shardingsphere.infra.executor.sql.federate.schema.row;
 
 import org.apache.calcite.linq4j.Enumerator;
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
@@ -27,10 +27,10 @@ import java.util.Iterator;
 import java.util.LinkedList;
 
 /**
- * Calcite row enumerator.
+ * Federate row enumerator.
  *
  */
-public final class CalciteRowEnumerator implements Enumerator<Object[]> {
+public final class FederateRowEnumerator implements Enumerator<Object[]> {
     
     private final Collection<QueryResult> queryResults = new LinkedList<>();
     
@@ -40,7 +40,7 @@ public final class CalciteRowEnumerator implements 
Enumerator<Object[]> {
     
     private Object[] currentRow;
     
-    public CalciteRowEnumerator(final Collection<QueryResult> queryResults) {
+    public FederateRowEnumerator(final Collection<QueryResult> queryResults) {
         this.queryResults.addAll(queryResults);
         iterator = this.queryResults.iterator();
         currentResultSet = iterator.next();
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/row/CalciteRowExecutor.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/row/FederateRowExecutor.java
similarity index 97%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/row/CalciteRowExecutor.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/row/FederateRowExecutor.java
index 4d9fc99..207706c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/row/CalciteRowExecutor.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/row/FederateRowExecutor.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.schema.row;
+package org.apache.shardingsphere.infra.executor.sql.federate.schema.row;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
@@ -42,10 +42,10 @@ import java.util.Collection;
 import java.util.stream.Collectors;
 
 /**
- * Calcite internal executor.
+ * Federate row executor.
  */
 @RequiredArgsConstructor
-public final class CalciteRowExecutor {
+public final class FederateRowExecutor {
     
     // TODO Consider use emptyList
     private final Collection<ShardingSphereRule> rules;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/AbstractCalciteTable.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/AbstractFederateTable.java
similarity index 78%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/AbstractCalciteTable.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/AbstractFederateTable.java
index ffb7693..3a957a5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/AbstractCalciteTable.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/AbstractFederateTable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.schema.table;
+package org.apache.shardingsphere.infra.executor.sql.federate.schema.table;
 
 import lombok.AccessLevel;
 import lombok.Getter;
@@ -23,19 +23,19 @@ import lombok.RequiredArgsConstructor;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.schema.impl.AbstractTable;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowExecutor;
-import org.apache.shardingsphere.infra.optimize.schema.LogicTableMetadata;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
+import org.apache.shardingsphere.infra.optimize.core.schema.LogicTableMetadata;
 
 /**
- * Abstract calcite table.
+ * Abstract Federate table.
  */
 @Getter(AccessLevel.PROTECTED)
 @RequiredArgsConstructor
-public abstract class AbstractCalciteTable extends AbstractTable {
+public abstract class AbstractFederateTable extends AbstractTable {
     
     private final LogicTableMetadata metadata;
     
-    private final CalciteRowExecutor executor;
+    private final FederateRowExecutor executor;
     
     @Override
     public final RelDataType getRowType(final RelDataTypeFactory typeFactory) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/CalciteFilterableTable.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/FederateFilterableTable.java
similarity index 58%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/CalciteFilterableTable.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/FederateFilterableTable.java
index b481a37..22b3a169 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/CalciteFilterableTable.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/FederateFilterableTable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.optimize.schema.table;
+package org.apache.shardingsphere.infra.executor.sql.federate.schema.table;
 
 import org.apache.calcite.DataContext;
 import org.apache.calcite.linq4j.AbstractEnumerable;
@@ -23,21 +23,21 @@ import org.apache.calcite.linq4j.Enumerable;
 import org.apache.calcite.linq4j.Enumerator;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.schema.ProjectableFilterableTable;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowEnumerator;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.table.execute.CalciteExecutionContextGenerator;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.table.execute.CalciteExecutionSQLGenerator;
-import org.apache.shardingsphere.infra.optimize.schema.LogicTableMetadata;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowEnumerator;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.table.generator.FederateExecuteContextGenerator;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.table.generator.FederateExecuteSQLGenerator;
+import org.apache.shardingsphere.infra.optimize.core.schema.LogicTableMetadata;
 
 import java.util.List;
 
 /**
- * Calcite filterable Table.
+ * Federate filterable Table.
  *
  */
-public final class CalciteFilterableTable extends AbstractCalciteTable 
implements ProjectableFilterableTable {
+public final class FederateFilterableTable extends AbstractFederateTable 
implements ProjectableFilterableTable {
     
-    public CalciteFilterableTable(final LogicTableMetadata metadata, final 
CalciteRowExecutor executor) {
+    public FederateFilterableTable(final LogicTableMetadata metadata, final 
FederateRowExecutor executor) {
         super(metadata, executor);
     }
     
@@ -47,9 +47,9 @@ public final class CalciteFilterableTable extends 
AbstractCalciteTable implement
 
             @Override
             public Enumerator<Object[]> enumerator() {
-                CalciteExecutionContextGenerator generator = new 
CalciteExecutionContextGenerator(getMetadata().getName(), 
-                        getExecutor().getInitialExecutionContext(), new 
CalciteExecutionSQLGenerator(root, filters, projects));
-                return new 
CalciteRowEnumerator(getExecutor().execute(generator.generate()));
+                FederateExecuteContextGenerator generator = new 
FederateExecuteContextGenerator(getMetadata().getName(), 
+                        getExecutor().getInitialExecutionContext(), new 
FederateExecuteSQLGenerator(root, filters, projects));
+                return new 
FederateRowEnumerator(getExecutor().execute(generator.generate()));
             }
         };
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/execute/CalciteExecutionContextGenerator.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/generator/FederateExecuteContextGenerator.java
similarity index 90%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/execute/CalciteExecutionContextGenerator.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/generator/FederateExecuteContextGenerator.java
index 17199fd..45f429b 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/execute/CalciteExecutionContextGenerator.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/generator/FederateExecuteContextGenerator.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.table.execute;
+package 
org.apache.shardingsphere.infra.executor.sql.federate.schema.table.generator;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
@@ -30,16 +30,16 @@ import java.util.Collections;
 import java.util.LinkedHashSet;
 
 /**
- * Calcite table execution context generator.
+ * Federate table execute context generator.
  */
 @RequiredArgsConstructor
-public final class CalciteExecutionContextGenerator {
+public final class FederateExecuteContextGenerator {
     
     private final String table;
     
     private final ExecutionContext initialExecutionContext;
     
-    private final CalciteExecutionSQLGenerator filter;
+    private final FederateExecuteSQLGenerator filter;
     
     /**
      * Create execution context.
@@ -52,7 +52,7 @@ public final class CalciteExecutionContextGenerator {
                 getExecutionUnits(routeContext.getRouteUnits(), filter), 
routeContext);
     }
     
-    private Collection<ExecutionUnit> getExecutionUnits(final 
Collection<RouteUnit> routeUnits, final CalciteExecutionSQLGenerator filter) {
+    private Collection<ExecutionUnit> getExecutionUnits(final 
Collection<RouteUnit> routeUnits, final FederateExecuteSQLGenerator filter) {
         Collection<ExecutionUnit> result = new LinkedHashSet<>();
         for (RouteUnit each: routeUnits) {
             fillExecutionUnits(result, filter, each);
@@ -60,7 +60,7 @@ public final class CalciteExecutionContextGenerator {
         return result;
     }
     
-    private void fillExecutionUnits(final Collection<ExecutionUnit> 
executionUnits, final CalciteExecutionSQLGenerator filter, final RouteUnit 
routeUnit) {
+    private void fillExecutionUnits(final Collection<ExecutionUnit> 
executionUnits, final FederateExecuteSQLGenerator filter, final RouteUnit 
routeUnit) {
         for (RouteMapper mapper : routeUnit.getTableMappers()) {
             if (mapper.getLogicName().equals(table)) {
                 executionUnits.add(new 
ExecutionUnit(routeUnit.getDataSourceMapper().getActualName(),
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/execute/CalciteExecutionSQLGenerator.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/generator/FederateExecuteSQLGenerator.java
similarity index 80%
rename from 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/execute/CalciteExecutionSQLGenerator.java
rename to 
shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/generator/FederateExecuteSQLGenerator.java
index c4530c8..890487b 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/schema/table/execute/CalciteExecutionSQLGenerator.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/schema/table/generator/FederateExecuteSQLGenerator.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.table.execute;
+package 
org.apache.shardingsphere.infra.executor.sql.federate.schema.table.generator;
 
 import org.apache.calcite.DataContext;
 import org.apache.calcite.rex.RexNode;
@@ -23,11 +23,11 @@ import org.apache.calcite.rex.RexNode;
 import java.util.List;
 
 /**
- * Calcite execution sql generator.
+ * Federate execute sql generator.
  */
-public final class CalciteExecutionSQLGenerator {
+public final class FederateExecuteSQLGenerator {
     
-    public CalciteExecutionSQLGenerator(final DataContext root, final 
List<RexNode> filters, final int[] projects) {
+    public FederateExecuteSQLGenerator(final DataContext root, final 
List<RexNode> filters, final int[] projects) {
         // TODO
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/plan/PlannerInitializer.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/plan/PlannerInitializer.java
deleted file mode 100644
index a8f6393..0000000
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/execute/raw/plan/PlannerInitializer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.infra.executor.sql.optimize.execute.raw.plan;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.calcite.adapter.enumerable.EnumerableRules;
-import org.apache.calcite.plan.ConventionTraitDef;
-import org.apache.calcite.plan.RelOptPlanner;
-import org.apache.calcite.rel.rules.CoreRules;
-
-/**
- * planner initializer.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class PlannerInitializer {
-    
-    /**
-     * Init.
-     * @param planner planner
-     */
-    public static void init(final RelOptPlanner planner) {
-        planner.addRule(CoreRules.PROJECT_TO_CALC);
-        planner.addRule(CoreRules.FILTER_TO_CALC);
-        planner.addRule(EnumerableRules.ENUMERABLE_LIMIT_RULE);
-        planner.addRule(EnumerableRules.ENUMERABLE_JOIN_RULE);
-        planner.addRule(EnumerableRules.ENUMERABLE_SORT_RULE);
-        planner.addRule(EnumerableRules.ENUMERABLE_TABLE_SCAN_RULE);
-        planner.addRule(EnumerableRules.ENUMERABLE_CALC_RULE);
-        planner.addRelTraitDef(ConventionTraitDef.INSTANCE);
-    }
-}
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
index 0104ad1..c54cb94 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizeContextFactory.java
@@ -51,8 +51,8 @@ import 
org.apache.shardingsphere.infra.database.type.dialect.SQL92DatabaseType;
 import 
org.apache.shardingsphere.infra.database.type.dialect.SQLServerDatabaseType;
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.optimize.plan.PlannerInitializer;
-import org.apache.shardingsphere.infra.optimize.schema.LogicSchemaMetadatas;
+import org.apache.shardingsphere.infra.optimize.core.plan.PlannerInitializer;
+import 
org.apache.shardingsphere.infra.optimize.core.schema.LogicSchemaMetadatas;
 
 import java.util.Collections;
 import java.util.Map;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/convert/SqlNodeConverter.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/convert/SqlNodeConverter.java
similarity index 95%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/convert/SqlNodeConverter.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/convert/SqlNodeConverter.java
index 2b32b4e..b084ec3 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/convert/SqlNodeConverter.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/convert/SqlNodeConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.convert;
+package org.apache.shardingsphere.infra.optimize.core.convert;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/plan/PlannerInitializer.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/plan/PlannerInitializer.java
similarity index 96%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/plan/PlannerInitializer.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/plan/PlannerInitializer.java
index e4f943e..8f80113 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/plan/PlannerInitializer.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/plan/PlannerInitializer.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.plan;
+package org.apache.shardingsphere.infra.optimize.core.plan;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicSchemaMetadata.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadata.java
similarity index 98%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicSchemaMetadata.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadata.java
index fbafb90..50d6a06 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicSchemaMetadata.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadata.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.schema;
+package org.apache.shardingsphere.infra.optimize.core.schema;
 
 import lombok.Getter;
 import org.apache.commons.collections4.map.LinkedMap;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicSchemaMetadatas.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadatas.java
similarity index 96%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicSchemaMetadatas.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadatas.java
index 77887a0..121c54c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicSchemaMetadatas.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicSchemaMetadatas.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.schema;
+package org.apache.shardingsphere.infra.optimize.core.schema;
 
 import lombok.Getter;
 import org.apache.commons.collections4.map.LinkedMap;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicTableMetadata.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicTableMetadata.java
similarity index 98%
rename from 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicTableMetadata.java
rename to 
shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicTableMetadata.java
index 33c9cee..8b877eb 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/schema/LogicTableMetadata.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/core/schema/LogicTableMetadata.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.schema;
+package org.apache.shardingsphere.infra.optimize.core.schema;
 
 import lombok.Getter;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
 
b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
index 6a5c4ec..744a382 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
@@ -47,7 +47,7 @@ public final class RouteContext {
     private final Map<Class<? extends ShardingSphereRule>, RouteStageContext> 
routeStageContexts = new LinkedHashMap<>();
     
     @Setter
-    private boolean toCalcite;
+    private boolean isFederated;
     
     /**
      * Judge is route for single database and table only or not.
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
index b2097aa..dc5d893 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.driver.jdbc.adapter;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.driver.jdbc.adapter.executor.ForceExecuteTemplate;
 import 
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedOperationStatement;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateExecutor;
 
 import java.sql.SQLException;
 import java.sql.SQLWarning;
@@ -51,14 +51,14 @@ public abstract class AbstractStatementAdapter extends 
AbstractUnsupportedOperat
         closed = true;
         try {
             forceExecuteTemplate.execute((Collection) getRoutedStatements(), 
Statement::close);
-            closeCalciteExecutor();
+            closeFederateExecutor();
         } finally {
             getRoutedStatements().clear();
         }
     }
     
-    private void closeCalciteExecutor() throws SQLException {
-        CalciteExecutor executor = getCalciteExecutor();
+    private void closeFederateExecutor() throws SQLException {
+        FederateExecutor executor = getFederateExecutor();
         if (null != executor) {
             executor.close();
         }
@@ -212,5 +212,5 @@ public abstract class AbstractStatementAdapter extends 
AbstractUnsupportedOperat
     
     protected abstract Collection<? extends Statement> getRoutedStatements();
     
-    protected abstract CalciteExecutor getCalciteExecutor();
+    protected abstract FederateExecutor getFederateExecutor();
 }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index a5f47fb..9b78174 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -60,10 +60,10 @@ import 
org.apache.shardingsphere.infra.executor.sql.execute.result.ExecuteResult
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.update.UpdateResult;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteJDBCExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.CalciteLogicSchema;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateJDBCExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.FederateLogicSchema;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.JDBCDriverType;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.StatementOption;
@@ -131,7 +131,7 @@ public final class ShardingSpherePreparedStatement extends 
AbstractPreparedState
     private ResultSet currentResultSet;
     
     @Getter(AccessLevel.PROTECTED)
-    private CalciteExecutor calciteExecutor;
+    private FederateExecutor federateExecutor;
 
     public ShardingSpherePreparedStatement(final ShardingSphereConnection 
connection, final String sql) throws SQLException {
         this(connection, sql, ResultSet.TYPE_FORWARD_ONLY, 
ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT, false);
@@ -189,8 +189,8 @@ public final class ShardingSpherePreparedStatement extends 
AbstractPreparedState
     }
     
     private List<ResultSet> getResultSetsForShardingSphereResultSet() throws 
SQLException {
-        if (null != calciteExecutor) {
-            return Collections.singletonList(calciteExecutor.getResultSet());
+        if (null != federateExecutor) {
+            return Collections.singletonList(federateExecutor.getResultSet());
         }
         return 
statements.stream().map(this::getResultSet).collect(Collectors.toList());
     }
@@ -200,8 +200,8 @@ public final class ShardingSpherePreparedStatement extends 
AbstractPreparedState
             return rawExecutor.execute(createRawExecutionGroupContext(), 
executionContext.getSqlStatementContext(),
                     new RawSQLExecutorCallback()).stream().map(each -> 
(QueryResult) each).collect(Collectors.toList());
         }
-        if (executionContext.getRouteContext().isToCalcite()) {
-            return executeQueryByCalcite();
+        if (executionContext.getRouteContext().isFederated()) {
+            return executeFederatedQuery();
         }
         ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = 
createExecutionGroupContext();
         cacheStatements(executionGroupContext.getInputGroups());
@@ -209,23 +209,23 @@ public final class ShardingSpherePreparedStatement 
extends AbstractPreparedState
                 new 
PreparedStatementExecuteQueryCallback(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
 sqlStatement, SQLExecutorExceptionHandler.isExceptionThrown()));
     }
     
-    private List<QueryResult> executeQueryByCalcite() throws SQLException {
+    private List<QueryResult> executeFederatedQuery() throws SQLException {
         if (executionContext.getExecutionUnits().isEmpty()) {
             return Collections.emptyList();
         }
-        calciteExecutor = createCalciteExecutor();
+        federateExecutor = createFederateExecutor();
         SQLUnit sqlUnit = 
executionContext.getExecutionUnits().iterator().next().getSqlUnit();
-        return calciteExecutor.executeQuery(sqlUnit.getSql(), 
sqlUnit.getParameters());
+        return federateExecutor.executeQuery(sqlUnit.getSql(), 
sqlUnit.getParameters());
     }
     
-    private CalciteExecutor createCalciteExecutor() {
+    private FederateExecutor createFederateExecutor() {
         StatementExecuteQueryCallback callback = new 
StatementExecuteQueryCallback(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
                 executionContext.getSqlStatementContext().getSqlStatement(), 
SQLExecutorExceptionHandler.isExceptionThrown());
-        CalciteRowExecutor executor = new 
CalciteRowExecutor(metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules(),
+        FederateRowExecutor executor = new 
FederateRowExecutor(metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules(),
                 metaDataContexts.getProps(), connection, 
driverJDBCExecutor.getJdbcExecutor(), executionContext, callback);
-        // TODO Consider CalciteRawExecutor
-        CalciteLogicSchema logicSchema = new 
CalciteLogicSchema(metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(DefaultSchema.LOGIC_NAME),
 executor);
-        return new 
CalciteJDBCExecutor(metaDataContexts.getOptimizeContextFactory().create(DefaultSchema.LOGIC_NAME,
 logicSchema));
+        // TODO Consider FederateRawExecutor
+        FederateLogicSchema logicSchema = new 
FederateLogicSchema(metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(DefaultSchema.LOGIC_NAME),
 executor);
+        return new 
FederateJDBCExecutor(metaDataContexts.getOptimizeContextFactory().create(DefaultSchema.LOGIC_NAME,
 logicSchema));
     }
     
     @Override
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index 8832265..9947317 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -58,10 +58,10 @@ import 
org.apache.shardingsphere.infra.executor.sql.execute.result.ExecuteResult
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.update.UpdateResult;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteJDBCExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.CalciteLogicSchema;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateJDBCExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.FederateLogicSchema;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.JDBCDriverType;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.StatementOption;
@@ -117,7 +117,7 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
     private ResultSet currentResultSet;
     
     @Getter(AccessLevel.PROTECTED)
-    private CalciteExecutor calciteExecutor;
+    private FederateExecutor federateExecutor;
     
     public ShardingSphereStatement(final ShardingSphereConnection connection) {
         this(connection, ResultSet.TYPE_FORWARD_ONLY, 
ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
@@ -158,8 +158,8 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
     }
     
     private List<ResultSet> getResultSetsForShardingSphereResultSet() throws 
SQLException {
-        if (null != calciteExecutor) {
-            return Collections.singletonList(calciteExecutor.getResultSet());
+        if (null != federateExecutor) {
+            return Collections.singletonList(federateExecutor.getResultSet());
         }
         return 
statements.stream().map(this::getResultSet).collect(Collectors.toList());
     }
@@ -169,8 +169,8 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
             return rawExecutor.execute(createRawExecutionContext(), 
executionContext.getSqlStatementContext(),
                     new RawSQLExecutorCallback()).stream().map(each -> 
(QueryResult) each).collect(Collectors.toList());
         }
-        if (executionContext.getRouteContext().isToCalcite()) {
-            return executeQueryByCalcite();
+        if (executionContext.getRouteContext().isFederated()) {
+            return executeFederatedQuery();
         }
         ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = 
createExecutionContext();
         cacheStatements(executionGroupContext.getInputGroups());
@@ -179,23 +179,23 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
         return driverJDBCExecutor.executeQuery(executionGroupContext, 
executionContext.getSqlStatementContext(), callback);
     }
     
-    private List<QueryResult> executeQueryByCalcite() throws SQLException {
+    private List<QueryResult> executeFederatedQuery() throws SQLException {
         if (executionContext.getExecutionUnits().isEmpty()) {
             return Collections.emptyList();
         }
-        calciteExecutor = createCalciteExecutor();
+        federateExecutor = createFederateExecutor();
         SQLUnit sqlUnit = 
executionContext.getExecutionUnits().iterator().next().getSqlUnit();
-        return calciteExecutor.executeQuery(sqlUnit.getSql(), 
sqlUnit.getParameters());
+        return federateExecutor.executeQuery(sqlUnit.getSql(), 
sqlUnit.getParameters());
     }
     
-    private CalciteExecutor createCalciteExecutor() {
+    private FederateExecutor createFederateExecutor() {
         StatementExecuteQueryCallback callback = new 
StatementExecuteQueryCallback(metaDataContexts.getDefaultMetaData().getResource().getDatabaseType(),
                 executionContext.getSqlStatementContext().getSqlStatement(), 
SQLExecutorExceptionHandler.isExceptionThrown());
-        CalciteRowExecutor executor = new 
CalciteRowExecutor(metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules(),
+        FederateRowExecutor executor = new 
FederateRowExecutor(metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules(),
                 metaDataContexts.getProps(), connection, 
driverJDBCExecutor.getJdbcExecutor(), executionContext, callback);
-        // TODO Consider CalciteRawExecutor
-        CalciteLogicSchema logicSchema = new 
CalciteLogicSchema(metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(DefaultSchema.LOGIC_NAME),
 executor);
-        return new 
CalciteJDBCExecutor(metaDataContexts.getOptimizeContextFactory().create(DefaultSchema.LOGIC_NAME,
 logicSchema));
+        // TODO Consider FederateRawExecutor
+        FederateLogicSchema logicSchema = new 
FederateLogicSchema(metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(DefaultSchema.LOGIC_NAME),
 executor);
+        return new 
FederateJDBCExecutor(metaDataContexts.getOptimizeContextFactory().create(DefaultSchema.LOGIC_NAME,
 logicSchema));
     }
     
     @Override
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractSQLCalciteTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractSQLFederationTest.java
similarity index 98%
rename from 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractSQLCalciteTest.java
rename to 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractSQLFederationTest.java
index 4d1276a..7d40e56 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractSQLCalciteTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractSQLFederationTest.java
@@ -28,7 +28,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 
-public abstract class AbstractSQLCalciteTest {
+public abstract class AbstractSQLFederationTest {
     
     private static final Map<String, DataSource> ACTUAL_DATA_SOURCES = new 
HashMap<>();
     
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForCalciteTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForFederateTest.java
similarity index 97%
rename from 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForCalciteTest.java
rename to 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForFederateTest.java
index a8e3b90..4d9243a 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForCalciteTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/base/AbstractShardingSphereDataSourceForFederateTest.java
@@ -38,7 +38,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
-public abstract class AbstractShardingSphereDataSourceForCalciteTest extends 
AbstractSQLCalciteTest {
+public abstract class AbstractShardingSphereDataSourceForFederateTest extends 
AbstractSQLFederationTest {
     
     private static ShardingSphereDataSource dataSource;
     
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/CalcitePrepareStatementTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/FederatePrepareStatementTest.java
similarity index 98%
rename from 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/CalcitePrepareStatementTest.java
rename to 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/FederatePrepareStatementTest.java
index 1ec2ea2..b9e1b65 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/CalcitePrepareStatementTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/FederatePrepareStatementTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.driver.jdbc.core.statement;
 
-import 
org.apache.shardingsphere.driver.jdbc.base.AbstractShardingSphereDataSourceForCalciteTest;
+import 
org.apache.shardingsphere.driver.jdbc.base.AbstractShardingSphereDataSourceForFederateTest;
 import org.junit.Test;
 
 import java.sql.ResultSet;
@@ -29,7 +29,7 @@ import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-public final class CalcitePrepareStatementTest extends 
AbstractShardingSphereDataSourceForCalciteTest {
+public final class FederatePrepareStatementTest extends 
AbstractShardingSphereDataSourceForFederateTest {
 
     private static final String SELECT_SQL_BY_ID_ACROSS_SINGLE_TABLES =
             "select o.*, i.* from t_order_calcite o, t_order_item_calcite i 
where o.order_id = ? and i.item_id = ?";
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/CalciteStatementTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/FederateStatementTest.java
similarity index 98%
rename from 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/CalciteStatementTest.java
rename to 
shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/FederateStatementTest.java
index c2eb065..781deae 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/CalciteStatementTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/FederateStatementTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.driver.jdbc.core.statement;
 
-import 
org.apache.shardingsphere.driver.jdbc.base.AbstractShardingSphereDataSourceForCalciteTest;
+import 
org.apache.shardingsphere.driver.jdbc.base.AbstractShardingSphereDataSourceForFederateTest;
 import org.junit.Test;
 
 import java.sql.ResultSet;
@@ -29,7 +29,7 @@ import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-public final class CalciteStatementTest extends 
AbstractShardingSphereDataSourceForCalciteTest {
+public final class FederateStatementTest extends 
AbstractShardingSphereDataSourceForFederateTest {
 
     private static final String SELECT_SQL_BY_ID_ACROSS_SINGLE_TABLES =
             "select o.*, i.* from t_order_calcite o, t_order_item_calcite i "
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/circuit/statement/CircuitBreakerPreparedStatement.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/circuit/statement/CircuitBreakerPreparedStatement.java
index a5275d1..025be8b 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/circuit/statement/CircuitBreakerPreparedStatement.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/circuit/statement/CircuitBreakerPreparedStatement.java
@@ -21,7 +21,7 @@ import lombok.Getter;
 import 
org.apache.shardingsphere.driver.governance.internal.circuit.connection.CircuitBreakerConnection;
 import 
org.apache.shardingsphere.driver.governance.internal.circuit.resultset.CircuitBreakerResultSet;
 import 
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedOperationPreparedStatement;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateExecutor;
 
 import java.io.InputStream;
 import java.io.Reader;
@@ -276,7 +276,7 @@ public final class CircuitBreakerPreparedStatement extends 
AbstractUnsupportedOp
     }
     
     @Override
-    protected CalciteExecutor getCalciteExecutor() {
+    protected FederateExecutor getFederateExecutor() {
         return null;
     }
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
index 3c8d26f..682d3eb 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
@@ -32,10 +32,10 @@ import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.RawExecut
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.RawSQLExecutionUnit;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.callback.RawSQLExecutorCallback;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.ExecuteResult;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteJDBCExecutor;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.CalciteLogicSchema;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.schema.row.CalciteRowExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateJDBCExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.FederateLogicSchema;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.schema.row.FederateRowExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.StatementOption;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.raw.RawExecutionPrepareEngine;
@@ -119,8 +119,8 @@ public final class ProxySQLExecutor {
         if (rules.stream().anyMatch(each -> each instanceof RawExecutionRule)) 
{
             return rawExecute(executionContext, rules, 
maxConnectionsSizePerQuery);
         }
-        if (executionContext.getRouteContext().isToCalcite()) {
-            return useCalciteToExecute(executionContext, rules, 
isReturnGeneratedKeys, SQLExecutorExceptionHandler.isExceptionThrown());
+        if (executionContext.getRouteContext().isFederated()) {
+            return federateExecute(executionContext, rules, 
isReturnGeneratedKeys, SQLExecutorExceptionHandler.isExceptionThrown());
         }
         return useDriverToExecute(executionContext, rules, 
maxConnectionsSizePerQuery, isReturnGeneratedKeys, 
SQLExecutorExceptionHandler.isExceptionThrown());
     }
@@ -137,20 +137,20 @@ public final class ProxySQLExecutor {
         return rawExecutor.execute(executionGroupContext, 
executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
     }
     
-    private Collection<ExecuteResult> useCalciteToExecute(final 
ExecutionContext executionContext, final Collection<ShardingSphereRule> rules,
-                                                          final boolean 
isReturnGeneratedKeys, final boolean isExceptionThrown) throws SQLException {
+    private Collection<ExecuteResult> federateExecute(final ExecutionContext 
executionContext, final Collection<ShardingSphereRule> rules,
+                                                      final boolean 
isReturnGeneratedKeys, final boolean isExceptionThrown) throws SQLException {
         if (executionContext.getExecutionUnits().isEmpty()) {
             return Collections.emptyList();
         }
         MetaDataContexts metaData = 
ProxyContext.getInstance().getMetaDataContexts();
         ProxyJDBCExecutorCallback callback = 
ProxyJDBCExecutorCallbackFactory.newInstance(type, 
metaData.getMetaData(backendConnection.getSchemaName()).getResource().getDatabaseType(),
 
                 executionContext.getSqlStatementContext().getSqlStatement(), 
backendConnection, isReturnGeneratedKeys, isExceptionThrown, true);
-        CalciteRowExecutor executor = new CalciteRowExecutor(rules, 
metaData.getProps(), backendConnection, jdbcExecutor.getJdbcExecutor(), 
executionContext, callback);
-        CalciteLogicSchema logicSchema = new 
CalciteLogicSchema(metaData.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(backendConnection.getSchemaName()),
 executor);
-        CalciteExecutor calciteExecutor = new 
CalciteJDBCExecutor(metaData.getOptimizeContextFactory().create(backendConnection.getSchemaName(),
 logicSchema));
-        backendConnection.setCalciteExecutor(calciteExecutor);
+        FederateRowExecutor executor = new FederateRowExecutor(rules, 
metaData.getProps(), backendConnection, jdbcExecutor.getJdbcExecutor(), 
executionContext, callback);
+        FederateLogicSchema logicSchema = new 
FederateLogicSchema(metaData.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(backendConnection.getSchemaName()),
 executor);
+        FederateExecutor federateExecutor = new 
FederateJDBCExecutor(metaData.getOptimizeContextFactory().create(backendConnection.getSchemaName(),
 logicSchema));
+        backendConnection.setFederateExecutor(federateExecutor);
         SQLUnit sqlUnit = 
executionContext.getExecutionUnits().iterator().next().getSqlUnit();
-        return calciteExecutor.executeQuery(sqlUnit.getSql(), 
sqlUnit.getParameters()).stream().map(each -> (ExecuteResult) 
each).collect(Collectors.toList());
+        return federateExecutor.executeQuery(sqlUnit.getSql(), 
sqlUnit.getParameters()).stream().map(each -> (ExecuteResult) 
each).collect(Collectors.toList());
     }
     
     private Collection<ExecuteResult> useDriverToExecute(final 
ExecutionContext executionContext, final Collection<ShardingSphereRule> rules, 
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
index 3381863..1bcffb8 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
@@ -26,7 +26,7 @@ import 
org.apache.shardingsphere.db.protocol.parameter.TypeUnspecifiedSQLParamet
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.execute.CalciteExecutor;
+import 
org.apache.shardingsphere.infra.executor.sql.federate.execute.FederateExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.ExecutorJDBCManager;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.StatementOption;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
@@ -70,7 +70,7 @@ public final class BackendConnection implements 
ExecutorJDBCManager {
     private volatile Grantee grantee;
     
     @Setter
-    private volatile CalciteExecutor calciteExecutor;
+    private volatile FederateExecutor federateExecutor;
     
     private final Multimap<String, Connection> cachedConnections = 
LinkedHashMultimap.create();
     
@@ -291,15 +291,15 @@ public final class BackendConnection implements 
ExecutorJDBCManager {
     }
     
     /**
-     * Close calcite executor.
+     * Close federate executor.
      * 
-     * @return SQL exception when calcite executor close
+     * @return SQL exception when federate executor close
      */
-    public synchronized Collection<SQLException> closeCalciteExecutor() {
+    public synchronized Collection<SQLException> closeFederateExecutor() {
         Collection<SQLException> result = new LinkedList<>();
-        if (null != calciteExecutor) {
+        if (null != federateExecutor) {
             try {
-                calciteExecutor.close();
+                federateExecutor.close();
             } catch (final SQLException ex) {
                 result.add(ex);
             }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
index 0323a9f..cfda0ce 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
@@ -116,7 +116,7 @@ public final class CommandExecutorTask implements Runnable {
         PrimaryVisitedManager.clear();
         result.addAll(backendConnection.closeResultSets());
         result.addAll(backendConnection.closeStatements());
-        result.addAll(backendConnection.closeCalciteExecutor());
+        result.addAll(backendConnection.closeFederateExecutor());
         return result;
     }
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/FrontendChannelInboundHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/FrontendChannelInboundHandler.java
index 76908f0..dd964be 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/FrontendChannelInboundHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/FrontendChannelInboundHandler.java
@@ -97,7 +97,7 @@ public final class FrontendChannelInboundHandler extends 
ChannelInboundHandlerAd
         backendConnection.closeResultSets();
         backendConnection.closeStatements();
         backendConnection.closeConnections(true);
-        backendConnection.closeCalciteExecutor();
+        backendConnection.closeFederateExecutor();
         databaseProtocolFrontendEngine.release(backendConnection);
     }
     
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java
index ad12e22..2fefd4e 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java
@@ -103,7 +103,7 @@ public final class CommandExecutorTaskTest {
         
when(backendConnection.closeResultSets()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeStatements()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeConnections(false)).thenReturn(Collections.emptyList());
-        
when(backendConnection.closeCalciteExecutor()).thenReturn(Collections.emptyList());
+        
when(backendConnection.closeFederateExecutor()).thenReturn(Collections.emptyList());
         CommandExecutorTask actual = new CommandExecutorTask(engine, 
backendConnection, handlerContext, message);
         actual.run();
         verify(connectionStatus).waitUntilConnectionRelease();
@@ -123,7 +123,7 @@ public final class CommandExecutorTaskTest {
         
when(backendConnection.closeResultSets()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeStatements()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeConnections(false)).thenReturn(Collections.emptyList());
-        
when(backendConnection.closeCalciteExecutor()).thenReturn(Collections.emptyList());
+        
when(backendConnection.closeFederateExecutor()).thenReturn(Collections.emptyList());
         CommandExecutorTask actual = new CommandExecutorTask(engine, 
backendConnection, handlerContext, message);
         actual.run();
         verify(connectionStatus).waitUntilConnectionRelease();
@@ -148,7 +148,7 @@ public final class CommandExecutorTaskTest {
         
when(backendConnection.closeResultSets()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeStatements()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeConnections(false)).thenReturn(Collections.emptyList());
-        
when(backendConnection.closeCalciteExecutor()).thenReturn(Collections.emptyList());
+        
when(backendConnection.closeFederateExecutor()).thenReturn(Collections.emptyList());
         CommandExecutorTask actual = new CommandExecutorTask(engine, 
backendConnection, handlerContext, message);
         actual.run();
         verify(connectionStatus).waitUntilConnectionRelease();
@@ -169,7 +169,7 @@ public final class CommandExecutorTaskTest {
         
when(backendConnection.closeResultSets()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeStatements()).thenReturn(Collections.emptyList());
         
when(backendConnection.closeConnections(false)).thenReturn(Collections.emptyList());
-        
when(backendConnection.closeCalciteExecutor()).thenReturn(Collections.emptyList());
+        
when(backendConnection.closeFederateExecutor()).thenReturn(Collections.emptyList());
         CommandExecutorTask actual = new CommandExecutorTask(engine, 
backendConnection, handlerContext, message);
         actual.run();
         verify(handlerContext, atLeast(2)).writeAndFlush(databasePacket);

Reply via email to