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

panjuan 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 c1b5df7  Decouple TranslatableOptimizerContext and SQL dialect 
properties (#12693)
c1b5df7 is described below

commit c1b5df7e8d642bedb4fa1e548fe17d190f5fa72e
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Sep 24 20:07:36 2021 +0800

    Decouple TranslatableOptimizerContext and SQL dialect properties (#12693)
---
 .../shardingsphere/infra/optimize/ShardingSphereOptimizer.java |  2 --
 .../translatable/TranslatableOptimizerContextFactory.java      | 10 +++++++++-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/ShardingSphereOptimizer.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/ShardingSphereOptimizer.java
index 50bc8c9..2b270c4 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/ShardingSphereOptimizer.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/ShardingSphereOptimizer.java
@@ -65,8 +65,6 @@ public final class ShardingSphereOptimizer {
      */
     public RelNode optimize(final String sql) throws SQLParsingException {
         try {
-            // TODO : Remove the following statement after 
SqlNodeConvertEngine becomes available.
-            // SqlNode sqlNode = SqlParser.create(sql, 
context.getParserConfig()).parseQuery();
             ShardingSphereSQLParserEngine sqlParserEngine = new 
ShardingSphereSQLParserEngine(
                     
DatabaseTypeRegistry.getTrunkDatabaseTypeName(context.getFilterableOptimizerContext().getDatabaseType()),
 new ConfigurationProperties(new Properties()));
             // TODO cache for every SQL may cause out of memory, should keep 
consist with statement and prepared statement
diff --git 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/translatable/TranslatableOptimizerContextFactory.java
 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/translatable/TranslatableOptimizerContextFactory.java
index ab0aeec..af47ea8 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/translatable/TranslatableOptimizerContextFactory.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-optimize/src/main/java/org/apache/shardingsphere/infra/optimize/context/translatable/TranslatableOptimizerContextFactory.java
@@ -21,6 +21,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.calcite.config.CalciteConnectionConfig;
 import org.apache.calcite.config.CalciteConnectionConfigImpl;
+import org.apache.calcite.config.CalciteConnectionProperty;
 import org.apache.calcite.jdbc.CalciteSchema;
 import org.apache.calcite.jdbc.JavaTypeFactoryImpl;
 import org.apache.calcite.plan.RelOptCluster;
@@ -40,6 +41,7 @@ import 
org.apache.shardingsphere.infra.optimize.context.filterable.FilterableOpt
 import org.apache.shardingsphere.infra.optimize.core.plan.PlannerInitializer;
 
 import java.util.Collections;
+import java.util.Properties;
 
 /**
  * Translatable optimizer context factory.
@@ -56,7 +58,7 @@ public final class TranslatableOptimizerContextFactory {
      * @return created customized optimize context
      */
     public static TranslatableOptimizerContext create(final String schemaName, 
final Schema logicSchema, final FilterableOptimizerContext 
filterableOptimizerContext) {
-        CalciteConnectionConfig connectionConfig = new 
CalciteConnectionConfigImpl(filterableOptimizerContext.getProps());
+        CalciteConnectionConfig connectionConfig = new 
CalciteConnectionConfigImpl(createConnectionProperties());
         RelDataTypeFactory relDataTypeFactory = new JavaTypeFactoryImpl();
         CalciteCatalogReader catalogReader = createCatalogReader(schemaName, 
logicSchema, relDataTypeFactory, connectionConfig);
         SqlValidator validator = createValidator(catalogReader, 
relDataTypeFactory, connectionConfig);
@@ -64,6 +66,12 @@ public final class TranslatableOptimizerContextFactory {
         return new TranslatableOptimizerContext(filterableOptimizerContext, 
schemaName, logicSchema, validator, relConverter);
     }
     
+    private static Properties createConnectionProperties() {
+        Properties result = new Properties();
+        result.setProperty(CalciteConnectionProperty.TIME_ZONE.camelName(), 
"UTC");
+        return result;
+    }
+    
     private static CalciteCatalogReader createCatalogReader(final String 
schemaName, 
                                                             final Schema 
logicSchema, final RelDataTypeFactory relDataTypeFactory, final 
CalciteConnectionConfig connectionConfig) {
         CalciteSchema rootSchema = CalciteSchema.createRootSchema(true);

Reply via email to