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 5ce9d22350f Remove useless calcite linq4j dependency and refactor sql 
federation class and package (#26206)
5ce9d22350f is described below

commit 5ce9d22350f25373235bf5c96e1a432d95c8f7da
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Fri Jun 9 09:25:35 2023 +0800

    Remove useless calcite linq4j dependency and refactor sql federation class 
and package (#26206)
---
 infra/merge/pom.xml                                |  5 -----
 .../executor/AdvancedSQLFederationExecutor.java    |  4 ++--
 .../executor/TranslatableTableScanExecutor.java    |  4 ++--
 .../SQLFederationDatabase.java}                    | 10 ++++-----
 .../SQLFederationSchema.java}                      | 12 +++++------
 .../SQLFederationTable.java}                       | 13 ++++++------
 .../ShardingSphereViewExpander.java                |  2 +-
 .../TranslatableTableScan.java                     | 24 +++++++++++++---------
 .../rule}/TranslatableFilterRule.java              |  3 ++-
 .../rule}/TranslatableProjectFilterRule.java       |  3 ++-
 .../rule}/TranslatableProjectRule.java             |  3 ++-
 .../SQLFederationStatistic.java}                   |  6 +++---
 .../optimizer/util/SQLFederationPlannerUtils.java  |  8 ++++----
 .../result/SQLFederationResultSetTest.java         |  4 ++--
 .../optimizer/it/SQLOptimizeEngineIT.java          |  6 +++---
 pom.xml                                            |  5 -----
 16 files changed, 55 insertions(+), 57 deletions(-)

diff --git a/infra/merge/pom.xml b/infra/merge/pom.xml
index ef3d0741939..34844703a89 100644
--- a/infra/merge/pom.xml
+++ b/infra/merge/pom.xml
@@ -45,10 +45,5 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
-        
-        <dependency>
-            <groupId>org.apache.calcite</groupId>
-            <artifactId>calcite-linq4j</artifactId>
-        </dependency>
     </dependencies>
 </project>
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/AdvancedSQLFederationExecutor.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/AdvancedSQLFederationExecutor.java
index e943941dbba..fcdfc504907 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/AdvancedSQLFederationExecutor.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/AdvancedSQLFederationExecutor.java
@@ -52,7 +52,7 @@ import 
org.apache.shardingsphere.sqlfederation.optimizer.context.OptimizerContex
 import 
org.apache.shardingsphere.sqlfederation.optimizer.context.OptimizerContextFactory;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.context.parser.OptimizerParserContext;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.executor.TableScanExecutor;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableSchema;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema.SQLFederationSchema;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.util.SQLFederationPlannerUtils;
 import org.apache.shardingsphere.sqlfederation.spi.SQLFederationExecutor;
 import 
org.apache.shardingsphere.sqlfederation.spi.SQLFederationExecutorContext;
@@ -126,7 +126,7 @@ public final class AdvancedSQLFederationExecutor implements 
SQLFederationExecuto
                                                      final 
JDBCExecutorCallback<? extends ExecuteResult> callback, final 
SQLFederationExecutorContext federationContext) {
         TableScanExecutorContext executorContext = new 
TableScanExecutorContext(databaseName, schemaName, props, federationContext);
         TableScanExecutor executor = new 
TranslatableTableScanExecutor(prepareEngine, jdbcExecutor, callback, 
optimizerContext, globalRuleMetaData, executorContext, data);
-        return new TranslatableSchema(schemaName, schema, protocolType, 
JAVA_TYPE_FACTORY, executor);
+        return new SQLFederationSchema(schemaName, schema, protocolType, 
JAVA_TYPE_FACTORY, executor);
     }
     
     @SuppressWarnings("unchecked")
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/TranslatableTableScanExecutor.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/TranslatableTableScanExecutor.java
index 6ff143b2868..849c5bf0b40 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/TranslatableTableScanExecutor.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/executor/TranslatableTableScanExecutor.java
@@ -81,7 +81,7 @@ import 
org.apache.shardingsphere.sqlfederation.optimizer.context.OptimizerContex
 import 
