You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2021/11/24 13:34:59 UTC

[shardingsphere] branch master updated: rename shardingsphere-infra-optimize to shardingsphere-infra-federation (#13777)

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

zhangliang 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 d068e72  rename shardingsphere-infra-optimize to shardingsphere-infra-federation (#13777)
d068e72 is described below

commit d068e7215cbff4ed044031912ea338d31e9e5456
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Wed Nov 24 21:34:14 2021 +0800

    rename shardingsphere-infra-optimize to shardingsphere-infra-federation (#13777)
---
 shardingsphere-infra/pom.xml                       |  2 +-
 .../context/refresher/MetaDataRefreshEngine.java   |  4 ++--
 .../refresher/MetaDataRefresherFactory.java        |  6 +++---
 .../shardingsphere-infra-executor/pom.xml          |  2 +-
 .../sql/federate/FederationExecutorFactory.java    |  2 +-
 .../CustomizedFilterableExecuteDataContext.java    |  2 +-
 .../customized/CustomizedFilterableExecutor.java   |  4 ++--
 .../sql/federate/original/FilterableSchema.java    |  4 ++--
 .../original/OriginalFilterableExecutor.java       |  2 +-
 .../sql/FilterableExecutionContextGenerator.java   |  2 +-
 .../original/sql/FilterableSQLGenerator.java       |  2 +-
 .../federate/original/table/FilterableTable.java   |  2 +-
 .../table/FilterableTableScanExecutor.java         |  2 +-
 .../sql/federate/FederateJDBCExecutorTest.java     |  4 ++--
 .../pom.xml                                        |  2 +-
 .../infra/federation}/ShardingSphereOptimizer.java |  6 +++---
 .../federation}/context/OptimizerContext.java      |  8 ++++----
 .../context/OptimizerContextFactory.java           | 12 +++++------
 .../context/parser/OptimizerParserContext.java     |  2 +-
 .../parser/OptimizerParserContextFactory.java      |  4 ++--
 .../parser/dialect/OptimizerSQLDialectBuilder.java |  2 +-
 .../dialect/OptimizerSQLDialectBuilderFactory.java |  2 +-
 .../parser/dialect/impl/H2OptimizerBuilder.java    |  4 ++--
 .../dialect/impl/MariaDBOptimizerBuilder.java      |  4 ++--
 .../parser/dialect/impl/MySQLOptimizerBuilder.java |  4 ++--
 .../dialect/impl/OpenGaussOptimizerBuilder.java    |  4 ++--
 .../dialect/impl/OracleOptimizerBuilder.java       |  4 ++--
 .../dialect/impl/PostgreSQLOptimizerBuilder.java   |  4 ++--
 .../parser/dialect/impl/SQL92OptimizerBuilder.java |  4 ++--
 .../dialect/impl/SQLServerOptimizerBuilder.java    |  4 ++--
 .../context/planner/OptimizerPlannerContext.java   |  2 +-
 .../planner/OptimizerPlannerContextFactory.java    | 10 ++++-----
 .../converter/SQLNodeConverterEngine.java          |  4 ++--
 .../converter/context/ConverterContext.java        |  2 +-
 .../converter/context/ConverterContextHolder.java  |  2 +-
 .../converter/segment/SQLSegmentConverter.java     |  2 +-
 .../segment/expression/ExpressionConverter.java    | 24 +++++++++++-----------
 .../impl/BetweenExpressionConverter.java           |  6 +++---
 .../impl/BinaryOperationExpressionConverter.java   |  6 +++---
 .../segment/expression/impl/ColumnConverter.java   |  4 ++--
 .../impl/ExistsSubqueryExpressionConverter.java    |  6 +++---
 .../segment/expression/impl/FunctionConverter.java |  4 ++--
 .../expression/impl/InExpressionConverter.java     |  6 +++---
 .../expression/impl/ListExpressionConverter.java   |  6 +++---
 .../impl/LiteralExpressionConverter.java           |  4 ++--
 .../impl/ParameterMarkerExpressionConverter.java   |  6 +++---
 .../impl/SubqueryExpressionConverter.java          |  6 +++---
 .../converter/segment/from/TableConverter.java     | 10 ++++-----
 .../segment/from/impl/JoinTableConverter.java      |  8 ++++----
 .../segment/from/impl/SimpleTableConverter.java    |  4 ++--
 .../segment/from/impl/SubqueryTableConverter.java  |  6 +++---
 .../segment/groupby/GroupByConverter.java          |  6 +++---
 .../converter/segment/groupby/HavingConverter.java |  6 +++---
 .../segment/limit/PaginationValueSQLConverter.java |  6 +++---
 .../segment/orderby/OrderByConverter.java          |  6 +++---
 .../orderby/item/ColumnOrderByItemConverter.java   |  6 +++---
 .../item/ExpressionOrderByItemConverter.java       |  4 ++--
 .../orderby/item/OrderByItemConverterUtil.java     |  2 +-
 .../segment/projection/DistinctConverter.java      |  4 ++--
 .../segment/projection/ProjectionsConverter.java   | 14 ++++++-------
 .../impl/AggregationProjectionConverter.java       |  4 ++--
 .../projection/impl/ColumnProjectionConverter.java |  6 +++---
 .../impl/ExpressionProjectionConverter.java        |  6 +++---
 .../impl/ShorthandProjectionConverter.java         |  4 ++--
 .../impl/SubqueryProjectionConverter.java          |  6 +++---
 .../converter/segment/where/WhereConverter.java    |  6 +++---
 .../converter/statement/SQLStatementConverter.java |  2 +-
 .../statement/SelectStatementConverter.java        | 22 ++++++++++----------
 .../federation}/metadata/FederationMetaData.java   |  2 +-
 .../metadata/FederationSchemaMetaData.java         |  2 +-
 .../metadata/FederationTableMetaData.java          |  2 +-
 .../metadata/calcite/FederationSchema.java         |  6 +++---
 .../metadata/calcite/FederationTable.java          |  4 ++--
 .../refresher/FederationMetaDataRefresher.java     |  4 ++--
 .../AlterTableFederationMetaDataRefresher.java     |  6 +++---
 .../CreateTableFederationMetaDataRefresher.java    |  6 +++---
 .../type/DropTableFederationMetaDataRefresher.java |  6 +++---
 .../planner/QueryOptimizePlannerFactory.java       |  2 +-
 ...text.parser.dialect.OptimizerSQLDialectBuilder} | 16 +++++++--------
 .../loader/CommonFixtureTableMetaDataBuilder.java  |  4 ++--
 .../AlterTableFederationMetaDataRefresherTest.java |  8 ++++----
 ...CreateTableFederationMetaDataRefresherTest.java |  6 +++---
 .../DropTableFederationMetaDataRefresherTest.java  |  6 +++---
 .../metadata/rule/CommonFixtureRule.java           |  2 +-
 ...chema.builder.spi.RuleBasedTableMetaDataBuilder |  2 +-
 .../src/test/resources/logback-test.xml            |  0
 .../mode/manager/ContextManager.java               |  2 +-
 .../mode/metadata/MetaDataContexts.java            |  4 ++--
 .../mode/metadata/MetaDataContextsBuilder.java     |  2 +-
 .../mode/metadata/MetaDataContextsTest.java        |  2 +-
 .../ClusterContextManagerCoordinatorTest.java      |  2 +-
 .../DatabaseCommunicationEngineFactoryTest.java    |  2 +-
 .../DatabaseCommunicationEngineTest.java           |  2 +-
 .../jdbc/connection/BackendConnectionTest.java     |  2 +-
 .../jdbc/datasource/JDBCBackendDataSourceTest.java |  2 +-
 .../context/BackendExecutorContextTest.java        |  2 +-
 .../proxy/backend/context/ProxyContextTest.java    |  2 +-
 .../DatabaseOperateBackendHandlerFactoryTest.java  |  2 +-
 .../executor/ShowCreateDatabaseExecutorTest.java   |  2 +-
 .../executor/ShowCurrentUserExecutorTest.java      |  2 +-
 .../mysql/executor/ShowDatabasesExecutorTest.java  |  2 +-
 .../executor/ShowFunctionStatusExecutorTest.java   |  2 +-
 .../executor/ShowProcedureStatusExecutorTest.java  |  2 +-
 .../mysql/executor/ShowTablesExecutorTest.java     |  2 +-
 .../executor/ShowTablesStatusExecutorTest.java     |  2 +-
 .../mysql/executor/UseDatabaseExecutorTest.java    |  2 +-
 .../information/SelectInformationExecutorTest.java |  2 +-
 .../executor/SelectDatabaseExecutorTest.java       |  2 +-
 .../executor/SelectTableExecutorTest.java          |  2 +-
 .../impl/BroadcastDatabaseBackendHandlerTest.java  |  2 +-
 .../SchemaAssignedDatabaseBackendHandlerTest.java  |  2 +-
 .../impl/UnicastDatabaseBackendHandlerTest.java    |  2 +-
 .../distsql/DistSQLBackendHandlerFactoryTest.java  |  2 +-
 .../distsql/ral/SetVariableBackendHandlerTest.java |  2 +-
 .../FrontDatabaseProtocolTypeFactoryTest.java      |  2 +-
 .../frontend/mysql/MySQLFrontendEngineTest.java    |  2 +-
 .../MySQLAuthenticationEngineTest.java             |  2 +-
 .../MySQLAuthenticationHandlerTest.java            |  2 +-
 .../command/MySQLCommandExecutorFactoryTest.java   |  2 +-
 .../execute/MySQLComStmtExecuteExecutorTest.java   |  2 +-
 .../PostgreSQLAuthenticationEngineTest.java        |  2 +-
 .../PostgreSQLAuthenticationHandlerTest.java       |  2 +-
 .../parse/PostgreSQLComParseExecutorTest.java      |  2 +-
 .../shardingsphere-optimize-test/pom.xml           |  2 +-
 .../SQLNodeConvertEngineParameterizedTest.java     |  6 +++---
 125 files changed, 258 insertions(+), 258 deletions(-)

