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

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 620c46acd3 Move package org.apache.calcite to org.apache.pinot.calcite 
(#12837)
620c46acd3 is described below

commit 620c46acd3fe7a0c084bed9474081601a89e2bcd
Author: Xiaotian (Jackie) Jiang <17555551+jackie-ji...@users.noreply.github.com>
AuthorDate: Mon Apr 8 16:53:37 2024 -0700

    Move package org.apache.calcite to org.apache.pinot.calcite (#12837)
---
 .../MultiStageBrokerRequestHandler.java            |  2 +-
 .../api/resources/PinotQueryResource.java          |  2 +-
 .../calcite/jdbc/CalciteSchemaBuilder.java         | 15 +-------
 .../calcite/prepare/PinotCalciteCatalogReader.java | 19 +++++----
 .../calcite/rel/hint/PinotHintOptions.java         |  6 ++-
 .../calcite/rel/hint/PinotHintStrategyTable.java   | 18 ++++-----
 .../calcite/rel/logical/PinotLogicalExchange.java  | 23 +++++------
 .../rel/logical/PinotLogicalSortExchange.java      | 45 ++++++++--------------
 .../calcite/rel/logical/PinotRelExchangeType.java  |  2 +-
 .../rel/rules/ImmutableSortExchangeCopyRule.java   | 15 ++++----
 .../PinotAggregateExchangeNodeInsertRule.java      | 14 ++++---
 .../rules/PinotAggregateLiteralAttachmentRule.java |  6 +--
 .../rel/rules/PinotAggregateToSemiJoinRule.java    |  3 +-
 .../rel/rules/PinotEvaluateLiteralRule.java        |  2 +-
 .../rel/rules/PinotExchangeEliminationRule.java    |  4 +-
 .../rel/rules/PinotFilterExpandSearchRule.java     |  2 +-
 .../rel/rules/PinotJoinExchangeNodeInsertRule.java |  4 +-
 .../rel/rules/PinotJoinToDynamicBroadcastRule.java | 10 ++---
 .../calcite/rel/rules/PinotQueryRuleSets.java      |  4 +-
 .../rel/rules/PinotRelDistributionTraitRule.java   |  8 ++--
 .../calcite/rel/rules/PinotRuleUtils.java          |  4 +-
 .../rules/PinotSetOpExchangeNodeInsertRule.java    |  4 +-
 .../rules/PinotSingleValueAggregateRemoveRule.java |  2 +-
 .../rel/rules/PinotSortExchangeCopyRule.java       |  4 +-
 .../rel/rules/PinotSortExchangeNodeInsertRule.java |  4 +-
 .../rules/PinotWindowExchangeNodeInsertRule.java   |  6 +--
 .../calcite/sql/PinotSqlAggFunction.java           |  6 ++-
 .../calcite/sql/PinotSqlTransformFunction.java     |  5 ++-
 .../calcite/sql/fun/PinotOperatorTable.java        | 23 +++++------
 .../calcite/sql/fun/PinotSqlCoalesceFunction.java  |  3 +-
 .../sql/util/PinotChainedSqlOperatorTable.java     | 21 ++++++----
 .../calcite/sql2rel/PinotConvertletTable.java      |  6 ++-
 .../org/apache/pinot/query/QueryEnvironment.java   | 14 +++----
 .../apache/pinot/query/catalog/PinotCatalog.java   |  5 ++-
 .../planner/logical/PinotLogicalQueryPlanner.java  |  2 +-
 .../query/planner/logical/PlanFragmenter.java      |  2 +-
 .../planner/logical/RelToPlanNodeConverter.java    |  6 +--
 .../query/planner/logical/SubPlanFragmenter.java   |  2 +-
 .../planner/physical/DispatchablePlanVisitor.java  |  2 +-
 .../query/planner/plannode/AggregateNode.java      |  4 +-
 .../pinot/query/planner/plannode/ExchangeNode.java |  2 +-
 .../query/planner/plannode/MailboxReceiveNode.java |  2 +-
 .../query/planner/plannode/MailboxSendNode.java    |  2 +-
 .../apache/pinot/query/routing/WorkerManager.java  |  2 +-
 .../rel/rules/PinotSortExchangeCopyRuleTest.java   | 35 ++++++++---------
 .../pinot/query/QueryEnvironmentTestBase.java      |  2 +-
 .../query/runtime/operator/AggregateOperator.java  |  2 +-
 .../query/runtime/operator/HashJoinOperator.java   |  2 +-
 .../operator/MultistageGroupByExecutor.java        |  2 +-
 .../plan/pipeline/PipelineBreakerVisitor.java      |  2 +-
 .../runtime/operator/AggregateOperatorTest.java    |  2 +-
 .../runtime/operator/HashJoinOperatorTest.java     |  2 +-
 .../plan/pipeline/PipelineBreakerExecutorTest.java |  2 +-
 53 files changed, 193 insertions(+), 195 deletions(-)

diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/MultiStageBrokerRequestHandler.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/MultiStageBrokerRequestHandler.java
index ee9f6cf19a..01e4884d6a 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/MultiStageBrokerRequestHandler.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/MultiStageBrokerRequestHandler.java
@@ -31,7 +31,6 @@ import javax.annotation.Nullable;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
-import org.apache.calcite.jdbc.CalciteSchemaBuilder;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.pinot.broker.api.AccessControl;
 import org.apache.pinot.broker.api.RequesterIdentity;
@@ -39,6 +38,7 @@ import org.apache.pinot.broker.broker.AccessControlFactory;
 import org.apache.pinot.broker.querylog.QueryLogger;
 import org.apache.pinot.broker.queryquota.QueryQuotaManager;
 import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.calcite.jdbc.CalciteSchemaBuilder;
 import org.apache.pinot.common.config.provider.TableCache;
 import org.apache.pinot.common.exception.QueryException;
 import org.apache.pinot.common.metrics.BrokerMeter;
diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotQueryResource.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotQueryResource.java
index dbd1df9438..aa40ec40a8 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotQueryResource.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotQueryResource.java
@@ -49,11 +49,11 @@ import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
-import org.apache.calcite.jdbc.CalciteSchemaBuilder;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.helix.model.InstanceConfig;
+import org.apache.pinot.calcite.jdbc.CalciteSchemaBuilder;
 import org.apache.pinot.common.Utils;
 import org.apache.pinot.common.exception.QueryException;
 import org.apache.pinot.common.response.ProcessingException;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/jdbc/CalciteSchemaBuilder.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/jdbc/CalciteSchemaBuilder.java
similarity index 71%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/jdbc/CalciteSchemaBuilder.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/jdbc/CalciteSchemaBuilder.java
index bab3ac045d..1da5e2d7f1 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/jdbc/CalciteSchemaBuilder.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/jdbc/CalciteSchemaBuilder.java
@@ -16,10 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.jdbc;
+package org.apache.pinot.calcite.jdbc;
 
 import java.util.List;
 import java.util.Map;
+import org.apache.calcite.jdbc.CalciteSchema;
 import org.apache.calcite.schema.Function;
 import org.apache.calcite.schema.Schema;
 import org.apache.calcite.schema.SchemaPlus;
@@ -28,26 +29,14 @@ import org.apache.pinot.common.function.FunctionRegistry;
 
 /**
  * This class is used to create a {@link CalciteSchema} with a given {@link 
Schema} as the root.
- *
- * <p>This class resides in calcite.jdbc namespace because there's no complex 
logic we have in terms of catalog-based
- * schema construct. We instead create a {@link SimpleCalciteSchema} that's 
package protected.
  */
 public class CalciteSchemaBuilder {
-
   private CalciteSchemaBuilder() {
-    // do not instantiate.
   }
 
   /**
    * Creates a {@link CalciteSchema} with a given {@link Schema} as the root.
    *
-   * <p>Calcite creates two layer of abstraction, the {@link CalciteSchema} is 
use internally for planner and
-   * {@link Schema} is user-facing with overrides. In our case we don't have a 
complex internal wrapper extension
-   * so we only reuse the package protected {@link SimpleCalciteSchema}.
-   *
-   * <p>If there's need to extend this feature for planner functionalities we 
should create our own extension to the
-   * {@link CalciteSchema}.
-   *
    * @param root schema to use as a root schema
    * @return calcite schema with given schema as the root
    */
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/prepare/PinotCalciteCatalogReader.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/prepare/PinotCalciteCatalogReader.java
similarity index 96%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/prepare/PinotCalciteCatalogReader.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/prepare/PinotCalciteCatalogReader.java
index 64d1e54e4d..c345ca216c 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/prepare/PinotCalciteCatalogReader.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/prepare/PinotCalciteCatalogReader.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.prepare;
+package org.apache.pinot.calcite.prepare;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
@@ -35,6 +35,9 @@ import org.apache.calcite.jdbc.JavaTypeFactoryImpl;
 import org.apache.calcite.linq4j.function.Hints;
 import org.apache.calcite.model.ModelHandler;
 import org.apache.calcite.plan.RelOptPlanner;
+import org.apache.calcite.prepare.CalciteCatalogReader;
+import org.apache.calcite.prepare.Prepare;
+import org.apache.calcite.prepare.RelOptTableImpl;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.rel.type.RelDataTypeFactoryImpl;
@@ -78,16 +81,15 @@ import org.checkerframework.checker.nullness.qual.Nullable;
 
 
 /**
- * ============================================================================
- * THIS CLASS IS COPIED FROM Calcite's {@link 
org.apache.calcite.prepare.CalciteCatalogReader} and modified the
- * case sensitivity of Function lookup. which is ALWAYS case-insensitive 
regardless of conventions on
- * column/table identifier.
- * ============================================================================
+ * 
==============================================================================================================
+ * THIS CLASS IS COPIED FROM Calcite's {@link CalciteCatalogReader} and 
modified the case sensitivity of Function
+ * lookup, which is ALWAYS case-insensitive regardless of conventions on 
column/table identifier.
+ * 
==============================================================================================================
  *
- * Pinot's implementation of {@link 
org.apache.calcite.prepare.Prepare.CatalogReader}
- * and also {@link org.apache.calcite.sql.SqlOperatorTable} based on tables and
+ * Pinot's implementation of {@link Prepare.CatalogReader} and also {@link 
SqlOperatorTable} based on tables and
  * functions defined schemas.
  */
+//@formatter:off
 public class PinotCalciteCatalogReader implements Prepare.CatalogReader {
   protected final CalciteSchema _rootSchema;
   protected final RelDataTypeFactory _typeFactory;
@@ -463,3 +465,4 @@ public class PinotCalciteCatalogReader implements 
Prepare.CatalogReader {
     return null;
   }
 }
+//@formatter:on
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/hint/PinotHintOptions.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/hint/PinotHintOptions.java
similarity index 95%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/hint/PinotHintOptions.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/hint/PinotHintOptions.java
index 0a7ec1b10a..a45e92aba6 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/hint/PinotHintOptions.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/hint/PinotHintOptions.java
@@ -16,15 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.hint;
+package org.apache.pinot.calcite.rel.hint;
 
+import org.apache.calcite.rel.RelNode;
+import org.apache.calcite.rel.hint.RelHint;
 import org.apache.pinot.query.planner.logical.LiteralHintUtils;
 
 
 /**
  * {@code PinotHintOptions} specified the supported hint options by Pinot 
based a particular type of relation node.
  *
- * <p>for each {@link org.apache.calcite.rel.RelNode} type we support an 
option hint name.</p>
+ * <p>for each {@link RelNode} type we support an option hint name.</p>
  * <p>for each option hint name there's a corresponding {@link RelHint} that 
supported only key-value option stored
  * in {@link RelHint#kvOptions}</p>
  */
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/hint/PinotHintStrategyTable.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/hint/PinotHintStrategyTable.java
similarity index 90%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/hint/PinotHintStrategyTable.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/hint/PinotHintStrategyTable.java
index c49a4b9754..524bffc75d 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/hint/PinotHintStrategyTable.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/hint/PinotHintStrategyTable.java
@@ -16,13 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.hint;
+package org.apache.pinot.calcite.rel.hint;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import javax.annotation.Nullable;
+import org.apache.calcite.rel.hint.HintPredicates;
+import org.apache.calcite.rel.hint.HintStrategyTable;
+import org.apache.calcite.rel.hint.RelHint;
 import org.apache.pinot.spi.utils.BooleanUtils;
 
 
@@ -30,17 +33,14 @@ import org.apache.pinot.spi.utils.BooleanUtils;
  * Default hint strategy set for Pinot query.
  */
 public class PinotHintStrategyTable {
-
   private PinotHintStrategyTable() {
-    // do not instantiate.
   }
 
-  public static final HintStrategyTable PINOT_HINT_STRATEGY_TABLE = 
HintStrategyTable.builder()
-      .hintStrategy(PinotHintOptions.INTERNAL_AGG_OPTIONS, 
HintPredicates.AGGREGATE)
-      .hintStrategy(PinotHintOptions.AGGREGATE_HINT_OPTIONS, 
HintPredicates.AGGREGATE)
-      .hintStrategy(PinotHintOptions.JOIN_HINT_OPTIONS, HintPredicates.JOIN)
-      .hintStrategy(PinotHintOptions.TABLE_HINT_OPTIONS, 
HintPredicates.TABLE_SCAN)
-      .build();
+  public static final HintStrategyTable PINOT_HINT_STRATEGY_TABLE =
+      
HintStrategyTable.builder().hintStrategy(PinotHintOptions.INTERNAL_AGG_OPTIONS, 
HintPredicates.AGGREGATE)
+          .hintStrategy(PinotHintOptions.AGGREGATE_HINT_OPTIONS, 
HintPredicates.AGGREGATE)
+          .hintStrategy(PinotHintOptions.JOIN_HINT_OPTIONS, 
HintPredicates.JOIN)
+          .hintStrategy(PinotHintOptions.TABLE_HINT_OPTIONS, 
HintPredicates.TABLE_SCAN).build();
 
   /**
    * Check if a hint-able {@link org.apache.calcite.rel.RelNode} contains a 
specific {@link RelHint} by name.
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotLogicalExchange.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotLogicalExchange.java
similarity index 81%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotLogicalExchange.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotLogicalExchange.java
index c08b7ae8ad..375a00500b 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotLogicalExchange.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotLogicalExchange.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.logical;
+package org.apache.pinot.calcite.rel.logical;
 
 import org.apache.calcite.plan.Convention;
 import org.apache.calcite.plan.RelOptCluster;
@@ -36,16 +36,14 @@ import org.apache.calcite.rel.core.Exchange;
 public class PinotLogicalExchange extends Exchange {
   private final PinotRelExchangeType _exchangeType;
 
-  private PinotLogicalExchange(RelOptCluster cluster, RelTraitSet traitSet,
-      RelNode input, RelDistribution distribution, PinotRelExchangeType 
exchangeType) {
+  private PinotLogicalExchange(RelOptCluster cluster, RelTraitSet traitSet, 
RelNode input, RelDistribution distribution,
+      PinotRelExchangeType exchangeType) {
     super(cluster, traitSet, input, distribution);
     _exchangeType = exchangeType;
     assert traitSet.containsIfApplicable(Convention.NONE);
   }
 
-
-  public static PinotLogicalExchange create(RelNode input,
-      RelDistribution distribution) {
+  public static PinotLogicalExchange create(RelNode input, RelDistribution 
distribution) {
     return create(input, distribution, 
PinotRelExchangeType.getDefaultExchangeType());
   }
 
@@ -56,22 +54,19 @@ public class PinotLogicalExchange extends Exchange {
    * @param distribution Distribution specification
    * @param exchangeType RelExchangeType specification
    */
-  public static PinotLogicalExchange create(RelNode input,
-      RelDistribution distribution, PinotRelExchangeType exchangeType) {
+  public static PinotLogicalExchange create(RelNode input, RelDistribution 
distribution,
+      PinotRelExchangeType exchangeType) {
     RelOptCluster cluster = input.getCluster();
     distribution = RelDistributionTraitDef.INSTANCE.canonize(distribution);
-    RelTraitSet traitSet =
-        input.getTraitSet().replace(Convention.NONE).replace(distribution);
+    RelTraitSet traitSet = 
input.getTraitSet().replace(Convention.NONE).replace(distribution);
     return new PinotLogicalExchange(cluster, traitSet, input, distribution, 
exchangeType);
   }
 
   //~ Methods ----------------------------------------------------------------
 
   @Override
-  public Exchange copy(RelTraitSet traitSet, RelNode newInput,
-      RelDistribution newDistribution) {
-    return new PinotLogicalExchange(getCluster(), traitSet, newInput,
-        newDistribution, _exchangeType);
+  public Exchange copy(RelTraitSet traitSet, RelNode newInput, RelDistribution 
newDistribution) {
+    return new PinotLogicalExchange(getCluster(), traitSet, newInput, 
newDistribution, _exchangeType);
   }
 
   @Override
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotLogicalSortExchange.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotLogicalSortExchange.java
similarity index 78%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotLogicalSortExchange.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotLogicalSortExchange.java
index ace06a6c43..141b20d422 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotLogicalSortExchange.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotLogicalSortExchange.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.logical;
+package org.apache.pinot.calcite.rel.logical;
 
 import org.apache.calcite.plan.Convention;
 import org.apache.calcite.plan.RelOptCluster;
@@ -46,9 +46,9 @@ public class PinotLogicalSortExchange extends SortExchange {
   protected final boolean _isSortOnReceiver;
   protected final PinotRelExchangeType _exchangeType;
 
-  private PinotLogicalSortExchange(RelOptCluster cluster, RelTraitSet traitSet,
-      RelNode input, RelDistribution distribution, PinotRelExchangeType 
exchangeType, RelCollation collation,
-      boolean isSortOnSender, boolean isSortOnReceiver) {
+  private PinotLogicalSortExchange(RelOptCluster cluster, RelTraitSet 
traitSet, RelNode input,
+      RelDistribution distribution, PinotRelExchangeType exchangeType, 
RelCollation collation, boolean isSortOnSender,
+      boolean isSortOnReceiver) {
     super(cluster, traitSet, input, distribution, collation);
     _exchangeType = exchangeType;
     _isSortOnSender = isSortOnSender;
@@ -65,12 +65,8 @@ public class PinotLogicalSortExchange extends SortExchange {
     _isSortOnReceiver = true;
   }
 
-  public static PinotLogicalSortExchange create(
-      RelNode input,
-      RelDistribution distribution,
-      RelCollation collation,
-      boolean isSortOnSender,
-      boolean isSortOnReceiver) {
+  public static PinotLogicalSortExchange create(RelNode input, RelDistribution 
distribution, RelCollation collation,
+      boolean isSortOnSender, boolean isSortOnReceiver) {
     return create(input, distribution, 
PinotRelExchangeType.getDefaultExchangeType(), collation, isSortOnSender,
         isSortOnReceiver);
   }
@@ -85,36 +81,29 @@ public class PinotLogicalSortExchange extends SortExchange {
    * @param isSortOnSender whether to sort on the sender
    * @param isSortOnReceiver whether to sort on receiver
    */
-  public static PinotLogicalSortExchange create(
-      RelNode input,
-      RelDistribution distribution,
-      PinotRelExchangeType exchangeType,
-      RelCollation collation,
-      boolean isSortOnSender,
-      boolean isSortOnReceiver) {
+  public static PinotLogicalSortExchange create(RelNode input, RelDistribution 
distribution,
+      PinotRelExchangeType exchangeType, RelCollation collation, boolean 
isSortOnSender, boolean isSortOnReceiver) {
     RelOptCluster cluster = input.getCluster();
     collation = RelCollationTraitDef.INSTANCE.canonize(collation);
     distribution = RelDistributionTraitDef.INSTANCE.canonize(distribution);
-    RelTraitSet traitSet =
-        
input.getTraitSet().replace(Convention.NONE).replace(distribution).replace(collation);
-    return new PinotLogicalSortExchange(cluster, traitSet, input, 
distribution, exchangeType,
-        collation, isSortOnSender, isSortOnReceiver);
+    RelTraitSet traitSet = 
input.getTraitSet().replace(Convention.NONE).replace(distribution).replace(collation);
+    return new PinotLogicalSortExchange(cluster, traitSet, input, 
distribution, exchangeType, collation, isSortOnSender,
+        isSortOnReceiver);
   }
 
   //~ Methods ----------------------------------------------------------------
 
   @Override
-  public SortExchange copy(RelTraitSet traitSet, RelNode newInput,
-      RelDistribution newDistribution, RelCollation newCollation) {
-    return new PinotLogicalSortExchange(this.getCluster(), traitSet, newInput,
-        newDistribution, _exchangeType, newCollation, _isSortOnSender, 
_isSortOnReceiver);
+  public SortExchange copy(RelTraitSet traitSet, RelNode newInput, 
RelDistribution newDistribution,
+      RelCollation newCollation) {
+    return new PinotLogicalSortExchange(this.getCluster(), traitSet, newInput, 
newDistribution, _exchangeType,
+        newCollation, _isSortOnSender, _isSortOnReceiver);
   }
 
   @Override
   public RelWriter explainTerms(RelWriter pw) {
-    RelWriter relWriter = super.explainTerms(pw)
-        .item("isSortOnSender", _isSortOnSender)
-        .item("isSortOnReceiver", _isSortOnReceiver);
+    RelWriter relWriter =
+        super.explainTerms(pw).item("isSortOnSender", 
_isSortOnSender).item("isSortOnReceiver", _isSortOnReceiver);
     if (_exchangeType != PinotRelExchangeType.getDefaultExchangeType()) {
       relWriter.item("relExchangeType", _exchangeType);
     }
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotRelExchangeType.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotRelExchangeType.java
similarity index 97%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotRelExchangeType.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotRelExchangeType.java
index 4a06e1d025..49d5cff728 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/logical/PinotRelExchangeType.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/logical/PinotRelExchangeType.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.logical;
+package org.apache.pinot.calcite.rel.logical;
 
 /** Type of exchange. */
 public enum PinotRelExchangeType {
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/ImmutableSortExchangeCopyRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/ImmutableSortExchangeCopyRule.java
similarity index 98%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/ImmutableSortExchangeCopyRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/ImmutableSortExchangeCopyRule.java
index eca7fc6110..7a7ae16c4d 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/ImmutableSortExchangeCopyRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/ImmutableSortExchangeCopyRule.java
@@ -16,13 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
-
-// NOTE: this file was generated using Calcite's code generator, but instead 
of pulling in all
-// the dependencies for codegen we just manually generate it and check it in. 
If active development
-// on this needs to happen, re-generate it using Calcite's generator.
-
-// CHECKSTYLE:OFF
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.base.MoreObjects;
 import java.util.ArrayList;
@@ -35,10 +29,16 @@ import org.apache.calcite.tools.RelBuilderFactory;
 
 
 /**
+ * NOTE: this file was generated using Calcite's code generator, but instead 
of pulling in all
+ * the dependencies for codegen we just manually generate it and check it in. 
If active development
+ * on this needs to happen, re-generate it using Calcite's generator.
+ *
  * {@code ImmutableSortExchangeCopyRule} contains immutable implementation 
classes generated from
  * abstract value types defined as nested inside {@link SortExchangeCopyRule}.
  * @see ImmutableSortExchangeCopyRule.Config
  */
+// CHECKSTYLE:OFF
+//@formatter:off
 @SuppressWarnings({"all"})
 final class ImmutableSortExchangeCopyRule {
   private ImmutableSortExchangeCopyRule() {
@@ -412,3 +412,4 @@ final class ImmutableSortExchangeCopyRule {
     }
   }
 }
+//@formatter:on
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateExchangeNodeInsertRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateExchangeNodeInsertRule.java
similarity index 97%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateExchangeNodeInsertRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateExchangeNodeInsertRule.java
index df904123d2..b7f0038145 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateExchangeNodeInsertRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateExchangeNodeInsertRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
@@ -33,14 +33,12 @@ import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.core.Aggregate;
 import org.apache.calcite.rel.core.AggregateCall;
 import org.apache.calcite.rel.core.Project;
-import org.apache.calcite.rel.hint.PinotHintOptions;
-import org.apache.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.calcite.rel.hint.RelHint;
 import org.apache.calcite.rel.logical.LogicalAggregate;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
+import org.apache.calcite.rel.rules.AggregateExtractProjectRule;
+import org.apache.calcite.rel.rules.AggregateReduceFunctionsRule;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexNode;
-import org.apache.calcite.sql.PinotSqlAggFunction;
 import org.apache.calcite.sql.SqlAggFunction;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.type.OperandTypes;
@@ -53,6 +51,10 @@ import org.apache.calcite.util.Util;
 import org.apache.calcite.util.mapping.Mapping;
 import org.apache.calcite.util.mapping.MappingType;
 import org.apache.calcite.util.mapping.Mappings;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintStrategyTable;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
+import org.apache.pinot.calcite.sql.PinotSqlAggFunction;
 import org.apache.pinot.query.planner.plannode.AggregateNode.AggType;
 import org.apache.pinot.segment.spi.AggregationFunctionType;
 
@@ -62,7 +64,7 @@ import org.apache.pinot.segment.spi.AggregationFunctionType;
  * (1) non-data-locale Pinot server agg stage, and (2) the data-locale Pinot 
intermediate agg stage.
  *
  * Pinot uses special intermediate data representation for partially 
aggregated results, thus we can't use
- * {@link org.apache.calcite.rel.rules.AggregateReduceFunctionsRule} to reduce 
complex aggregation.
+ * {@link AggregateReduceFunctionsRule} to reduce complex aggregation.
  *
  * This rule is here to introduces Pinot-special aggregation splits. 
In-general there are several options:
  * <ul>
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateLiteralAttachmentRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateLiteralAttachmentRule.java
similarity index 96%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateLiteralAttachmentRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateLiteralAttachmentRule.java
index abad94fabf..74af35b47a 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateLiteralAttachmentRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateLiteralAttachmentRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.collect.ImmutableList;
 import java.util.HashMap;
@@ -28,14 +28,14 @@ import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.core.Aggregate;
 import org.apache.calcite.rel.core.AggregateCall;
 import org.apache.calcite.rel.core.Project;
-import org.apache.calcite.rel.hint.PinotHintOptions;
-import org.apache.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.calcite.rel.hint.RelHint;
 import org.apache.calcite.rel.logical.LogicalAggregate;
 import org.apache.calcite.rex.RexLiteral;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.tools.RelBuilderFactory;
 import org.apache.calcite.util.Pair;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
 import org.apache.pinot.query.planner.logical.LiteralHintUtils;
 import org.apache.pinot.query.planner.logical.RexExpression;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateToSemiJoinRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateToSemiJoinRule.java
similarity index 98%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateToSemiJoinRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateToSemiJoinRule.java
index 95267d3595..ebf61df801 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotAggregateToSemiJoinRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateToSemiJoinRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -29,6 +29,7 @@ import org.apache.calcite.rel.core.Aggregate;
 import org.apache.calcite.rel.core.Join;
 import org.apache.calcite.rel.core.JoinInfo;
 import org.apache.calcite.rel.logical.LogicalAggregate;
+import org.apache.calcite.rel.rules.CoreRules;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.tools.RelBuilder;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotEvaluateLiteralRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotEvaluateLiteralRule.java
similarity index 99%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotEvaluateLiteralRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotEvaluateLiteralRule.java
index 9cbaed6773..5ea790b408 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotEvaluateLiteralRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotEvaluateLiteralRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import java.math.BigDecimal;
 import java.sql.Timestamp;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotExchangeEliminationRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotExchangeEliminationRule.java
similarity index 94%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotExchangeEliminationRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotExchangeEliminationRule.java
index 308eb83e62..e6ba7b9c51 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotExchangeEliminationRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotExchangeEliminationRule.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import java.util.Collections;
 import org.apache.calcite.plan.RelOptRule;
 import org.apache.calcite.plan.RelOptRuleCall;
 import org.apache.calcite.rel.RelDistribution;
 import org.apache.calcite.rel.RelNode;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
 import org.apache.calcite.tools.RelBuilderFactory;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
 
 
 /**
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotFilterExpandSearchRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotFilterExpandSearchRule.java
similarity index 98%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotFilterExpandSearchRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotFilterExpandSearchRule.java
index 37c2aabc74..1a7e00f6bb 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotFilterExpandSearchRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotFilterExpandSearchRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import org.apache.calcite.plan.RelOptRule;
 import org.apache.calcite.plan.RelOptRuleCall;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotJoinExchangeNodeInsertRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotJoinExchangeNodeInsertRule.java
similarity index 96%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotJoinExchangeNodeInsertRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotJoinExchangeNodeInsertRule.java
index a4b64b9800..1b485551f8 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotJoinExchangeNodeInsertRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotJoinExchangeNodeInsertRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.collect.ImmutableList;
 import org.apache.calcite.plan.RelOptRule;
@@ -26,8 +26,8 @@ import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.core.Join;
 import org.apache.calcite.rel.core.JoinInfo;
 import org.apache.calcite.rel.logical.LogicalJoin;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
 import org.apache.calcite.tools.RelBuilderFactory;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
 
 
 /**
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotJoinToDynamicBroadcastRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotJoinToDynamicBroadcastRule.java
similarity index 96%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotJoinToDynamicBroadcastRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotJoinToDynamicBroadcastRule.java
index bdbaec23b5..dd1cff07cf 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotJoinToDynamicBroadcastRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotJoinToDynamicBroadcastRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Collections;
@@ -30,12 +30,12 @@ import org.apache.calcite.rel.core.Exchange;
 import org.apache.calcite.rel.core.Join;
 import org.apache.calcite.rel.core.JoinInfo;
 import org.apache.calcite.rel.core.JoinRelType;
-import org.apache.calcite.rel.hint.PinotHintOptions;
-import org.apache.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.calcite.rel.logical.LogicalJoin;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.calcite.tools.RelBuilderFactory;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintStrategyTable;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.zookeeper.common.StringUtils;
 
 
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotQueryRuleSets.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotQueryRuleSets.java
similarity index 97%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotQueryRuleSets.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotQueryRuleSets.java
index df81c67fef..cbac4de9e3 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotQueryRuleSets.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotQueryRuleSets.java
@@ -16,13 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Arrays;
 import java.util.Collection;
 import org.apache.calcite.adapter.enumerable.EnumerableRules;
 import org.apache.calcite.plan.RelOptRule;
+import org.apache.calcite.rel.rules.CoreRules;
+import org.apache.calcite.rel.rules.PruneEmptyRules;
 
 
 /**
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotRelDistributionTraitRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotRelDistributionTraitRule.java
similarity index 97%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotRelDistributionTraitRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotRelDistributionTraitRule.java
index 71008e4fd9..529f974be7 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotRelDistributionTraitRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotRelDistributionTraitRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
@@ -29,16 +29,16 @@ import org.apache.calcite.rel.RelDistribution;
 import org.apache.calcite.rel.RelDistributions;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.core.Exchange;
-import org.apache.calcite.rel.hint.PinotHintOptions;
-import org.apache.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.calcite.rel.logical.LogicalAggregate;
 import org.apache.calcite.rel.logical.LogicalFilter;
 import org.apache.calcite.rel.logical.LogicalJoin;
 import org.apache.calcite.rel.logical.LogicalProject;
 import org.apache.calcite.rel.logical.LogicalTableScan;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
 import org.apache.calcite.tools.RelBuilderFactory;
 import org.apache.calcite.util.mapping.Mappings;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintStrategyTable;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
 import org.apache.pinot.query.planner.plannode.AggregateNode;
 
 
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotRuleUtils.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotRuleUtils.java
similarity index 97%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotRuleUtils.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotRuleUtils.java
index 2646135797..d134c8af90 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotRuleUtils.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotRuleUtils.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import org.apache.calcite.plan.Contexts;
 import org.apache.calcite.plan.hep.HepRelVertex;
@@ -28,12 +28,12 @@ import org.apache.calcite.rel.core.Join;
 import org.apache.calcite.rel.core.Project;
 import org.apache.calcite.rel.core.RelFactories;
 import org.apache.calcite.rel.core.TableScan;
-import org.apache.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.calcite.rex.RexCall;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql2rel.SqlToRelConverter;
 import org.apache.calcite.tools.RelBuilder;
 import org.apache.calcite.tools.RelBuilderFactory;
+import org.apache.pinot.calcite.rel.hint.PinotHintStrategyTable;
 
 
 public class PinotRuleUtils {
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSetOpExchangeNodeInsertRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSetOpExchangeNodeInsertRule.java
similarity index 96%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSetOpExchangeNodeInsertRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSetOpExchangeNodeInsertRule.java
index 9fe933aa4b..425fe09335 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSetOpExchangeNodeInsertRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSetOpExchangeNodeInsertRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -30,8 +30,8 @@ import org.apache.calcite.rel.core.SetOp;
 import org.apache.calcite.rel.logical.LogicalIntersect;
 import org.apache.calcite.rel.logical.LogicalMinus;
 import org.apache.calcite.rel.logical.LogicalUnion;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
 import org.apache.calcite.tools.RelBuilderFactory;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
 
 
 /**
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSingleValueAggregateRemoveRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSingleValueAggregateRemoveRule.java
similarity index 98%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSingleValueAggregateRemoveRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSingleValueAggregateRemoveRule.java
index 0fe1cb10b4..29ef717136 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSingleValueAggregateRemoveRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSingleValueAggregateRemoveRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import org.apache.calcite.plan.RelOptRule;
 import org.apache.calcite.plan.RelOptRuleCall;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSortExchangeCopyRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeCopyRule.java
similarity index 97%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSortExchangeCopyRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeCopyRule.java
index 86310fc7e0..9ced39e91a 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSortExchangeCopyRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeCopyRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.base.Preconditions;
 import org.apache.calcite.plan.RelOptRuleCall;
@@ -26,13 +26,13 @@ import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.core.Sort;
 import org.apache.calcite.rel.core.SortExchange;
 import org.apache.calcite.rel.logical.LogicalSort;
-import org.apache.calcite.rel.logical.PinotLogicalSortExchange;
 import org.apache.calcite.rel.metadata.RelMdUtil;
 import org.apache.calcite.rel.metadata.RelMetadataQuery;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexLiteral;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalSortExchange;
 import org.apache.pinot.query.planner.logical.RexExpressionUtils;
 import org.apache.pinot.query.type.TypeFactory;
 import org.apache.pinot.query.type.TypeSystem;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSortExchangeNodeInsertRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeNodeInsertRule.java
similarity index 96%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSortExchangeNodeInsertRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeNodeInsertRule.java
index 56d08fd9ed..2536b0ed01 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotSortExchangeNodeInsertRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeNodeInsertRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import java.util.Collections;
 import org.apache.calcite.plan.RelOptRule;
@@ -24,8 +24,8 @@ import org.apache.calcite.plan.RelOptRuleCall;
 import org.apache.calcite.rel.RelDistributions;
 import org.apache.calcite.rel.core.Sort;
 import org.apache.calcite.rel.logical.LogicalSort;
-import org.apache.calcite.rel.logical.PinotLogicalSortExchange;
 import org.apache.calcite.tools.RelBuilderFactory;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalSortExchange;
 
 
 /**
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotWindowExchangeNodeInsertRule.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotWindowExchangeNodeInsertRule.java
similarity index 98%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotWindowExchangeNodeInsertRule.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotWindowExchangeNodeInsertRule.java
index b3f1176705..317a406332 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotWindowExchangeNodeInsertRule.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotWindowExchangeNodeInsertRule.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
@@ -36,8 +36,6 @@ import org.apache.calcite.rel.core.Project;
 import org.apache.calcite.rel.core.Window;
 import org.apache.calcite.rel.logical.LogicalProject;
 import org.apache.calcite.rel.logical.LogicalWindow;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
-import org.apache.calcite.rel.logical.PinotLogicalSortExchange;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rex.RexBuilder;
@@ -46,6 +44,8 @@ import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.calcite.tools.RelBuilderFactory;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalSortExchange;
 
 
 /**
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/PinotSqlAggFunction.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/PinotSqlAggFunction.java
similarity index 91%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/sql/PinotSqlAggFunction.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/PinotSqlAggFunction.java
index 0d4146f431..56a6cb7f0e 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/PinotSqlAggFunction.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/PinotSqlAggFunction.java
@@ -16,8 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.sql;
+package org.apache.pinot.calcite.sql;
 
+import org.apache.calcite.sql.SqlAggFunction;
+import org.apache.calcite.sql.SqlFunctionCategory;
+import org.apache.calcite.sql.SqlIdentifier;
+import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.type.SqlOperandTypeChecker;
 import org.apache.calcite.sql.type.SqlOperandTypeInference;
 import org.apache.calcite.sql.type.SqlReturnTypeInference;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/PinotSqlTransformFunction.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/PinotSqlTransformFunction.java
similarity index 90%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/sql/PinotSqlTransformFunction.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/PinotSqlTransformFunction.java
index 827c9f3733..7c97fbf7ae 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/PinotSqlTransformFunction.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/PinotSqlTransformFunction.java
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.sql;
+package org.apache.pinot.calcite.sql;
 
+import org.apache.calcite.sql.SqlFunction;
+import org.apache.calcite.sql.SqlFunctionCategory;
+import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.type.SqlOperandTypeChecker;
 import org.apache.calcite.sql.type.SqlOperandTypeInference;
 import org.apache.calcite.sql.type.SqlReturnTypeInference;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/fun/PinotOperatorTable.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotOperatorTable.java
similarity index 90%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/sql/fun/PinotOperatorTable.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotOperatorTable.java
index 3617a7c062..1eb1890304 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/fun/PinotOperatorTable.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotOperatorTable.java
@@ -16,18 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.sql.fun;
+package org.apache.pinot.calcite.sql.fun;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
-import org.apache.calcite.sql.PinotSqlAggFunction;
-import org.apache.calcite.sql.PinotSqlTransformFunction;
 import org.apache.calcite.sql.SqlFunction;
 import org.apache.calcite.sql.SqlOperator;
+import org.apache.calcite.sql.fun.SqlStdOperatorTable;
 import org.apache.calcite.sql.validate.SqlNameMatchers;
 import org.apache.calcite.util.Util;
+import org.apache.pinot.calcite.sql.PinotSqlAggFunction;
+import org.apache.pinot.calcite.sql.PinotSqlTransformFunction;
 import org.apache.pinot.common.function.TransformFunctionType;
 import org.apache.pinot.segment.spi.AggregationFunctionType;
 import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@@ -87,8 +88,7 @@ public class PinotOperatorTable extends SqlStdOperatorTable {
           if (op != null && notRegistered(op)) {
             register(op);
           }
-        } else if (
-            SqlOperator.class.isAssignableFrom(field.getType())) {
+        } else if (SqlOperator.class.isAssignableFrom(field.getType())) {
           SqlOperator op = (SqlOperator) field.get(this);
           if (op != null && notRegistered(op)) {
             register(op);
@@ -133,9 +133,10 @@ public class PinotOperatorTable extends 
SqlStdOperatorTable {
   private void registerAggregateFunction(String functionName, 
AggregationFunctionType functionType) {
     // register function behavior that's different from Calcite
     if (functionType.getOperandTypeChecker() != null && 
functionType.getReturnTypeInference() != null) {
-      PinotSqlAggFunction sqlAggFunction = new 
PinotSqlAggFunction(functionName.toUpperCase(Locale.ROOT), null,
-          functionType.getSqlKind(), functionType.getReturnTypeInference(), 
null,
-          functionType.getOperandTypeChecker(), 
functionType.getSqlFunctionCategory());
+      PinotSqlAggFunction sqlAggFunction =
+          new PinotSqlAggFunction(functionName.toUpperCase(Locale.ROOT), null, 
functionType.getSqlKind(),
+              functionType.getReturnTypeInference(), null, 
functionType.getOperandTypeChecker(),
+              functionType.getSqlFunctionCategory());
       if (notRegistered(sqlAggFunction)) {
         register(sqlAggFunction);
       }
@@ -146,9 +147,9 @@ public class PinotOperatorTable extends SqlStdOperatorTable 
{
     // register function behavior that's different from Calcite
     if (functionType.getOperandTypeChecker() != null && 
functionType.getReturnTypeInference() != null) {
       PinotSqlTransformFunction sqlTransformFunction =
-          new PinotSqlTransformFunction(functionName.toUpperCase(Locale.ROOT),
-              functionType.getSqlKind(), 
functionType.getReturnTypeInference(), null,
-              functionType.getOperandTypeChecker(), 
functionType.getSqlFunctionCategory());
+          new PinotSqlTransformFunction(functionName.toUpperCase(Locale.ROOT), 
functionType.getSqlKind(),
+              functionType.getReturnTypeInference(), null, 
functionType.getOperandTypeChecker(),
+              functionType.getSqlFunctionCategory());
       if (notRegistered(sqlTransformFunction)) {
         register(sqlTransformFunction);
       }
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/fun/PinotSqlCoalesceFunction.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotSqlCoalesceFunction.java
similarity index 92%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/sql/fun/PinotSqlCoalesceFunction.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotSqlCoalesceFunction.java
index 92ef85857f..086c42a572 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/fun/PinotSqlCoalesceFunction.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotSqlCoalesceFunction.java
@@ -16,10 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.sql.fun;
+package org.apache.pinot.calcite.sql.fun;
 
 import org.apache.calcite.sql.SqlCall;
 import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.fun.SqlCoalesceFunction;
 import org.apache.calcite.sql.validate.SqlValidator;
 
 
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/util/PinotChainedSqlOperatorTable.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/util/PinotChainedSqlOperatorTable.java
similarity index 83%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/sql/util/PinotChainedSqlOperatorTable.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/util/PinotChainedSqlOperatorTable.java
index 8e09d232d8..8d4db390b7 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql/util/PinotChainedSqlOperatorTable.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/util/PinotChainedSqlOperatorTable.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.sql.util;
+package org.apache.pinot.calcite.sql.util;
 
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
@@ -26,19 +26,23 @@ import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.SqlOperator;
 import org.apache.calcite.sql.SqlOperatorTable;
 import org.apache.calcite.sql.SqlSyntax;
+import org.apache.calcite.sql.util.ChainedSqlOperatorTable;
+import org.apache.calcite.sql.util.SqlOperatorTables;
 import org.apache.calcite.sql.validate.SqlNameMatcher;
 import org.checkerframework.checker.nullness.qual.Nullable;
 
+
 /**
- * ============================================================================
- * THIS CLASS IS COPIED FROM Calcite's {@link 
org.apache.calcite.sql.util.ChainedSqlOperatorTable} and modified the
- * function lookup to terminate early once found from ordered SqlOperatorTable 
list. This is to avoid some
- * hard-coded casting assuming all Sql identifier looked-up are of the same 
SqlOperator type.
- * ============================================================================
+ * 
=================================================================================================================
+ * THIS CLASS IS COPIED FROM Calcite's {@link ChainedSqlOperatorTable} and 
modified the function lookup to terminate
+ * early once found from ordered SqlOperatorTable list. This is to avoid some 
hard-coded casting assuming all Sql
+ * identifier looked-up are of the same SqlOperator type.
+ * 
=================================================================================================================
  *
- * PinotChainedSqlOperatorTable implements the {@link SqlOperatorTable} 
interface by
- * chaining together any number of underlying operator table instances.
+ * PinotChainedSqlOperatorTable implements the {@link SqlOperatorTable} 
interface by chaining together any number of
+ * underlying operator table instances.
  */
+//@formatter:off
 public class PinotChainedSqlOperatorTable implements SqlOperatorTable {
   //~ Instance fields --------------------------------------------------------
 
@@ -90,3 +94,4 @@ public class PinotChainedSqlOperatorTable implements 
SqlOperatorTable {
     return list;
   }
 }
+//@formatter:on
diff --git 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql2rel/PinotConvertletTable.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql2rel/PinotConvertletTable.java
similarity index 92%
rename from 
pinot-query-planner/src/main/java/org/apache/calcite/sql2rel/PinotConvertletTable.java
rename to 
pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql2rel/PinotConvertletTable.java
index 827810d04f..5633d58a69 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/calcite/sql2rel/PinotConvertletTable.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql2rel/PinotConvertletTable.java
@@ -16,13 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.sql2rel;
+package org.apache.pinot.calcite.sql2rel;
 
 import java.util.List;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.sql.SqlCall;
 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
+import org.apache.calcite.sql2rel.SqlRexContext;
+import org.apache.calcite.sql2rel.SqlRexConvertlet;
+import org.apache.calcite.sql2rel.SqlRexConvertletTable;
+import org.apache.calcite.sql2rel.StandardConvertletTable;
 import org.checkerframework.checker.nullness.qual.Nullable;
 
 
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/QueryEnvironment.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/QueryEnvironment.java
index 329b2e42d2..059faac2d4 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/QueryEnvironment.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/QueryEnvironment.java
@@ -35,13 +35,9 @@ import org.apache.calcite.plan.RelOptUtil;
 import org.apache.calcite.plan.hep.HepMatchOrder;
 import org.apache.calcite.plan.hep.HepProgram;
 import org.apache.calcite.plan.hep.HepProgramBuilder;
-import org.apache.calcite.prepare.PinotCalciteCatalogReader;
 import org.apache.calcite.prepare.Prepare;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.RelRoot;
-import org.apache.calcite.rel.rules.PinotQueryRuleSets;
-import org.apache.calcite.rel.rules.PinotRelDistributionTraitRule;
-import org.apache.calcite.rel.rules.PinotRuleUtils;
 import org.apache.calcite.rel.type.RelDataTypeFactory;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.runtime.CalciteContextException;
@@ -50,14 +46,18 @@ import org.apache.calcite.sql.SqlExplainFormat;
 import org.apache.calcite.sql.SqlExplainLevel;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.SqlNode;
-import org.apache.calcite.sql.fun.PinotOperatorTable;
-import org.apache.calcite.sql.util.PinotChainedSqlOperatorTable;
-import org.apache.calcite.sql2rel.PinotConvertletTable;
 import org.apache.calcite.sql2rel.RelDecorrelator;
 import org.apache.calcite.sql2rel.SqlToRelConverter;
 import org.apache.calcite.tools.FrameworkConfig;
 import org.apache.calcite.tools.Frameworks;
 import org.apache.calcite.tools.RelBuilder;
+import org.apache.pinot.calcite.prepare.PinotCalciteCatalogReader;
+import org.apache.pinot.calcite.rel.rules.PinotQueryRuleSets;
+import org.apache.pinot.calcite.rel.rules.PinotRelDistributionTraitRule;
+import org.apache.pinot.calcite.rel.rules.PinotRuleUtils;
+import org.apache.pinot.calcite.sql.fun.PinotOperatorTable;
+import org.apache.pinot.calcite.sql.util.PinotChainedSqlOperatorTable;
+import org.apache.pinot.calcite.sql2rel.PinotConvertletTable;
 import org.apache.pinot.common.config.provider.TableCache;
 import org.apache.pinot.query.context.PlannerContext;
 import org.apache.pinot.query.planner.PlannerUtils;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/catalog/PinotCatalog.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/catalog/PinotCatalog.java
index 7becc2a562..cb9630e724 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/catalog/PinotCatalog.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/catalog/PinotCatalog.java
@@ -32,6 +32,7 @@ import org.apache.calcite.schema.SchemaPlus;
 import org.apache.calcite.schema.SchemaVersion;
 import org.apache.calcite.schema.Schemas;
 import org.apache.calcite.schema.Table;
+import org.apache.pinot.calcite.jdbc.CalciteSchemaBuilder;
 import org.apache.pinot.common.config.provider.TableCache;
 import org.apache.pinot.common.utils.DatabaseUtils;
 import org.apache.pinot.spi.utils.builder.TableNameBuilder;
@@ -103,7 +104,7 @@ public class PinotCatalog implements Schema {
 
   /**
    * {@code PinotCatalog} doesn't need to return function collections b/c they 
are already registered.
-   * see: {@link 
org.apache.calcite.jdbc.CalciteSchemaBuilder#asRootSchema(Schema, String)}
+   * see: {@link CalciteSchemaBuilder#asRootSchema(Schema, String)}
    */
   @Override
   public Collection<Function> getFunctions(String name) {
@@ -112,7 +113,7 @@ public class PinotCatalog implements Schema {
 
   /**
    * {@code PinotCatalog} doesn't need to return function name set b/c they 
are already registered.
-   * see: {@link 
org.apache.calcite.jdbc.CalciteSchemaBuilder#asRootSchema(Schema, String)}
+   * see: {@link CalciteSchemaBuilder#asRootSchema(Schema, String)}
    */
   @Override
   public Set<String> getFunctionNames() {
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PinotLogicalQueryPlanner.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PinotLogicalQueryPlanner.java
index 486b78da94..4e03059ac1 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PinotLogicalQueryPlanner.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PinotLogicalQueryPlanner.java
@@ -30,7 +30,7 @@ import java.util.Map;
 import org.apache.calcite.rel.RelDistribution;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.RelRoot;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.query.planner.PlanFragment;
 import org.apache.pinot.query.planner.QueryPlanMetadata;
 import org.apache.pinot.query.planner.SubPlan;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PlanFragmenter.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PlanFragmenter.java
index 136e1ca73f..118673aecf 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PlanFragmenter.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PlanFragmenter.java
@@ -24,7 +24,7 @@ import it.unimi.dsi.fastutil.ints.IntList;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.calcite.rel.RelDistribution;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.query.planner.PlanFragment;
 import org.apache.pinot.query.planner.SubPlan;
 import org.apache.pinot.query.planner.plannode.AggregateNode;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/RelToPlanNodeConverter.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/RelToPlanNodeConverter.java
index 450c2ccc45..a505ab3102 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/RelToPlanNodeConverter.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/RelToPlanNodeConverter.java
@@ -40,13 +40,13 @@ import org.apache.calcite.rel.logical.LogicalSort;
 import org.apache.calcite.rel.logical.LogicalTableScan;
 import org.apache.calcite.rel.logical.LogicalValues;
 import org.apache.calcite.rel.logical.LogicalWindow;
-import org.apache.calcite.rel.logical.PinotLogicalExchange;
-import org.apache.calcite.rel.logical.PinotLogicalSortExchange;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rel.type.RelDataTypeField;
 import org.apache.calcite.rel.type.RelRecordType;
 import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalExchange;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalSortExchange;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
 import org.apache.pinot.common.utils.DatabaseUtils;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/SubPlanFragmenter.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/SubPlanFragmenter.java
index 989b52e971..e5e17cf05e 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/SubPlanFragmenter.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/SubPlanFragmenter.java
@@ -22,8 +22,8 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.calcite.runtime.ImmutablePairList;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.query.planner.SubPlanMetadata;
 import org.apache.pinot.query.planner.plannode.AggregateNode;
 import org.apache.pinot.query.planner.plannode.ExchangeNode;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/DispatchablePlanVisitor.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/DispatchablePlanVisitor.java
index 5aebbd1c8e..d54611ae89 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/DispatchablePlanVisitor.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/physical/DispatchablePlanVisitor.java
@@ -18,7 +18,7 @@
  */
 package org.apache.pinot.query.planner.physical;
 
-import org.apache.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
 import org.apache.pinot.query.planner.plannode.AggregateNode;
 import org.apache.pinot.query.planner.plannode.ExchangeNode;
 import org.apache.pinot.query.planner.plannode.FilterNode;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/AggregateNode.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/AggregateNode.java
index 4b31b53d1c..e0be21a68b 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/AggregateNode.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/AggregateNode.java
@@ -22,9 +22,9 @@ import com.google.common.base.Preconditions;
 import java.util.List;
 import java.util.stream.Collectors;
 import org.apache.calcite.rel.core.AggregateCall;
-import org.apache.calcite.rel.hint.PinotHintOptions;
-import org.apache.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.calcite.rel.hint.RelHint;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintStrategyTable;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.query.planner.logical.RexExpression;
 import org.apache.pinot.query.planner.logical.RexExpressionUtils;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/ExchangeNode.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/ExchangeNode.java
index ea98b2fbb3..c6d9024f5e 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/ExchangeNode.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/ExchangeNode.java
@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.Set;
 import org.apache.calcite.rel.RelDistribution;
 import org.apache.calcite.rel.RelFieldCollation;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.query.planner.serde.ProtoProperties;
 
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxReceiveNode.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxReceiveNode.java
index e517eee8e5..825a32f9a4 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxReceiveNode.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxReceiveNode.java
@@ -27,8 +27,8 @@ import org.apache.calcite.rel.RelDistribution;
 import org.apache.calcite.rel.RelFieldCollation;
 import org.apache.calcite.rel.RelFieldCollation.Direction;
 import org.apache.calcite.rel.RelFieldCollation.NullDirection;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.query.planner.logical.RexExpression;
 import org.apache.pinot.query.planner.serde.ProtoProperties;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxSendNode.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxSendNode.java
index 534e82effc..efc4f20e85 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxSendNode.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/MailboxSendNode.java
@@ -25,8 +25,8 @@ import java.util.List;
 import javax.annotation.Nullable;
 import org.apache.calcite.rel.RelDistribution;
 import org.apache.calcite.rel.RelFieldCollation;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.query.planner.logical.RexExpression;
 import org.apache.pinot.query.planner.serde.ProtoProperties;
diff --git 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/routing/WorkerManager.java
 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/routing/WorkerManager.java
index 0ecb86ce4b..d256a19a00 100644
--- 
a/pinot-query-planner/src/main/java/org/apache/pinot/query/routing/WorkerManager.java
+++ 
b/pinot-query-planner/src/main/java/org/apache/pinot/query/routing/WorkerManager.java
@@ -29,8 +29,8 @@ import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 import javax.annotation.Nullable;
-import org.apache.calcite.rel.hint.PinotHintOptions;
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
 import org.apache.pinot.core.routing.RoutingManager;
 import org.apache.pinot.core.routing.RoutingTable;
 import org.apache.pinot.core.routing.TablePartitionInfo;
diff --git 
a/pinot-query-planner/src/test/java/org/apache/calcite/rel/rules/PinotSortExchangeCopyRuleTest.java
 
b/pinot-query-planner/src/test/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeCopyRuleTest.java
similarity index 92%
rename from 
pinot-query-planner/src/test/java/org/apache/calcite/rel/rules/PinotSortExchangeCopyRuleTest.java
rename to 
pinot-query-planner/src/test/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeCopyRuleTest.java
index 241b461605..d470f7a425 100644
--- 
a/pinot-query-planner/src/test/java/org/apache/calcite/rel/rules/PinotSortExchangeCopyRuleTest.java
+++ 
b/pinot-query-planner/src/test/java/org/apache/pinot/calcite/rel/rules/PinotSortExchangeCopyRuleTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.calcite.rel.rules;
+package org.apache.pinot.calcite.rel.rules;
 
 import com.google.common.collect.ImmutableList;
 import org.apache.calcite.plan.RelOptCluster;
@@ -29,11 +29,11 @@ import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.rel.core.Sort;
 import org.apache.calcite.rel.core.SortExchange;
 import org.apache.calcite.rel.logical.LogicalSort;
-import org.apache.calcite.rel.logical.PinotLogicalSortExchange;
 import org.apache.calcite.rel.metadata.RelMetadataQuery;
 import org.apache.calcite.rex.RexBuilder;
 import org.apache.calcite.rex.RexNode;
 import org.apache.calcite.sql.type.SqlTypeName;
+import org.apache.pinot.calcite.rel.logical.PinotLogicalSortExchange;
 import org.apache.pinot.query.type.TypeFactory;
 import org.apache.pinot.query.type.TypeSystem;
 import org.mockito.ArgumentCaptor;
@@ -81,8 +81,8 @@ public class PinotSortExchangeCopyRuleTest {
   @Test
   public void shouldMatchLimitNoOffsetNoSort() {
     // Given:
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, RelCollations.EMPTY,
-        false, false);
+    SortExchange exchange =
+        PinotLogicalSortExchange.create(_input, RelDistributions.SINGLETON, 
RelCollations.EMPTY, false, false);
     Sort sort = LogicalSort.create(exchange, RelCollations.EMPTY, null, 
literal(1));
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -109,8 +109,8 @@ public class PinotSortExchangeCopyRuleTest {
   public void shouldMatchLimitNoOffsetYesSortNoSortEnabled() {
     // Given:
     RelCollation collation = RelCollations.of(1);
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation,
-        false, false);
+    SortExchange exchange =
+        PinotLogicalSortExchange.create(_input, RelDistributions.SINGLETON, 
collation, false, false);
     Sort sort = LogicalSort.create(exchange, collation, null, literal(1));
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -137,8 +137,7 @@ public class PinotSortExchangeCopyRuleTest {
   public void shouldMatchLimitNoOffsetYesSortOnSender() {
     // Given:
     RelCollation collation = RelCollations.of(1);
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation,
-        true, false);
+    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, true, false);
     Sort sort = LogicalSort.create(exchange, collation, null, literal(1));
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -165,8 +164,7 @@ public class PinotSortExchangeCopyRuleTest {
   public void shouldMatchLimitNoOffsetYesSort() {
     // Given:
     RelCollation collation = RelCollations.of(1);
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false,
-        true);
+    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false, true);
     Sort sort = LogicalSort.create(exchange, collation, null, literal(1));
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -192,8 +190,8 @@ public class PinotSortExchangeCopyRuleTest {
   @Test
   public void shouldMatchNoSortAndPushDownLimitPlusOffset() {
     // Given:
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, RelCollations.EMPTY,
-        false, true);
+    SortExchange exchange =
+        PinotLogicalSortExchange.create(_input, RelDistributions.SINGLETON, 
RelCollations.EMPTY, false, true);
     Sort sort = LogicalSort.create(exchange, RelCollations.EMPTY, literal(2), 
literal(1));
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -220,8 +218,7 @@ public class PinotSortExchangeCopyRuleTest {
   public void shouldMatchSortOnly() {
     // Given:
     RelCollation collation = RelCollations.of(1);
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false,
-        true);
+    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false, true);
     Sort sort = LogicalSort.create(exchange, collation, null, null);
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -238,8 +235,7 @@ public class PinotSortExchangeCopyRuleTest {
   public void shouldMatchLimitOffsetAndSort() {
     // Given:
     RelCollation collation = RelCollations.of(1);
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false,
-        true);
+    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false, true);
     Sort sort = LogicalSort.create(exchange, collation, literal(1), 
literal(2));
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -266,8 +262,7 @@ public class PinotSortExchangeCopyRuleTest {
   public void shouldNotMatchOnlySortAlreadySorted() {
     // Given:
     RelCollation collation = RelCollations.of(1);
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false,
-        true);
+    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, collation, false, true);
     Sort sort = LogicalSort.create(exchange, collation, null, null);
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
@@ -283,8 +278,8 @@ public class PinotSortExchangeCopyRuleTest {
   @Test
   public void shouldNotMatchOffsetNoLimitNoSort() {
     // Given:
-    SortExchange exchange = PinotLogicalSortExchange.create(_input, 
RelDistributions.SINGLETON, RelCollations.EMPTY,
-        false, true);
+    SortExchange exchange =
+        PinotLogicalSortExchange.create(_input, RelDistributions.SINGLETON, 
RelCollations.EMPTY, false, true);
     Sort sort = LogicalSort.create(exchange, RelCollations.EMPTY, literal(1), 
null);
     Mockito.when(_call.rel(0)).thenReturn(sort);
     Mockito.when(_call.rel(1)).thenReturn(exchange);
diff --git 
a/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
 
b/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
index 615f9bace3..9a97e75b88 100644
--- 
a/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
+++ 
b/pinot-query-planner/src/test/java/org/apache/pinot/query/QueryEnvironmentTestBase.java
@@ -29,9 +29,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Random;
 import javax.annotation.Nullable;
-import org.apache.calcite.jdbc.CalciteSchemaBuilder;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.pinot.calcite.jdbc.CalciteSchemaBuilder;
 import org.apache.pinot.common.config.provider.TableCache;
 import org.apache.pinot.core.routing.RoutingManager;
 import org.apache.pinot.core.routing.TablePartitionInfo;
diff --git 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
index 39577ba408..6b8bc3bcc4 100644
--- 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
+++ 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/AggregateOperator.java
@@ -26,8 +26,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import javax.annotation.Nullable;
-import org.apache.calcite.rel.hint.PinotHintOptions;
 import org.apache.calcite.sql.SqlKind;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
 import org.apache.pinot.common.datablock.DataBlock;
 import org.apache.pinot.common.datatable.DataTable;
 import org.apache.pinot.common.request.Literal;
diff --git 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
index 96645c8882..92d50dc54e 100644
--- 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
+++ 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/HashJoinOperator.java
@@ -29,7 +29,7 @@ import java.util.Map;
 import java.util.Set;
 import javax.annotation.Nullable;
 import org.apache.calcite.rel.core.JoinRelType;
-import org.apache.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
 import org.apache.pinot.common.datablock.DataBlock;
 import org.apache.pinot.common.datatable.DataTable;
 import org.apache.pinot.common.exception.QueryException;
diff --git 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/MultistageGroupByExecutor.java
 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/MultistageGroupByExecutor.java
index a89125d048..c199a21276 100644
--- 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/MultistageGroupByExecutor.java
+++ 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/MultistageGroupByExecutor.java
@@ -24,7 +24,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import javax.annotation.Nullable;
-import org.apache.calcite.rel.hint.PinotHintOptions;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
 import org.apache.pinot.common.datablock.DataBlock;
 import org.apache.pinot.common.request.context.ExpressionContext;
 import org.apache.pinot.common.utils.DataSchema;
diff --git 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerVisitor.java
 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerVisitor.java
index efa97d6638..7c192004ae 100644
--- 
a/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerVisitor.java
+++ 
b/pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerVisitor.java
@@ -18,7 +18,7 @@
  */
 package org.apache.pinot.query.runtime.plan.pipeline;
 
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import 
org.apache.pinot.query.planner.plannode.DefaultPostOrderTraversalVisitor;
 import org.apache.pinot.query.planner.plannode.MailboxReceiveNode;
 import org.apache.pinot.query.planner.plannode.PlanNode;
diff --git 
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
 
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
index c1e5255f85..c207118aaa 100644
--- 
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
+++ 
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/AggregateOperatorTest.java
@@ -24,9 +24,9 @@ import com.google.common.collect.ImmutableMap;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import org.apache.calcite.rel.hint.PinotHintOptions;
 import org.apache.calcite.rel.hint.RelHint;
 import org.apache.calcite.sql.SqlKind;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
 import org.apache.pinot.common.datatable.DataTable;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
diff --git 
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
 
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
index fa99ce0c01..48dbe8ef3e 100644
--- 
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
+++ 
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/operator/HashJoinOperatorTest.java
@@ -27,9 +27,9 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import org.apache.calcite.rel.core.JoinRelType;
-import org.apache.calcite.rel.hint.PinotHintOptions;
 import org.apache.calcite.rel.hint.RelHint;
 import org.apache.calcite.sql.SqlKind;
+import org.apache.pinot.calcite.rel.hint.PinotHintOptions;
 import org.apache.pinot.common.datatable.DataTable;
 import org.apache.pinot.common.exception.QueryException;
 import org.apache.pinot.common.utils.DataSchema;
diff --git 
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerExecutorTest.java
 
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerExecutorTest.java
index 58dcd2106e..c3953bef93 100644
--- 
a/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerExecutorTest.java
+++ 
b/pinot-query-runtime/src/test/java/org/apache/pinot/query/runtime/plan/pipeline/PipelineBreakerExecutorTest.java
@@ -27,7 +27,7 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import org.apache.calcite.rel.RelDistribution;
 import org.apache.calcite.rel.core.JoinRelType;
-import org.apache.calcite.rel.logical.PinotRelExchangeType;
+import org.apache.pinot.calcite.rel.logical.PinotRelExchangeType;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.query.mailbox.MailboxService;
 import org.apache.pinot.query.mailbox.ReceivingMailbox;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org


Reply via email to