org.apache.shardingsphere.sqlfederation.optimizer.executor.ScanNodeExecutorContext;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.executor.TableScanExecutor;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.executor.TranslatableScanNodeExecutorContext;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableSchema;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema.SQLFederationSchema;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.rexnode.StringToRexNodeUtils;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.util.SQLFederationPlannerUtils;
 import 
org.apache.shardingsphere.sqlfederation.spi.SQLFederationExecutorContext;
@@ -319,7 +319,7 @@ public final class TranslatableTableScanExecutor implements 
TableScanExecutor {
         CalciteConnectionConfig connectionConfig = new 
CalciteConnectionConfigImpl(optimizerContext.getParserContext(databaseName).getDialectProps());
         ShardingSphereDatabase database = 
executorContext.getFederationContext().getMetaData().getDatabase(databaseName);
         CalciteCatalogReader catalogReader = 
SQLFederationPlannerUtils.createCatalogReader(schemaName,
-                new TranslatableSchema(schemaName, 
database.getSchema(schemaName), database.getProtocolType(), JAVA_TYPE_FACTORY, 
null), JAVA_TYPE_FACTORY, connectionConfig);
+                new SQLFederationSchema(schemaName, 
database.getSchema(schemaName), database.getProtocolType(), JAVA_TYPE_FACTORY, 
null), JAVA_TYPE_FACTORY, connectionConfig);
         RelOptCluster relOptCluster = 
RelOptCluster.create(SQLFederationPlannerUtils.createVolcanoPlanner(), new 
RexBuilder(JAVA_TYPE_FACTORY));
         RelBuilder builder = 
