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

wuweijie 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 8749e70  Remove CalciteContextFactory and change API (#10433)
8749e70 is described below

commit 8749e7045dc75ca79469640243fe04ac7e17a0c1
Author: Juan Pan(Trista) <[email protected]>
AuthorDate: Sun May 23 22:20:48 2021 +0800

    Remove CalciteContextFactory and change API (#10433)
---
 .../metadata/GovernanceMetaDataContexts.java       |  6 +--
 .../infra/context/metadata/MetaDataContexts.java   |  6 +--
 .../metadata/impl/StandardMetaDataContexts.java    |  6 +--
 .../optimize/context/CalciteContextFactory.java    | 50 ----------------------
 .../statement/ShardingSpherePreparedStatement.java |  4 +-
 .../core/statement/ShardingSphereStatement.java    |  4 +-
 .../backend/communication/ProxySQLExecutor.java    |  4 +-
 7 files changed, 18 insertions(+), 62 deletions(-)

diff --git 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
index 2313c1c..06b3adb 100644
--- 
a/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
+++ 
b/shardingsphere-governance/shardingsphere-governance-context/src/main/java/org/apache/shardingsphere/governance/context/metadata/GovernanceMetaDataContexts.java
@@ -44,13 +44,13 @@ import 
org.apache.shardingsphere.infra.context.metadata.MetaDataContextsBuilder;
 import 
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
 import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.context.CalciteContextFactory;
 import org.apache.shardingsphere.infra.lock.InnerLockReleasedEvent;
 import org.apache.shardingsphere.infra.lock.LockNameUtil;
 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.metadata.schema.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.optimize.context.OptimizeContextFactory;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.infra.rule.builder.ShardingSphereRulesBuilder;
 import 
org.apache.shardingsphere.infra.rule.event.impl.DataSourceNameDisabledEvent;
@@ -144,8 +144,8 @@ public final class GovernanceMetaDataContexts implements 
MetaDataContexts {
     }
     
     @Override
-    public CalciteContextFactory getCalciteContextFactory() {
-        return metaDataContexts.getCalciteContextFactory();
+    public OptimizeContextFactory getOptimizeContextFactory() {
+        return metaDataContexts.getOptimizeContextFactory();
     }
     
     @Override
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 35a6f47..90f54fb 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
@@ -19,10 +19,10 @@ package org.apache.shardingsphere.infra.context.metadata;
 
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.context.CalciteContextFactory;
 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.OptimizeContextFactory;
 import org.apache.shardingsphere.infra.state.StateContext;
 
 import java.io.Closeable;
@@ -79,11 +79,11 @@ public interface MetaDataContexts extends Closeable {
     ExecutorEngine getExecutorEngine();
     
     /**
-     * Get calcite context factory.
+     * Get optimize context factory.
      *
      * @return calcite context factory
      */
-    CalciteContextFactory getCalciteContextFactory();
+    OptimizeContextFactory getOptimizeContextFactory();
     
     /**
      * Get configuration properties.
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
index 691c702..edc3803 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/impl/StandardMetaDataContexts.java
@@ -22,10 +22,10 @@ import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
-import 
org.apache.shardingsphere.infra.executor.sql.optimize.context.CalciteContextFactory;
 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.OptimizeContextFactory;
 import org.apache.shardingsphere.infra.state.StateContext;
 
 import java.util.Collection;
@@ -47,7 +47,7 @@ public final class StandardMetaDataContexts implements 
MetaDataContexts {
     
     private final ExecutorEngine executorEngine;
     
-    private final CalciteContextFactory calciteContextFactory;
+    private final OptimizeContextFactory optimizeContextFactory;
     
     private final ConfigurationProperties props;
     
@@ -63,7 +63,7 @@ public final class StandardMetaDataContexts implements 
MetaDataContexts {
         this.metaDataMap = new LinkedHashMap<>(metaDataMap);
         this.globalRuleMetaData = globalRuleMetaData;
         this.executorEngine = executorEngine;
-        calciteContextFactory = new CalciteContextFactory(metaDataMap);
+        optimizeContextFactory = new OptimizeContextFactory(metaDataMap);
         this.props = props;
         stateContext = new StateContext();
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/context/CalciteContextFactory.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/context/CalciteContextFactory.java
deleted file mode 100644
index 152f093..0000000
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/optimize/context/CalciteContextFactory.java
+++ /dev/null
@@ -1,50 +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.context;
-
-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.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.infra.optimize.context.OptimizeContext;
-import org.apache.shardingsphere.infra.optimize.context.OptimizeContextFactory;
-
-import java.util.Map;
-
-/**
- * Calcite context factory.
- */
-public final class CalciteContextFactory {
-    
-    private final OptimizeContextFactory optimizeContextFactory;
-    
-    public CalciteContextFactory(final Map<String, ShardingSphereMetaData> 
metaDataMap) {
-        optimizeContextFactory = new OptimizeContextFactory(metaDataMap);
-    }
-    
-    /**
-     * Create.
-     *
-     * @param schema schema
-     * @param executor executor
-     * @return calcite context
-     */
-    public OptimizeContext create(final String schema, final 
CalciteRowExecutor executor) {
-        CalciteLogicSchema calciteLogicSchema = new 
CalciteLogicSchema(optimizeContextFactory.getSchemaMetadatas().getSchemas().get(schema),
 executor);
-        return optimizeContextFactory.create(schema, calciteLogicSchema);
-    }
-}
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 413f9f2..bffb9bd 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
@@ -62,6 +62,7 @@ import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.dr
 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.prepare.driver.DriverExecutionPrepareEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.JDBCDriverType;
@@ -224,7 +225,8 @@ public final class ShardingSpherePreparedStatement extends 
AbstractPreparedState
         CalciteRowExecutor executor = new 
CalciteRowExecutor(metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules(),
                 maxConnectionsSizePerQuery, connection, 
driverJDBCExecutor.getJdbcExecutor(), executionContext, callback);
         // TODO Consider CalciteRawExecutor
-        return new 
CalciteJDBCExecutor(metaDataContexts.getCalciteContextFactory().create(DefaultSchema.LOGIC_NAME,
 executor));
+        CalciteLogicSchema logicSchema = new 
CalciteLogicSchema(metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(DefaultSchema.LOGIC_NAME),
 executor);
+        return new 
CalciteJDBCExecutor(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 64c6d7a..5a81e10 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
@@ -60,6 +60,7 @@ import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.dr
 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.prepare.driver.DriverExecutionPrepareEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.JDBCDriverType;
@@ -194,7 +195,8 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
         CalciteRowExecutor executor = new 
CalciteRowExecutor(metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules(),
                 maxConnectionsSizePerQuery, connection, 
driverJDBCExecutor.getJdbcExecutor(), executionContext, callback);
         // TODO Consider CalciteRawExecutor
-        return new 
CalciteJDBCExecutor(metaDataContexts.getCalciteContextFactory().create(DefaultSchema.LOGIC_NAME,
 executor));
+        CalciteLogicSchema logicSchema = new 
CalciteLogicSchema(metaDataContexts.getOptimizeContextFactory().getSchemaMetadatas().getSchemas().get(DefaultSchema.LOGIC_NAME),
 executor);
+        return new 
CalciteJDBCExecutor(metaDataContexts.getOptimizeContextFactory().create(DefaultSchema.LOGIC_NAME,
 logicSchema));
     }
     
     @Override
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 c0d0e8a..e6dd740 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
@@ -34,6 +34,7 @@ import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.callback.
 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.prepare.driver.DriverExecutionPrepareEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.StatementOption;
@@ -144,7 +145,8 @@ public final class ProxySQLExecutor {
         ProxyJDBCExecutorCallback callback = 
ProxyJDBCExecutorCallbackFactory.newInstance(type, 
metaData.getMetaData(backendConnection.getSchemaName()).getResource().getDatabaseType(),
 
                 executionContext.getSqlStatementContext().getSqlStatement(), 
backendConnection, isReturnGeneratedKeys, isExceptionThrown, true);
         CalciteRowExecutor executor = new CalciteRowExecutor(rules, 
maxConnectionsSizePerQuery, backendConnection, jdbcExecutor.getJdbcExecutor(), 
executionContext, callback);
-        CalciteExecutor calciteExecutor = new 
CalciteJDBCExecutor(metaData.getCalciteContextFactory().create(backendConnection.getSchemaName(),
 executor));
+        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);
         SQLUnit sqlUnit = 
executionContext.getExecutionUnits().iterator().next().getSqlUnit();
         return calciteExecutor.executeQuery(sqlUnit.getSql(), 
sqlUnit.getParameters()).stream().map(each -> (ExecuteResult) 
each).collect(Collectors.toList());

Reply via email to