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