RelFactories.LOGICAL_BUILDER.create(relOptCluster, 
catalogReader).scan(table.getName());
         if (null != scanContext.getFilterValues()) {
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableDatabase.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationDatabase.java
similarity index 84%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableDatabase.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationDatabase.java
index 4b46c27f542..73edcdee37d 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableDatabase.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationDatabase.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable;
+package org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema;
 
 import lombok.Getter;
 import org.apache.calcite.schema.Schema;
@@ -30,16 +30,16 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 /**
- * Translatable database.
+ * SQL federation database.
  */
 @Getter
-public final class TranslatableDatabase extends AbstractSchema {
+public final class SQLFederationDatabase extends AbstractSchema {
     
     private final String name;
     
     private final Map<String, Schema> subSchemaMap;
     
-    public TranslatableDatabase(final ShardingSphereDatabase database, final 
DatabaseType protocolType, final TableScanExecutor executor) {
+    public SQLFederationDatabase(final ShardingSphereDatabase database, final 
DatabaseType protocolType, final TableScanExecutor executor) {
         name = database.getName();
         subSchemaMap = createSubSchemaMap(database, protocolType, executor);
     }
@@ -47,7 +47,7 @@ public final class TranslatableDatabase extends 
AbstractSchema {
     private Map<String, Schema> createSubSchemaMap(final 
ShardingSphereDatabase database, final DatabaseType protocolType, final 
TableScanExecutor executor) {
         Map<String, Schema> result = new 
LinkedHashMap<>(database.getSchemas().size(), 1F);
         for (Entry<String, ShardingSphereSchema> entry : 
database.getSchemas().entrySet()) {
-            result.put(entry.getKey(), new TranslatableSchema(entry.getKey(), 
entry.getValue(), protocolType, null, executor));
+            result.put(entry.getKey(), new SQLFederationSchema(entry.getKey(), 
entry.getValue(), protocolType, null, executor));
         }
         return result;
     }
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableSchema.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationSchema.java
similarity index 85%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableSchema.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationSchema.java
index 09609d29c7e..0df8670c618 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableSchema.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationSchema.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable;
+package org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema;
 
 import lombok.Getter;
 import org.apache.calcite.adapter.java.JavaTypeFactory;
@@ -29,7 +29,7 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.executor.TableScanExecutor;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.statistic.FederationStatistic;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.statistic.SQLFederationStatistic;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.util.SQLFederationDataTypeUtils;
 
 import java.util.Collections;
@@ -37,16 +37,16 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 /**
- * Translatable schema.
+ * SQL federation schema.
  */
 @Getter
-public final class TranslatableSchema extends AbstractSchema {
+public final class SQLFederationSchema extends AbstractSchema {
     
     private final String name;
     
     private final Map<String, Table> tableMap;
     
-    public TranslatableSchema(final String schemaName, final 
ShardingSphereSchema schema, final DatabaseType protocolType, final 
JavaTypeFactory javaTypeFactory, final TableScanExecutor executor) {
+    public SQLFederationSchema(final String schemaName, final 
ShardingSphereSchema schema, final DatabaseType protocolType, final 
JavaTypeFactory javaTypeFactory, final TableScanExecutor executor) {
         name = schemaName;
         tableMap = createTableMap(schema, protocolType, javaTypeFactory, 
executor);
     }
@@ -58,7 +58,7 @@ public final class TranslatableSchema extends AbstractSchema {
                 result.put(each.getName(), getViewTable(schema, each, 
protocolType, javaTypeFactory));
             } else {
                 // TODO implement table statistic logic after using custom 
operators
-                result.put(each.getName(), new 
FederationTranslatableTable(each, executor, new FederationStatistic(), 
protocolType));
+                result.put(each.getName(), new SQLFederationTable(each, 
executor, new SQLFederationStatistic(), protocolType));
             }
         }
         return result;
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/FederationTranslatableTable.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationTable.java
similarity index 93%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/FederationTranslatableTable.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationTable.java
index 0e95bc3ea0c..35e9333eb93 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/FederationTranslatableTable.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/schema/SQLFederationTable.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable;
+package org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.DataContext;
@@ -39,22 +39,23 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
 import 
org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnsupportedSQLOperationException;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.executor.TableScanExecutor;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.executor.TranslatableScanNodeExecutorContext;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.statistic.FederationStatistic;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.operator.TranslatableTableScan;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.util.SQLFederationDataTypeUtils;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.statistic.SQLFederationStatistic;
 
 import java.lang.reflect.Type;
 
 /**
- * Federation translatable table.
+ * SQL federation table.
  */
 @RequiredArgsConstructor
-public final class FederationTranslatableTable extends AbstractTable 
implements QueryableTable, TranslatableTable {
+public final class SQLFederationTable extends AbstractTable implements 
QueryableTable, TranslatableTable {
     
     private final ShardingSphereTable table;
     
     private final TableScanExecutor executor;
     
-    private final FederationStatistic statistic;
+    private final SQLFederationStatistic statistic;
     
     private final DatabaseType protocolType;
     
@@ -143,7 +144,7 @@ public final class FederationTranslatableTable extends 
AbstractTable implements
     
     @Override
     public String toString() {
-        return "FederationTranslatableTable";
+        return "SQLFederationTable";
     }
     
     @Override
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/expander/ShardingSphereViewExpander.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/view/ShardingSphereViewExpander.java
similarity index 99%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/expander/ShardingSphereViewExpander.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/view/ShardingSphereViewExpander.java
index d54dc22215a..9a2416267d2 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/expander/ShardingSphereViewExpander.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/view/ShardingSphereViewExpander.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sqlfederation.optimizer.metadata.expander;
+package org.apache.shardingsphere.sqlfederation.optimizer.metadata.view;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.calcite.plan.RelOptTable.ViewExpander;
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableTableScan.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/operator/TranslatableTableScan.java
similarity index 89%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableTableScan.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/operator/TranslatableTableScan.java
index c0dee6e919e..49f18186036 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableTableScan.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/operator/TranslatableTableScan.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable;
+package org.apache.shardingsphere.sqlfederation.optimizer.operator;
 
 import com.google.common.collect.ImmutableList;
 import lombok.Getter;
@@ -42,6 +42,10 @@ import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rex.RexCall;
 import org.apache.calcite.rex.RexInputRef;
 import org.apache.calcite.rex.RexNode;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema.SQLFederationTable;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.planner.rule.TranslatableFilterRule;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.planner.rule.TranslatableProjectFilterRule;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.planner.rule.TranslatableProjectRule;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -55,7 +59,7 @@ import java.util.Map;
 @Getter
 public final class TranslatableTableScan extends TableScan implements 
EnumerableRel {
     
-    private final FederationTranslatableTable translatableTable;
+    private final SQLFederationTable translatableTable;
     
     private final int[] fields;
     
@@ -65,7 +69,7 @@ public final class TranslatableTableScan extends TableScan 
implements Enumerable
     
     private final List<RexNode> expressions;
     
-    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final FederationTranslatableTable translatableTable, final 
int[] fields) {
+    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final SQLFederationTable translatableTable, final int[] 
fields) {
         super(cluster, cluster.traitSetOf(EnumerableConvention.INSTANCE), 
ImmutableList.of(), table);
         this.translatableTable = translatableTable;
         this.fields = fields;
@@ -74,7 +78,7 @@ public final class TranslatableTableScan extends TableScan 
implements Enumerable
         this.expressions = new ArrayList<>();
     }
     
-    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final FederationTranslatableTable translatableTable, final 
int[] fields, final int number) {
+    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final SQLFederationTable translatableTable, final int[] 
fields, final int number) {
         super(cluster, cluster.traitSetOf(EnumerableConvention.INSTANCE), 
ImmutableList.of(), table);
         this.translatableTable = translatableTable;
         this.fields = fields;
@@ -83,7 +87,7 @@ public final class TranslatableTableScan extends TableScan 
implements Enumerable
         this.expressions = new ArrayList<>();
     }
     
-    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final FederationTranslatableTable translatableTable,
+    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final SQLFederationTable translatableTable,
                                  final List<RexNode> filters, final int[] 
fields) {
         super(cluster, cluster.traitSetOf(EnumerableConvention.INSTANCE), 
ImmutableList.of(), table);
         this.translatableTable = translatableTable;
@@ -93,7 +97,7 @@ public final class TranslatableTableScan extends TableScan 
implements Enumerable
         this.expressions = new ArrayList<>();
     }
     
-    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final FederationTranslatableTable translatableTable,
+    public TranslatableTableScan(final RelOptCluster cluster, final 
RelOptTable table, final SQLFederationTable translatableTable,
                                  final List<RexNode> filters, final int[] 
fields, final int number, final List<RexNode> expressions) {
         super(cluster, cluster.traitSetOf(EnumerableConvention.INSTANCE), 
ImmutableList.of(), table);
         this.translatableTable = translatableTable;
@@ -164,19 +168,19 @@ public final class TranslatableTableScan extends 
TableScan implements Enumerable
     
     private Result generateCodeForNullFilters(final EnumerableRelImplementor 
implementor, final PhysType physType) {
         if (fields.length == 1) {
-            return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(FederationTranslatableTable.class),
+            return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(SQLFederationTable.class),
                     "projectScalar", implementor.getRootExpression(), 
Expressions.constant(fields))));
         }
-        return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(FederationTranslatableTable.class),
+        return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(SQLFederationTable.class),
                 "project", implementor.getRootExpression(), 
Expressions.constant(fields))));
     }
     
     private Result generateCodeForFilters(final EnumerableRelImplementor 
implementor, final PhysType physType, final String[] filterValues) {
         if (fields.length == 1) {
-            return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(FederationTranslatableTable.class),
+            return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(SQLFederationTable.class),
                     "projectAndFilterScalar", implementor.getRootExpression(), 
Expressions.constant(filterValues), Expressions.constant(fields))));
         }