diff --git a/shardingsphere-infra/pom.xml b/shardingsphere-infra/pom.xml
index 19ca066..f6ae5a8 100644
--- a/shardingsphere-infra/pom.xml
+++ b/shardingsphere-infra/pom.xml
@@ -39,6 +39,6 @@
         <module>shardingsphere-infra-merge</module>
         <module>shardingsphere-infra-context</module>
         <module>shardingsphere-infra-datetime</module>
-        <module>shardingsphere-infra-optimize</module>
+        <module>shardingsphere-infra-federation</module>
     </modules>
 </project>
diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java
index 1e6ef23..1cc8c00 100644
--- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java
+++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java
@@ -29,8 +29,8 @@ import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMate
 import org.apache.shardingsphere.infra.metadata.schema.loader.SchemaLoader;
 import org.apache.shardingsphere.infra.metadata.schema.refresher.SchemaRefresher;
 import org.apache.shardingsphere.infra.metadata.schema.refresher.event.SchemaAlteredEvent;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.FederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.FederationMetaDataRefresher;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.rule.builder.schema.SchemaRulesBuilder;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
diff --git a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefresherFactory.java b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefresherFactory.java
index c8b0974..719d9fb 100644
--- a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefresherFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefresherFactory.java
@@ -28,9 +28,9 @@ import org.apache.shardingsphere.infra.metadata.schema.refresher.type.CreateView
 import org.apache.shardingsphere.infra.metadata.schema.refresher.type.DropIndexStatementSchemaRefresher;
 import org.apache.shardingsphere.infra.metadata.schema.refresher.type.DropTableStatementSchemaRefresher;
 import org.apache.shardingsphere.infra.metadata.schema.refresher.type.DropViewStatementSchemaRefresher;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.type.AlterTableFederationMetaDataRefresher;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.type.CreateTableFederationMetaDataRefresher;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.type.DropTableFederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.type.AlterTableFederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.type.CreateTableFederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.type.DropTableFederationMetaDataRefresher;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterIndexStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/pom.xml b/shardingsphere-infra/shardingsphere-infra-executor/pom.xml
