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