-        return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(FederationTranslatableTable.class),
+        return implementor.result(physType, 
Blocks.toBlock(Expressions.call(table.getExpression(SQLFederationTable.class),
                 "projectAndFilter", implementor.getRootExpression(), 
Expressions.constant(filterValues), Expressions.constant(fields))));
     }
     
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableFilterRule.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableFilterRule.java
similarity index 94%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableFilterRule.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableFilterRule.java
index f84112c41ed..3d98a95098c 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableFilterRule.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableFilterRule.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable;
+package org.apache.shardingsphere.sqlfederation.optimizer.planner.rule;
 
 import org.apache.calcite.plan.RelOptRule;
 import org.apache.calcite.plan.RelOptRuleCall;
@@ -24,6 +24,7 @@ import org.apache.calcite.rel.logical.LogicalFilter;
 import org.apache.calcite.rex.RexCall;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.tools.RelBuilderFactory;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.operator.TranslatableTableScan;
 
 import java.util.Collections;
 import java.util.regex.Pattern;
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableProjectFilterRule.java
similarity index 95%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableProjectFilterRule.java
index c73c22c9fdb..f4421f29354 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableProjectFilterRule.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable;
+package org.apache.shardingsphere.sqlfederation.optimizer.planner.rule;
 
 import org.apache.calcite.plan.RelOptRule;
 import org.apache.calcite.plan.RelOptRuleCall;