index 994c35a..1d86777 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/pom.xml
+++ b/shardingsphere-infra/shardingsphere-infra-executor/pom.xml
@@ -41,7 +41,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-optimize</artifactId>
+            <artifactId>shardingsphere-infra-federation</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/FederationExecutorFactory.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/FederationExecutorFactory.java
index a588de5..0dd51be 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/FederationExecutorFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/FederationExecutorFactory.java
@@ -22,7 +22,7 @@ import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.OriginalFilterableExecutor;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 
 /**
  * Federation executor factory.
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecuteDataContext.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecuteDataContext.java
index 7bccd22..70f8b3c 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecuteDataContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecuteDataContext.java
@@ -23,7 +23,7 @@ import org.apache.calcite.linq4j.QueryProvider;
 import org.apache.calcite.schema.SchemaPlus;
 import org.apache.calcite.sql.validate.SqlValidator;
 import org.apache.calcite.sql2rel.SqlToRelConverter;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 
 /**
  * Customized filterable execute data context.
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecutor.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecutor.java
index fd00a80..0743114 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecutor.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/customized/CustomizedFilterableExecutor.java
@@ -30,8 +30,8 @@ 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.federate.FederationExecutor;
 import org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine;
-import org.apache.shardingsphere.infra.optimize.ShardingSphereOptimizer;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.ShardingSphereOptimizer;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.sql.Connection;
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/FilterableSchema.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/FilterableSchema.java
index f1e6064..1cb95ed 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/FilterableSchema.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/FilterableSchema.java
@@ -23,8 +23,8 @@ import org.apache.calcite.schema.impl.AbstractSchema;
 import org.apache.commons.collections4.map.LinkedMap;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.table.FilterableTable;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.table.FilterableTableScanExecutor;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationTableMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationTableMetaData;
 
 import java.util.Map;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/OriginalFilterableExecutor.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/OriginalFilterableExecutor.java
index 70371ba..d0cf0a1 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/OriginalFilterableExecutor.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/OriginalFilterableExecutor.java
@@ -31,7 +31,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.dr
 import org.apache.shardingsphere.infra.executor.sql.federate.FederationExecutor;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.table.FilterableTableScanExecutor;
 import org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtil;
 
 import java.sql.Connection;
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableExecutionContextGenerator.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableExecutionContextGenerator.java
index 798bc85..cef84d5 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableExecutionContextGenerator.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableExecutionContextGenerator.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
 import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
 import org.apache.shardingsphere.infra.executor.sql.context.SQLUnit;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.table.FilterableTableScanContext;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationTableMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationTableMetaData;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.infra.route.context.RouteMapper;
 import org.apache.shardingsphere.infra.route.context.RouteUnit;
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableSQLGenerator.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableSQLGenerator.java
index 4e169ce..94c36b9 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableSQLGenerator.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/sql/FilterableSQLGenerator.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.executor.sql.federate.original.sql;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.table.FilterableTableScanContext;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationTableMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationTableMetaData;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.util.Arrays;
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTable.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTable.java
index cbe17d3..09d06d9 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTable.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTable.java
@@ -33,7 +33,7 @@ import org.apache.calcite.schema.impl.AbstractTable;
 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.FederationTableStatistic;
 import org.apache.shardingsphere.infra.executor.sql.federate.original.row.FilterableRowEnumerator;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationTableMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationTableMetaData;
 
 /**
  * Filterable table.
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTableScanExecutor.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTableScanExecutor.java
index 207ac3d..42ba302 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTableScanExecutor.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/federate/original/table/FilterableTableScanExecutor.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryRe
 import org.apache.shardingsphere.infra.executor.sql.federate.original.sql.FilterableExecutionContextGenerator;
 import org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecutionPrepareEngine;
 import org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessEngine;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationTableMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationTableMetaData;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 
 import java.sql.Connection;
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/federate/FederateJDBCExecutorTest.java b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/federate/FederateJDBCExecutorTest.java
index 217ed13..7988d49 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/federate/FederateJDBCExecutorTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/federate/FederateJDBCExecutorTest.java
@@ -25,8 +25,8 @@ import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.ShardingSphereOptimizer;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContextFactory;
+import org.apache.shardingsphere.infra.federation.ShardingSphereOptimizer;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContextFactory;
 import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import org.junit.Before;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/pom.xml b/shardingsphere-infra/shardingsphere-infra-federation/pom.xml
similarity index 98%
rename from shardingsphere-infra/shardingsphere-infra-optimize/pom.xml
rename to shardingsphere-infra/shardingsphere-infra-federation/pom.xml
index 4abc7c4..ed40b73 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/pom.xml
+++ b/shardingsphere-infra/shardingsphere-infra-federation/pom.xml
@@ -25,7 +25,7 @@
         <artifactId>shardingsphere-infra</artifactId>
         <version>5.0.1-SNAPSHOT</version>
     </parent>
-    <artifactId>shardingsphere-infra-optimize</artifactId>
+    <artifactId>shardingsphere-infra-federation</artifactId>
     <name>${project.artifactId}</name>
     
     <dependencies>
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/ShardingSphereOptimizer.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/ShardingSphereOptimizer.java
similarity index 95%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/ShardingSphereOptimizer.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/ShardingSphereOptimizer.java
index 4eca44d..dd9ff52 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/ShardingSphereOptimizer.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/ShardingSphereOptimizer.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize;
+package org.apache.shardingsphere.infra.federation;
 
 import com.google.common.collect.ImmutableList;
 import lombok.Getter;
@@ -36,8 +36,8 @@ import org.apache.calcite.tools.Programs;
 import org.apache.calcite.util.ImmutableIntList;
 import org.apache.calcite.util.Pair;
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
-import org.apache.shardingsphere.infra.optimize.converter.SQLNodeConverterEngine;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.converter.SQLNodeConverterEngine;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.ArrayList;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizerContext.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/OptimizerContext.java
similarity index 78%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizerContext.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/OptimizerContext.java
index f1b4321..64c8eaa 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizerContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/OptimizerContext.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context;
+package org.apache.shardingsphere.infra.federation.context;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.infra.optimize.context.parser.OptimizerParserContext;
-import org.apache.shardingsphere.infra.optimize.context.planner.OptimizerPlannerContext;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationMetaData;
+import org.apache.shardingsphere.infra.federation.context.parser.OptimizerParserContext;
+import org.apache.shardingsphere.infra.federation.context.planner.OptimizerPlannerContext;
+import org.apache.shardingsphere.infra.federation.metadata.FederationMetaData;
 
 import java.util.Map;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizerContextFactory.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/OptimizerContextFactory.java
similarity index 77%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizerContextFactory.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/OptimizerContextFactory.java
index 2ba621f..e709964 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/OptimizerContextFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/OptimizerContextFactory.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context;
+package org.apache.shardingsphere.infra.federation.context;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.optimize.context.parser.OptimizerParserContext;
-import org.apache.shardingsphere.infra.optimize.context.parser.OptimizerParserContextFactory;
-import org.apache.shardingsphere.infra.optimize.context.planner.OptimizerPlannerContext;
-import org.apache.shardingsphere.infra.optimize.context.planner.OptimizerPlannerContextFactory;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationMetaData;
+import org.apache.shardingsphere.infra.federation.context.parser.OptimizerParserContext;
+import org.apache.shardingsphere.infra.federation.context.parser.OptimizerParserContextFactory;
+import org.apache.shardingsphere.infra.federation.context.planner.OptimizerPlannerContext;
+import org.apache.shardingsphere.infra.federation.context.planner.OptimizerPlannerContextFactory;
+import org.apache.shardingsphere.infra.federation.metadata.FederationMetaData;
 
 import java.util.Map;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/OptimizerParserContext.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/OptimizerParserContext.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/OptimizerParserContext.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/OptimizerParserContext.java
index c600dbc..0aea625 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/OptimizerParserContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/OptimizerParserContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser;
+package org.apache.shardingsphere.infra.federation.context.parser;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/OptimizerParserContextFactory.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/OptimizerParserContextFactory.java
similarity index 93%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/OptimizerParserContextFactory.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/OptimizerParserContextFactory.java
index 012e082..590393e 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/OptimizerParserContextFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/OptimizerParserContextFactory.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser;
+package org.apache.shardingsphere.infra.federation.context.parser;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilderFactory;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilderFactory;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/OptimizerSQLDialectBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/OptimizerSQLDialectBuilder.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/OptimizerSQLDialectBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/OptimizerSQLDialectBuilder.java
index a770deb..1251d71 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/OptimizerSQLDialectBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/OptimizerSQLDialectBuilder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect;
 
 import org.apache.shardingsphere.spi.required.RequiredSPI;
 import org.apache.shardingsphere.spi.typed.TypedSPI;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/OptimizerSQLDialectBuilderFactory.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/OptimizerSQLDialectBuilderFactory.java
similarity index 96%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/OptimizerSQLDialectBuilderFactory.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/OptimizerSQLDialectBuilderFactory.java
index e789d10..a28bfbb 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/OptimizerSQLDialectBuilderFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/OptimizerSQLDialectBuilderFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.spi.ShardingSphereServiceLoader;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/H2OptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/H2OptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/H2OptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/H2OptimizerBuilder.java
index bff708e..c6f91e4 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/H2OptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/H2OptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/MariaDBOptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/MariaDBOptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/MariaDBOptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/MariaDBOptimizerBuilder.java
index 028f226..dccc52c 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/MariaDBOptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/MariaDBOptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/MySQLOptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/MySQLOptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/MySQLOptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/MySQLOptimizerBuilder.java
index e3d2b9f..96ebd0c 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/MySQLOptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/MySQLOptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/OpenGaussOptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/OpenGaussOptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/OpenGaussOptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/OpenGaussOptimizerBuilder.java
index 9c513f6..a66be0f 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/OpenGaussOptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/OpenGaussOptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/OracleOptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/OracleOptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/OracleOptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/OracleOptimizerBuilder.java
index 86bc2de..61d252c 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/OracleOptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/OracleOptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/PostgreSQLOptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/PostgreSQLOptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/PostgreSQLOptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/PostgreSQLOptimizerBuilder.java
index 597dc4f..12e37f9 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/PostgreSQLOptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/PostgreSQLOptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/SQL92OptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/SQL92OptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/SQL92OptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/SQL92OptimizerBuilder.java
index ed1fcdf..19897ae 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/SQL92OptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/SQL92OptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/SQLServerOptimizerBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/SQLServerOptimizerBuilder.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/SQLServerOptimizerBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/SQLServerOptimizerBuilder.java
index 70609ac..42deed8 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/parser/dialect/impl/SQLServerOptimizerBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/parser/dialect/impl/SQLServerOptimizerBuilder.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl;
+package org.apache.shardingsphere.infra.federation.context.parser.dialect.impl;
 
 import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.config.Lex;
 import org.apache.calcite.sql.fun.SqlLibrary;
 import org.apache.calcite.sql.validate.SqlConformanceEnum;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder;
 
 import java.util.Properties;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/planner/OptimizerPlannerContext.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/planner/OptimizerPlannerContext.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/planner/OptimizerPlannerContext.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/planner/OptimizerPlannerContext.java
index 3ed1ff6..77b6860 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/planner/OptimizerPlannerContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/planner/OptimizerPlannerContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.planner;
+package org.apache.shardingsphere.infra.federation.context.planner;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/planner/OptimizerPlannerContextFactory.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/planner/OptimizerPlannerContextFactory.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/planner/OptimizerPlannerContextFactory.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/planner/OptimizerPlannerContextFactory.java
index 26c76ae..654be8d 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/planner/OptimizerPlannerContextFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/context/planner/OptimizerPlannerContextFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.context.planner;
+package org.apache.shardingsphere.infra.federation.context.planner;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -36,10 +36,10 @@ import org.apache.calcite.sql.validate.SqlValidatorUtil;
 import org.apache.calcite.sql2rel.SqlToRelConverter;
 import org.apache.calcite.sql2rel.SqlToRelConverter.Config;
 import org.apache.calcite.sql2rel.StandardConvertletTable;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.calcite.FederationSchema;
-import org.apache.shardingsphere.infra.optimize.planner.QueryOptimizePlannerFactory;
+import org.apache.shardingsphere.infra.federation.metadata.FederationMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.calcite.FederationSchema;
+import org.apache.shardingsphere.infra.federation.planner.QueryOptimizePlannerFactory;
 
 import java.util.Collections;
 import java.util.HashMap;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/SQLNodeConverterEngine.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/SQLNodeConverterEngine.java
similarity index 93%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/SQLNodeConverterEngine.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/SQLNodeConverterEngine.java
index dee4a28..8893c9c 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/SQLNodeConverterEngine.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/SQLNodeConverterEngine.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter;
+package org.apache.shardingsphere.infra.federation.converter;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlOrderBy;
 import org.apache.calcite.sql.SqlSelect;
-import org.apache.shardingsphere.infra.optimize.converter.statement.SelectStatementConverter;
+import org.apache.shardingsphere.infra.federation.converter.statement.SelectStatementConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/context/ConverterContext.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/context/ConverterContext.java
similarity index 93%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/context/ConverterContext.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/context/ConverterContext.java
index 50ba252..5209d86 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/context/ConverterContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/context/ConverterContext.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.context;
+package org.apache.shardingsphere.infra.federation.converter.context;
 
 import lombok.Getter;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/context/ConverterContextHolder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/context/ConverterContextHolder.java
similarity index 95%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/context/ConverterContextHolder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/context/ConverterContextHolder.java
index e2e0930..ae9aa2d 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/context/ConverterContextHolder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/context/ConverterContextHolder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.context;
+package org.apache.shardingsphere.infra.federation.converter.context;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/SQLSegmentConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/SQLSegmentConverter.java
similarity index 96%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/SQLSegmentConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/SQLSegmentConverter.java
index 1ca48a0..9c7ce94 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/SQLSegmentConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/SQLSegmentConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment;
+package org.apache.shardingsphere.infra.federation.converter.segment;
 
 import org.apache.calcite.sql.SqlNode;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/ExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/ExpressionConverter.java
similarity index 85%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/ExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/ExpressionConverter.java
index 9711dda..555a1f3 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/ExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/ExpressionConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlBinaryOperator;
@@ -29,17 +29,17 @@ import org.apache.calcite.sql.fun.SqlBetweenOperator;
 import org.apache.calcite.sql.fun.SqlInOperator;
 import org.apache.calcite.sql.fun.SqlPositionFunction;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.BetweenExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.BinaryOperationExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.ColumnConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.ExistsSubqueryExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.FunctionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.InExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.ListExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.LiteralExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.ParameterMarkerExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.SubqueryExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.BetweenExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.BinaryOperationExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.ColumnConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.ExistsSubqueryExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.FunctionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.InExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.ListExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.LiteralExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.ParameterMarkerExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.SubqueryExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenExpression;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/BetweenExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/BetweenExpressionConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/BetweenExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/BetweenExpressionConverter.java
index ec2622c..16fb16b 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/BetweenExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/BetweenExpressionConverter.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenExpression;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/BinaryOperationExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
similarity index 93%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
index 358d500..fd84083 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/BinaryOperationExpressionConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import com.google.common.base.Preconditions;
 import org.apache.calcite.sql.SqlBasicCall;
@@ -23,8 +23,8 @@ import org.apache.calcite.sql.SqlBinaryOperator;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ColumnConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ColumnConverter.java
similarity index 93%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ColumnConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ColumnConverter.java
index f113666..e890681 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ColumnConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ColumnConverter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import com.google.common.collect.ImmutableList;
 import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
similarity index 91%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
index db108d9..0957fb4 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ExistsSubqueryExpressionConverter.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.statement.SelectStatementConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.statement.SelectStatementConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExistsSubqueryExpression;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/FunctionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/FunctionConverter.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/FunctionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/FunctionConverter.java
index be49fd3..5c54fe3 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/FunctionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/FunctionConverter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlLiteral;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlPositionFunction;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.FunctionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/InExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/InExpressionConverter.java
similarity index 91%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/InExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/InExpressionConverter.java
index b5e0a2a..6a5638b 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/InExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/InExpressionConverter.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.InExpression;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ListExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ListExpressionConverter.java
similarity index 88%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ListExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ListExpressionConverter.java
index 2cbaed3..00eaffb 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ListExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ListExpressionConverter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ListExpression;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/LiteralExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/LiteralExpressionConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/LiteralExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/LiteralExpressionConverter.java
index 9612494..8293418 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/LiteralExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/LiteralExpressionConverter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import org.apache.calcite.sql.SqlLiteral;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtil;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ParameterMarkerExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ParameterMarkerExpressionConverter.java
similarity index 87%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ParameterMarkerExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ParameterMarkerExpressionConverter.java
index 36344fd..bbef679 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/ParameterMarkerExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/ParameterMarkerExpressionConverter.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import org.apache.calcite.sql.SqlDynamicParam;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.context.ConverterContextHolder;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.context.ConverterContextHolder;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
 
 import java.util.Optional;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/SubqueryExpressionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/SubqueryExpressionConverter.java
similarity index 89%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/SubqueryExpressionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/SubqueryExpressionConverter.java
index 2fbafd8..94c74db 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/expression/impl/SubqueryExpressionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/expression/impl/SubqueryExpressionConverter.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.expression.impl;
 
 import org.apache.calcite.sql.SqlNode;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.statement.SelectStatementConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.statement.SelectStatementConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubqueryExpressionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/TableConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/TableConverter.java
similarity index 88%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/TableConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/TableConverter.java
index 8d7b713..34ba66f 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/TableConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/TableConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.from;
+package org.apache.shardingsphere.infra.federation.converter.segment.from;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlIdentifier;
@@ -23,10 +23,10 @@ import org.apache.calcite.sql.SqlJoin;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlOrderBy;
 import org.apache.calcite.sql.SqlSelect;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.from.impl.JoinTableConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.from.impl.SimpleTableConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.from.impl.SubqueryTableConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.from.impl.JoinTableConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.from.impl.SimpleTableConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.from.impl.SubqueryTableConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SubqueryTableSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/JoinTableConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/JoinTableConverter.java
similarity index 91%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/JoinTableConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/JoinTableConverter.java
index a5e2ab4..981c070 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/JoinTableConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/JoinTableConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.from.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.from.impl;
 
 import org.apache.calcite.sql.JoinConditionType;
 import org.apache.calcite.sql.JoinType;
@@ -23,9 +23,9 @@ import org.apache.calcite.sql.SqlJoin;
 import org.apache.calcite.sql.SqlLiteral;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.from.TableConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.from.TableConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.JoinTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableSegment;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/SimpleTableConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/SimpleTableConverter.java
similarity index 95%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/SimpleTableConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/SimpleTableConverter.java
index b7601f8..8abc084 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/SimpleTableConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/SimpleTableConverter.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.from.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.from.impl;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/SubqueryTableConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/SubqueryTableConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/SubqueryTableConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/SubqueryTableConverter.java
index fad90b0..40578bb 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/from/impl/SubqueryTableConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/from/impl/SubqueryTableConverter.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.from.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.from.impl;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.statement.SelectStatementConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.statement.SelectStatementConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SubqueryTableSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/groupby/GroupByConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/groupby/GroupByConverter.java
similarity index 88%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/groupby/GroupByConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/groupby/GroupByConverter.java
index 92ea31e..d247f33 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/groupby/GroupByConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/groupby/GroupByConverter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.groupby;
+package org.apache.shardingsphere.infra.federation.converter.segment.groupby;
 
 import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.orderby.item.OrderByItemConverterUtil;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.orderby.item.OrderByItemConverterUtil;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.GroupBySegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.OrderByItemSegment;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/groupby/HavingConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/groupby/HavingConverter.java
similarity index 84%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/groupby/HavingConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/groupby/HavingConverter.java
index 3231b9c..e5e6367 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/groupby/HavingConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/groupby/HavingConverter.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.groupby;
+package org.apache.shardingsphere.infra.federation.converter.segment.groupby;
 
 import org.apache.calcite.sql.SqlNode;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.HavingSegment;
 
 import java.util.Optional;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/limit/PaginationValueSQLConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/limit/PaginationValueSQLConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/limit/PaginationValueSQLConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/limit/PaginationValueSQLConverter.java
index 8c5dbd8..c72bd94 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/limit/PaginationValueSQLConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/limit/PaginationValueSQLConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.limit;
+package org.apache.shardingsphere.infra.federation.converter.segment.limit;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.sql.SqlDynamicParam;
@@ -23,8 +23,8 @@ import org.apache.calcite.sql.SqlLiteral;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlNumericLiteral;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.context.ConverterContext;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.context.ConverterContext;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.NumberLiteralPaginationValueSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.PaginationValueSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.limit.NumberLiteralLimitValueSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/OrderByConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/OrderByConverter.java
similarity index 87%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/OrderByConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/OrderByConverter.java
index 7aac7ba..bc12aa7 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/OrderByConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/OrderByConverter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.orderby;
+package org.apache.shardingsphere.infra.federation.converter.segment.orderby;
 
 import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.orderby.item.OrderByItemConverterUtil;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.orderby.item.OrderByItemConverterUtil;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.OrderBySegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.OrderByItemSegment;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/ColumnOrderByItemConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/ColumnOrderByItemConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/ColumnOrderByItemConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/ColumnOrderByItemConverter.java
index a634802..80e0141 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/ColumnOrderByItemConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/ColumnOrderByItemConverter.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.orderby.item;
+package org.apache.shardingsphere.infra.federation.converter.segment.orderby.item;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.ColumnConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.ColumnConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.OrderDirection;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.ColumnOrderByItemSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/ExpressionOrderByItemConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
similarity index 89%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
index 7076163..f8c63aa 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.orderby.item;
+package org.apache.shardingsphere.infra.federation.converter.segment.orderby.item;
 
 import org.apache.calcite.sql.SqlNode;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.ExpressionOrderByItemSegment;
 
 import java.util.Optional;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/OrderByItemConverterUtil.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/OrderByItemConverterUtil.java
similarity index 97%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/OrderByItemConverterUtil.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/OrderByItemConverterUtil.java
index 16f986e..c39feeb 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/orderby/item/OrderByItemConverterUtil.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/orderby/item/OrderByItemConverterUtil.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.orderby.item;
+package org.apache.shardingsphere.infra.federation.converter.segment.orderby.item;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/DistinctConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/DistinctConverter.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/DistinctConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/DistinctConverter.java
index d0369df..aee9a66 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/DistinctConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/DistinctConverter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.projection;
+package org.apache.shardingsphere.infra.federation.converter.segment.projection;
 
 import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.SqlSelectKeyword;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
 
 import java.util.Collections;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/ProjectionsConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/ProjectionsConverter.java
similarity index 89%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/ProjectionsConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/ProjectionsConverter.java
index ba0c124..f522bbe 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/ProjectionsConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/ProjectionsConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.projection;
+package org.apache.shardingsphere.infra.federation.converter.segment.projection;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlIdentifier;
@@ -25,12 +25,12 @@ import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.SqlOrderBy;
 import org.apache.calcite.sql.SqlSelect;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl.AggregationProjectionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl.ColumnProjectionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl.ExpressionProjectionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl.ShorthandProjectionConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl.SubqueryProjectionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.projection.impl.AggregationProjectionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.projection.impl.ColumnProjectionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.projection.impl.ExpressionProjectionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.projection.impl.ShorthandProjectionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.projection.impl.SubqueryProjectionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.AggregationType;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.AggregationProjectionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ColumnProjectionSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/AggregationProjectionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/AggregationProjectionConverter.java
similarity index 98%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/AggregationProjectionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/AggregationProjectionConverter.java
index c154efb..07044af 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/AggregationProjectionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/AggregationProjectionConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.projection.impl;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Splitter;
@@ -28,7 +28,7 @@ import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlSelectKeyword;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.AggregationType;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.AggregationDistinctProjectionSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ColumnProjectionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ColumnProjectionConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ColumnProjectionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ColumnProjectionConverter.java
index e65cf6d..cf6b3ef 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ColumnProjectionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ColumnProjectionConverter.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.projection.impl;
 
 import org.apache.calcite.sql.SqlAsOperator;
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.impl.ColumnConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.impl.ColumnConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ColumnProjectionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ExpressionProjectionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ExpressionProjectionConverter.java
similarity index 87%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ExpressionProjectionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ExpressionProjectionConverter.java
index 23a8bec..1a70634 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ExpressionProjectionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ExpressionProjectionConverter.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.projection.impl;
 
 import org.apache.calcite.sql.SqlBasicCall;
 import org.apache.calcite.sql.SqlNode;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ExpressionProjectionSegment;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ShorthandProjectionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ShorthandProjectionConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ShorthandProjectionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ShorthandProjectionConverter.java
index 84bc2e9..4e90db6 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/ShorthandProjectionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/ShorthandProjectionConverter.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.projection.impl;
 
 import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ShorthandProjectionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/SubqueryProjectionConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/SubqueryProjectionConverter.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/SubqueryProjectionConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/SubqueryProjectionConverter.java
index 9ccf39e..fe585f2 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/projection/impl/SubqueryProjectionConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/projection/impl/SubqueryProjectionConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.projection.impl;
+package org.apache.shardingsphere.infra.federation.converter.segment.projection.impl;
 
 import org.apache.calcite.avatica.util.Quoting;
 import org.apache.calcite.sql.SqlBasicCall;
@@ -25,8 +25,8 @@ import org.apache.calcite.sql.SqlOrderBy;
 import org.apache.calcite.sql.SqlSelect;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.statement.SelectStatementConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.statement.SelectStatementConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.SubqueryProjectionSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/where/WhereConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/where/WhereConverter.java
similarity index 87%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/where/WhereConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/where/WhereConverter.java
index 09c28f1..a9b82aa 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/segment/where/WhereConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/segment/where/WhereConverter.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.segment.where;
+package org.apache.shardingsphere.infra.federation.converter.segment.where;
 
 import org.apache.calcite.sql.SqlNode;
-import org.apache.shardingsphere.infra.optimize.converter.segment.SQLSegmentConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.expression.ExpressionConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.SQLSegmentConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.expression.ExpressionConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.predicate.WhereSegment;
 
 import java.util.Optional;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/statement/SQLStatementConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/statement/SQLStatementConverter.java
similarity index 95%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/statement/SQLStatementConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/statement/SQLStatementConverter.java
index 66031ad..423c9cf 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/statement/SQLStatementConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/statement/SQLStatementConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.statement;
+package org.apache.shardingsphere.infra.federation.converter.statement;
 
 import org.apache.calcite.sql.SqlNode;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/statement/SelectStatementConverter.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/statement/SelectStatementConverter.java
similarity index 87%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/statement/SelectStatementConverter.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/statement/SelectStatementConverter.java
index 1d6744f..c0c7ee0 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/converter/statement/SelectStatementConverter.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/converter/statement/SelectStatementConverter.java
@@ -15,23 +15,23 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.statement;
+package org.apache.shardingsphere.infra.federation.converter.statement;
 
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.SqlOrderBy;
 import org.apache.calcite.sql.SqlSelect;
 import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.infra.optimize.converter.context.ConverterContext;
-import org.apache.shardingsphere.infra.optimize.converter.context.ConverterContextHolder;
-import org.apache.shardingsphere.infra.optimize.converter.segment.from.TableConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.groupby.GroupByConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.groupby.HavingConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.limit.PaginationValueSQLConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.orderby.OrderByConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.projection.DistinctConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.projection.ProjectionsConverter;
-import org.apache.shardingsphere.infra.optimize.converter.segment.where.WhereConverter;
+import org.apache.shardingsphere.infra.federation.converter.context.ConverterContext;
+import org.apache.shardingsphere.infra.federation.converter.context.ConverterContextHolder;
+import org.apache.shardingsphere.infra.federation.converter.segment.from.TableConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.groupby.GroupByConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.groupby.HavingConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.limit.PaginationValueSQLConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.orderby.OrderByConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.projection.DistinctConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.projection.ProjectionsConverter;
+import org.apache.shardingsphere.infra.federation.converter.segment.where.WhereConverter;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.PaginationValueSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationMetaData.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationMetaData.java
similarity index 96%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationMetaData.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationMetaData.java
index 6d15b3b..1bf53d1 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationMetaData.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationMetaData.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata;
+package org.apache.shardingsphere.infra.federation.metadata;
 
 import lombok.Getter;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationSchemaMetaData.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationSchemaMetaData.java
similarity index 97%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationSchemaMetaData.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationSchemaMetaData.java
index e1e83ad..cd02488 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationSchemaMetaData.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationSchemaMetaData.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata;
+package org.apache.shardingsphere.infra.federation.metadata;
 
 import lombok.Getter;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationTableMetaData.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationTableMetaData.java
similarity index 97%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationTableMetaData.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationTableMetaData.java
index cd976e8..000ed90 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/FederationTableMetaData.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/FederationTableMetaData.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata;
+package org.apache.shardingsphere.infra.federation.metadata;
 
 import lombok.Getter;
 import org.apache.calcite.avatica.SqlType;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/calcite/FederationSchema.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/calcite/FederationSchema.java
similarity index 87%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/calcite/FederationSchema.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/calcite/FederationSchema.java
index 18f3d9e..d21c291 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/calcite/FederationSchema.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/calcite/FederationSchema.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.calcite;
+package org.apache.shardingsphere.infra.federation.metadata.calcite;
 
 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.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationTableMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationTableMetaData;
 
 import java.util.Map;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/calcite/FederationTable.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/calcite/FederationTable.java
similarity index 91%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/calcite/FederationTable.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/calcite/FederationTable.java
index a0852ed..5506221 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/calcite/FederationTable.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/calcite/FederationTable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.calcite;
+package org.apache.shardingsphere.infra.federation.metadata.calcite;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.DataContext;
@@ -25,7 +25,7 @@ import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.schema.ProjectableFilterableTable;
 import org.apache.calcite.schema.impl.AbstractTable;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationTableMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationTableMetaData;
 
 import java.util.List;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/FederationMetaDataRefresher.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/FederationMetaDataRefresher.java
similarity index 91%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/FederationMetaDataRefresher.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/FederationMetaDataRefresher.java
index b61bd75..bc0c676 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/FederationMetaDataRefresher.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/FederationMetaDataRefresher.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.refresher;
+package org.apache.shardingsphere.infra.federation.metadata.refresher;
 
 import org.apache.shardingsphere.infra.metadata.MetaDataRefresher;
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.sql.SQLException;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
similarity index 90%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
index 5bc8c60..f0446b8 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/AlterTableFederationMetaDataRefresher.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.refresher.type;
+package org.apache.shardingsphere.infra.federation.metadata.refresher.type;
 
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
 import org.apache.shardingsphere.infra.metadata.schema.builder.TableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.FederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.FederationMetaDataRefresher;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
 
 import java.sql.SQLException;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
similarity index 88%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
index 5335512..ed087f5 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/CreateTableFederationMetaDataRefresher.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.refresher.type;
+package org.apache.shardingsphere.infra.federation.metadata.refresher.type;
 
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
 import org.apache.shardingsphere.infra.metadata.schema.builder.TableMetaDataBuilder;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.FederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.FederationMetaDataRefresher;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTableStatement;
 
 import java.sql.SQLException;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/DropTableFederationMetaDataRefresher.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/DropTableFederationMetaDataRefresher.java
similarity index 85%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/DropTableFederationMetaDataRefresher.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/DropTableFederationMetaDataRefresher.java
index 59ff1d9..5c572dd 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/type/DropTableFederationMetaDataRefresher.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/metadata/refresher/type/DropTableFederationMetaDataRefresher.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.refresher.type;
+package org.apache.shardingsphere.infra.federation.metadata.refresher.type;
 
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.FederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.FederationMetaDataRefresher;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
 
 import java.sql.SQLException;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/planner/QueryOptimizePlannerFactory.java b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/planner/QueryOptimizePlannerFactory.java
similarity index 96%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/planner/QueryOptimizePlannerFactory.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/planner/QueryOptimizePlannerFactory.java
index d7285e0..318f0fb 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/planner/QueryOptimizePlannerFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/java/org/apache/shardingsphere/infra/federation/planner/QueryOptimizePlannerFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.planner;
+package org.apache.shardingsphere.infra.federation.planner;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder b/shardingsphere-infra/shardingsphere-infra-federation/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder
similarity index 50%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder
rename to shardingsphere-infra/shardingsphere-infra-federation/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder
index f84a695..0518ac7 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilder
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilder
@@ -15,11 +15,11 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.H2OptimizerBuilder
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.MySQLOptimizerBuilder
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.MariaDBOptimizerBuilder
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.PostgreSQLOptimizerBuilder
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.OpenGaussOptimizerBuilder
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.SQLServerOptimizerBuilder
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.OracleOptimizerBuilder
-org.apache.shardingsphere.infra.optimize.context.parser.dialect.impl.SQL92OptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.H2OptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.MySQLOptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.MariaDBOptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.PostgreSQLOptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.OpenGaussOptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.SQLServerOptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.OracleOptimizerBuilder
+org.apache.shardingsphere.infra.federation.context.parser.dialect.impl.SQL92OptimizerBuilder
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/loader/CommonFixtureTableMetaDataBuilder.java b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/loader/CommonFixtureTableMetaDataBuilder.java
similarity index 92%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/loader/CommonFixtureTableMetaDataBuilder.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/loader/CommonFixtureTableMetaDataBuilder.java
index 105da68..e299023 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/loader/CommonFixtureTableMetaDataBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/loader/CommonFixtureTableMetaDataBuilder.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.loader;
+package org.apache.shardingsphere.infra.federation.metadata.loader;
 
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
 import org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.rule.CommonFixtureRule;
+import org.apache.shardingsphere.infra.federation.metadata.rule.CommonFixtureRule;
 
 import java.sql.SQLException;
 import java.util.Collection;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/AlterTableFederationMetaDataRefresherTest.java b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/AlterTableFederationMetaDataRefresherTest.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/AlterTableFederationMetaDataRefresherTest.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/AlterTableFederationMetaDataRefresherTest.java
index 7b70a85..ab1e48e 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/AlterTableFederationMetaDataRefresherTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/AlterTableFederationMetaDataRefresherTest.java
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.refresher;
+package org.apache.shardingsphere.infra.federation.metadata.refresher;
 
 import com.google.common.collect.ImmutableMap;
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.type.AlterTableFederationMetaDataRefresher;
-import org.apache.shardingsphere.infra.optimize.metadata.rule.CommonFixtureRule;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.type.AlterTableFederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.rule.CommonFixtureRule;
 import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/CreateTableFederationMetaDataRefresherTest.java b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/CreateTableFederationMetaDataRefresherTest.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/CreateTableFederationMetaDataRefresherTest.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/CreateTableFederationMetaDataRefresherTest.java
index a3cbfe6..849f695 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/CreateTableFederationMetaDataRefresherTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/CreateTableFederationMetaDataRefresherTest.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.refresher;
+package org.apache.shardingsphere.infra.federation.metadata.refresher;
 
 import com.google.common.collect.ImmutableMap;
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.type.CreateTableFederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.type.CreateTableFederationMetaDataRefresher;
 import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/DropTableFederationMetaDataRefresherTest.java b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/DropTableFederationMetaDataRefresherTest.java
similarity index 95%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/DropTableFederationMetaDataRefresherTest.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/DropTableFederationMetaDataRefresherTest.java
index e83f498..d87c0dd 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/refresher/DropTableFederationMetaDataRefresherTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/refresher/DropTableFederationMetaDataRefresherTest.java
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.refresher;
+package org.apache.shardingsphere.infra.federation.metadata.refresher;
 
 import com.google.common.collect.ImmutableMap;
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMaterials;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.refresher.type.DropTableFederationMetaDataRefresher;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.refresher.type.DropTableFederationMetaDataRefresher;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/rule/CommonFixtureRule.java b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/rule/CommonFixtureRule.java
similarity index 94%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/rule/CommonFixtureRule.java
rename to shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/rule/CommonFixtureRule.java
index 45c35ac..664b7f5 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/java/org/apache/shardingsphere/infra/optimize/metadata/rule/CommonFixtureRule.java
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/test/java/org/apache/shardingsphere/infra/federation/metadata/rule/CommonFixtureRule.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.metadata.rule;
+package org.apache.shardingsphere.infra.federation.metadata.rule;
 
 import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
 
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder b/shardingsphere-infra/shardingsphere-infra-federation/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
similarity index 89%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
rename to shardingsphere-infra/shardingsphere-infra-federation/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
index 127ab8e..c6802a2 100644
--- a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
+++ b/shardingsphere-infra/shardingsphere-infra-federation/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.RuleBasedTableMetaDataBuilder
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.optimize.metadata.loader.CommonFixtureTableMetaDataBuilder
+org.apache.shardingsphere.infra.federation.metadata.loader.CommonFixtureTableMetaDataBuilder
diff --git a/shardingsphere-infra/shardingsphere-infra-optimize/src/test/resources/logback-test.xml b/shardingsphere-infra/shardingsphere-infra-federation/src/test/resources/logback-test.xml
similarity index 100%
rename from shardingsphere-infra/shardingsphere-infra-optimize/src/test/resources/logback-test.xml
rename to shardingsphere-infra/shardingsphere-infra-federation/src/test/resources/logback-test.xml
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index e71f924..7f2c9d0 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -34,7 +34,7 @@ import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilderMate
 import org.apache.shardingsphere.infra.metadata.schema.builder.TableMetaDataBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.loader.SchemaLoader;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.metadata.FederationSchemaMetaData;
+import org.apache.shardingsphere.infra.federation.metadata.FederationSchemaMetaData;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
 import org.apache.shardingsphere.infra.rule.builder.schema.SchemaRulesBuilder;
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
index dc329e1..8dfd67e 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
@@ -23,8 +23,8 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.lock.ShardingSphereLock;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContextFactory;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContextFactory;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 
 import java.util.Collection;
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilder.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilder.java
index 579d354..769f56f 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilder.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsBuilder.java
@@ -32,7 +32,7 @@ import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.schema.builder.SchemaBuilder;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContextFactory;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContextFactory;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
index f73bfbd..6907106 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
index b8a2b57..02367c6 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
@@ -35,7 +35,7 @@ import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.QualifiedSchema;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
index c6b2a7e..8f61c96 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java
index 63fab6f..b2d8faf 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineTest.java
@@ -32,7 +32,7 @@ import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java
index 512589f..8b9c09c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnectionTest.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
index cf99d2c..c933e3d 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java
index 8ffc698..53e8bc5 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/BackendExecutorContextTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.proxy.backend.context;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index fd50384..3ff664c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
index 16fa82b..41c19e0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutorTest.java
index b2383a5..68fb0a5 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutorTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutorTest.java
index 57ec6b6..5edabd6 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutorTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java
index 2a6abb5..8a6fc63 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutorTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowFunctionStatusExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowFunctionStatusExecutorTest.java
index 6c07d71..8883fcf 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowFunctionStatusExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowFunctionStatusExecutorTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowProcedureStatusExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowProcedureStatusExecutorTest.java
index 9ab032d..eefeba3 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowProcedureStatusExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowProcedureStatusExecutorTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java
index e754f70..2477cfb 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesExecutorTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesStatusExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesStatusExecutorTest.java
index 6791a56..df1f4a6 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesStatusExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTablesStatusExecutorTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
index d80c5c6..2aebe16 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/UseDatabaseExecutorTest.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationExecutorTest.java
index 07694d7..daa35e5 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/information/SelectInformationExecutorTest.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.metadata.resource.DataSourcesMetaData;
 import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutorTest.java
index 1a4d22b..f75758e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectDatabaseExecutorTest.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.metadata.resource.DataSourcesMetaData;
 import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutorTest.java
index 3369ef6..2cafff0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/postgresql/executor/SelectTableExecutorTest.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java
index 30775d7..b66effe 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/BroadcastDatabaseBackendHandlerTest.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java
index 36be171..36494d0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/SchemaAssignedDatabaseBackendHandlerTest.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java
index 7590571..0579fee 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/data/impl/UnicastDatabaseBackendHandlerTest.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
index 5bdc50b..3c8e7fd 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java
index bb0e9da..1e0d15b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/SetVariableBackendHandlerTest.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index 33e1250..2b591fe 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java
index 7cd6334..e221798 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/MySQLFrontendEngineTest.java
@@ -38,7 +38,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
index eb33eca..01b9518 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
@@ -34,7 +34,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java
index 4e11cda..b82db89 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationHandlerTest.java
@@ -32,7 +32,7 @@ import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
index 9645e1b..e96308e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
@@ -33,7 +33,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
index edb19e6..01dba8a 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
index 2b6a867..9fdfd74 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationEngineTest.java
@@ -35,7 +35,7 @@ import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java
index 7eea3c1..77f3fc8 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/authentication/PostgreSQLAuthenticationHandlerTest.java
@@ -36,7 +36,7 @@ import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
index 0771042..f8b7369 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/parse/PostgreSQLComParseExecutorTest.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizerContext;
+import org.apache.shardingsphere.infra.federation.context.OptimizerContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
diff --git a/shardingsphere-test/shardingsphere-optimize-test/pom.xml b/shardingsphere-test/shardingsphere-optimize-test/pom.xml
index 6530040..bfd972e 100644
--- a/shardingsphere-test/shardingsphere-optimize-test/pom.xml
+++ b/shardingsphere-test/shardingsphere-optimize-test/pom.xml
@@ -34,7 +34,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-optimize</artifactId>
+            <artifactId>shardingsphere-infra-federation</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
diff --git a/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/optimize/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java b/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
similarity index 96%
rename from shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/optimize/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
rename to shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
index 0b3a12c..e980554 100644
--- a/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/optimize/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
+++ b/shardingsphere-test/shardingsphere-optimize-test/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConvertEngineParameterizedTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.optimize.converter.parameterized.engine;
+package org.apache.shardingsphere.infra.federation.converter.parameterized.engine;
 
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -31,8 +31,8 @@ import org.apache.calcite.sql.parser.impl.SqlParserImpl;
 import org.apache.calcite.util.Litmus;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
-import org.apache.shardingsphere.infra.optimize.context.parser.dialect.OptimizerSQLDialectBuilderFactory;
-import org.apache.shardingsphere.infra.optimize.converter.SQLNodeConverterEngine;
+import org.apache.shardingsphere.infra.federation.context.parser.dialect.OptimizerSQLDialectBuilderFactory;
+import org.apache.shardingsphere.infra.federation.converter.SQLNodeConverterEngine;
 import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
 import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;