@@ -26,6 +26,7 @@ import org.apache.calcite.rex.RexCall;
 import org.apache.calcite.rex.RexInputRef;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.tools.RelBuilderFactory;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.operator.TranslatableTableScan;
 
 import java.util.Collections;
 import java.util.List;
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableProjectRule.java
similarity index 95%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableProjectRule.java
index 29a05a94a3e..69faa9d154a 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectRule.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/planner/rule/TranslatableProjectRule.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable;
+package org.apache.shardingsphere.sqlfederation.optimizer.planner.rule;
 
 import org.apache.calcite.plan.RelOptRule;
 import org.apache.calcite.plan.RelOptRuleCall;
@@ -25,6 +25,7 @@ import org.apache.calcite.rel.logical.LogicalProject;
 import org.apache.calcite.rex.RexInputRef;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.tools.RelBuilderFactory;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.operator.TranslatableTableScan;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/statistic/FederationStatistic.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/statistic/SQLFederationStatistic.java
similarity index 89%
rename from 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/statistic/FederationStatistic.java
rename to 
kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/statistic/SQLFederationStatistic.java
index 0b171ee0acc..ca8d57b53c3 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/statistic/FederationStatistic.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/statistic/SQLFederationStatistic.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sqlfederation.optimizer.metadata.statistic;
+package org.apache.shardingsphere.sqlfederation.optimizer.statistic;
 
 import org.apache.calcite.rel.RelCollation;
 import org.apache.calcite.rel.RelDistribution;
@@ -27,9 +27,9 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * Statistic of federation table.
+ * SQL federation statistic.
  */
-public final class FederationStatistic implements Statistic {
+public final class SQLFederationStatistic implements Statistic {
     
     @Override
     public List<RelReferentialConstraint> getReferentialConstraints() {
diff --git 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/util/SQLFederationPlannerUtils.java
 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/util/SQLFederationPlannerUtils.java
index a19587e0361..6150ab106d2 100644
--- 
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/util/SQLFederationPlannerUtils.java
+++ 
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/util/SQLFederationPlannerUtils.java
@@ -52,10 +52,10 @@ import org.apache.calcite.sql2rel.SqlToRelConverter.Config;
 import org.apache.calcite.sql2rel.StandardConvertletTable;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.parser.rule.SQLParserRule;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.expander.ShardingSphereViewExpander;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableFilterRule;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableProjectFilterRule;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableProjectRule;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.view.ShardingSphereViewExpander;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.planner.rule.TranslatableFilterRule;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.planner.rule.TranslatableProjectFilterRule;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.planner.rule.TranslatableProjectRule;
 
 import java.util.Arrays;
 import java.util.Collection;
diff --git 
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/executor/result/SQLFederationResultSetTest.java
 
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/executor/result/SQLFederationResultSetTest.java
index a5a50c60c1a..5e7d49aaa4d 100644
--- 
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/executor/result/SQLFederationResultSetTest.java
+++ 
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/executor/result/SQLFederationResultSetTest.java
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.sqlfederation.executor.resultset.SQLFederationResultSet;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableSchema;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema.SQLFederationSchema;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -69,7 +69,7 @@ class SQLFederationResultSetTest {
     @BeforeEach
     void setUp() {
         enumerator = createEnumerator();
-        federationResultSet = new SQLFederationResultSet(enumerator, 
mock(ShardingSphereSchema.class), mock(TranslatableSchema.class), 
createSelectStatementContext(), mock(RelDataType.class));
+        federationResultSet = new SQLFederationResultSet(enumerator, 
mock(ShardingSphereSchema.class), mock(SQLFederationSchema.class), 
createSelectStatementContext(), mock(RelDataType.class));
     }
     
     private SelectStatementContext createSelectStatementContext() {
diff --git 
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/SQLOptimizeEngineIT.java
 
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/SQLOptimizeEngineIT.java
index 058cc22bc75..6269c6e0890 100644
--- 
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/SQLOptimizeEngineIT.java
+++ 
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/SQLOptimizeEngineIT.java
@@ -37,7 +37,7 @@ import org.apache.shardingsphere.parser.rule.SQLParserRule;
 import 
org.apache.shardingsphere.parser.rule.builder.DefaultSQLParserRuleConfigurationBuilder;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import org.apache.shardingsphere.sqlfederation.optimizer.SQLOptimizeEngine;
-import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.translatable.TranslatableSchema;
+import 
org.apache.shardingsphere.sqlfederation.optimizer.metadata.schema.SQLFederationSchema;
 import 
org.apache.shardingsphere.sqlfederation.optimizer.util.SQLFederationPlannerUtils;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.ExtensionContext;
@@ -236,8 +236,8 @@ class SQLOptimizeEngineIT {
         CalciteConnectionConfig connectionConfig = new 
CalciteConnectionConfigImpl(new Properties());
         RelDataTypeFactory relDataTypeFactory = new JavaTypeFactoryImpl();
         DatabaseType databaseType = DatabaseTypeEngine.getDatabaseType("H2");
-        TranslatableSchema federationSchema = new 
TranslatableSchema(SCHEMA_NAME, schema, databaseType, new 
JavaTypeFactoryImpl(), null);
-        CalciteCatalogReader catalogReader = 
SQLFederationPlannerUtils.createCatalogReader(SCHEMA_NAME, federationSchema, 
relDataTypeFactory, connectionConfig);
+        SQLFederationSchema sqlFederationSchema = new 
SQLFederationSchema(SCHEMA_NAME, schema, databaseType, new 
JavaTypeFactoryImpl(), null);
+        CalciteCatalogReader catalogReader = 
SQLFederationPlannerUtils.createCatalogReader(SCHEMA_NAME, sqlFederationSchema, 
relDataTypeFactory, connectionConfig);
         SqlValidator validator = 
SQLFederationPlannerUtils.createSqlValidator(catalogReader, relDataTypeFactory, 
databaseType, connectionConfig);
         RelOptCluster cluster = 
RelOptCluster.create(SQLFederationPlannerUtils.createVolcanoPlanner(), new 
RexBuilder(relDataTypeFactory));
         return 
SQLFederationPlannerUtils.createSqlToRelConverter(catalogReader, validator, 
cluster, Mockito.mock(SQLParserRule.class), databaseType, false);
diff --git a/pom.xml b/pom.xml
index 2ae4f421cd5..8fa1e81dfb1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -343,11 +343,6 @@
                 <classifier>linux-aarch_64</classifier>
                 <scope>runtime</scope>
             </dependency>
-            <dependency>
-                <groupId>org.apache.calcite</groupId>
-                <artifactId>calcite-linq4j</artifactId>
-                <version>${calcite.version}</version>
-            </dependency>
             <dependency>
                 <groupId>javax.transaction</groupId>
                 <artifactId>jta</artifactId>


Reply via email to