This is an automated email from the ASF dual-hosted git repository.
gortiz pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
from 1e771ea458 Fix behavior for distinct sum and distinct avg when all
values are null (#14069)
add c484fef0f5 Multi stage explain (#13733)
No new revisions were added by this update.
Summary of changes:
.../MultiStageBrokerRequestHandler.java | 28 +-
.../org/apache/pinot/common/utils/DataSchema.java | 155 +++++-
.../apache/pinot/common/utils/DatabaseUtils.java | 9 +-
.../common/utils/config/QueryOptionsUtils.java | 9 +
pinot-common/src/main/proto/plan.proto | 47 ++
pinot-common/src/main/proto/worker.proto | 7 +
.../org/apache/pinot/core/common/Operator.java | 38 +-
.../AcquireReleaseColumnsSegmentOperator.java | 11 +
.../apache/pinot/core/operator/BaseOperator.java | 30 ++
.../pinot/core/operator/DocIdSetOperator.java | 6 +
.../core/operator/ExplainAttributeBuilder.java | 74 +++
.../pinot/core/operator/ProjectionOperator.java | 12 +
...ResultsBlock.java => ExplainV2ResultBlock.java} | 75 ++-
.../operator/filter/ExpressionFilterOperator.java | 14 +
.../filter/H3InclusionIndexFilterOperator.java | 16 +-
.../operator/filter/H3IndexFilterOperator.java | 15 +
.../filter/InvertedIndexFilterOperator.java | 17 +-
.../operator/filter/JsonMatchFilterOperator.java | 17 +-
.../operator/filter/MatchAllFilterOperator.java | 13 +
.../filter/RangeIndexBasedFilterOperator.java | 16 +
.../operator/filter/ScanBasedFilterOperator.java | 14 +
.../filter/SortedIndexBasedFilterOperator.java | 15 +
.../filter/TextContainsFilterOperator.java | 17 +-
.../operator/filter/TextMatchFilterOperator.java | 15 +
.../filter/VectorSimilarityFilterOperator.java | 17 +
.../core/operator/query/AggregationOperator.java | 21 +
.../core/operator/query/DistinctOperator.java | 21 +
.../query/FilteredAggregationOperator.java | 12 +
.../operator/query/FilteredGroupByOperator.java | 25 +
.../pinot/core/operator/query/GroupByOperator.java | 23 +
.../query/LinearSelectionOrderByOperator.java | 34 +-
.../core/operator/query/SelectionOnlyOperator.java | 19 +
.../operator/query/SelectionOrderByOperator.java | 18 +
.../SelectionPartiallyOrderedByAscOperator.java | 2 +-
.../SelectionPartiallyOrderedByDescOperation.java | 2 +-
.../streaming/StreamingSelectionOnlyOperator.java | 21 +
.../core/operator/transform/TransformOperator.java | 16 +-
.../org/apache/pinot/core/plan/ExplainInfo.java | 63 +++
.../pinot/core/plan/PinotExplainedRelNode.java | 150 ++++++
.../query/executor/ServerQueryExecutorV1Impl.java | 206 +++++---
.../query/reduce/ExplainPlanDataTableReducer.java | 2 +-
.../request/context/ExplainMode.java} | 45 +-
.../core/query/request/context/QueryContext.java | 25 +-
.../context/utils/QueryContextConverterUtils.java | 18 +-
.../org/apache/pinot/queries/BaseQueriesTest.java | 11 +-
pinot-integration-tests/pom.xml | 5 +
.../MultiStageEngineExplainIntegrationTest.java | 241 ++++++++++
.../tests/MultiStageEngineIntegrationTest.java | 2 +-
.../tests/OfflineClusterIntegrationTest.java | 15 +-
.../org/apache/pinot/query/QueryEnvironment.java | 45 +-
.../apache/pinot/query/context/PlannerContext.java | 3 +-
.../apache/pinot/query/planner/PlannerUtils.java | 35 +-
.../explain/AskingServerStageExplainer.java | 149 ++++++
.../planner/explain/ExplainNodeSimplifier.java | 186 ++++++++
.../MultiStageExplainAskingServersUtils.java | 107 +++++
.../explain/PhysicalExplainPlanVisitor.java | 6 +
.../query/planner/explain/PinotRelJsonWriter.java | 38 +-
.../query/planner/explain/PlanNodeMerger.java | 530 +++++++++++++++++++++
.../query/planner/explain/PlanNodeSorter.java | 244 ++++++++++
.../query/planner/logical/LiteralValueNode.java | 9 +
.../planner/logical/PinotLogicalQueryPlanner.java | 39 +-
.../query/planner/logical/PlanFragmenter.java | 29 +-
.../planner/logical/PlanNodeToRelConverter.java | 468 ++++++++++++++++++
.../planner/logical/RelToPlanNodeConverter.java | 33 +-
.../query/planner/logical/RexExpressionUtils.java | 146 ++++++
.../query/planner/logical/SubPlanFragmenter.java | 6 +
.../planner/logical/TransformationTracker.java | 107 +++++
.../planner/physical/DispatchablePlanVisitor.java | 6 +
.../colocated/GreedyShuffleRewriteVisitor.java | 6 +
.../query/planner/plannode/AggregateNode.java | 5 +
.../plannode/DefaultPostOrderTraversalVisitor.java | 6 +
.../pinot/query/planner/plannode/ExchangeNode.java | 6 +
.../query/planner/plannode/ExplainedNode.java | 95 ++++
.../pinot/query/planner/plannode/FilterNode.java | 5 +
.../pinot/query/planner/plannode/JoinNode.java | 5 +
.../query/planner/plannode/MailboxReceiveNode.java | 6 +
.../query/planner/plannode/MailboxSendNode.java | 6 +
.../pinot/query/planner/plannode/PlanNode.java | 11 +
.../query/planner/plannode/PlanNodeVisitor.java | 2 +
.../pinot/query/planner/plannode/ProjectNode.java | 5 +
.../pinot/query/planner/plannode/SetOpNode.java | 5 +
.../pinot/query/planner/plannode/SortNode.java | 5 +
.../query/planner/plannode/TableScanNode.java | 5 +
.../pinot/query/planner/plannode/ValueNode.java | 5 +
.../pinot/query/planner/plannode/WindowNode.java | 6 +
.../query/planner/serde/PlanNodeDeserializer.java | 9 +
.../query/planner/serde/PlanNodeSerializer.java | 11 +
.../validation/ArrayToMvValidationVisitor.java | 7 +
.../org/apache/pinot/query/type/TypeFactory.java | 2 +
.../apache/pinot/query/QueryCompilationTest.java | 6 +-
.../query/queries/ResourceBasedQueryPlansTest.java | 4 +-
.../query/runtime/InStageStatsTreeBuilder.java | 6 +
.../apache/pinot/query/runtime/QueryRunner.java | 73 ++-
.../LeafStageTransferableBlockOperator.java | 68 +++
.../query/runtime/operator/MultiStageOperator.java | 26 +
.../query/runtime/plan/PhysicalPlanVisitor.java | 170 -------
.../query/runtime/plan/PlanNodeToOpChain.java | 207 ++++++++
.../plan/pipeline/PipelineBreakerContext.java | 2 +-
.../plan/pipeline/PipelineBreakerExecutor.java | 10 +-
.../plan/server/ServerPlanRequestUtils.java | 27 +-
.../plan/server/ServerPlanRequestVisitor.java | 6 +
...bserver.java => AllValuesDispatchObserver.java} | 20 +-
...eryDispatchResponse.java => AsyncResponse.java} | 14 +-
.../query/service/dispatch/DispatchClient.java | 10 +-
...bserver.java => LastValueDispatchObserver.java} | 21 +-
.../query/service/dispatch/QueryDispatcher.java | 244 +++++++---
.../pinot/query/service/server/QueryServer.java | 194 ++++++--
.../apache/pinot/spi/utils/CommonConstants.java | 21 +
108 files changed, 4655 insertions(+), 557 deletions(-)
create mode 100644
pinot-core/src/main/java/org/apache/pinot/core/operator/ExplainAttributeBuilder.java
copy
pinot-core/src/main/java/org/apache/pinot/core/operator/blocks/results/{ExplainResultsBlock.java
=> ExplainV2ResultBlock.java} (56%)
create mode 100644
pinot-core/src/main/java/org/apache/pinot/core/plan/ExplainInfo.java
create mode 100644
pinot-core/src/main/java/org/apache/pinot/core/plan/PinotExplainedRelNode.java
copy
pinot-core/src/main/java/org/apache/pinot/core/{operator/blocks/ValueBlock.java
=> query/request/context/ExplainMode.java} (50%)
create mode 100644
pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MultiStageEngineExplainIntegrationTest.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/explain/AskingServerStageExplainer.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/explain/ExplainNodeSimplifier.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/explain/MultiStageExplainAskingServersUtils.java
copy
pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/IsNotTrueTransformFunction.java
=>
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/explain/PinotRelJsonWriter.java
(54%)
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/explain/PlanNodeMerger.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/explain/PlanNodeSorter.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/PlanNodeToRelConverter.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/logical/TransformationTracker.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/query/planner/plannode/ExplainedNode.java
delete mode 100644
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/PhysicalPlanVisitor.java
create mode 100644
pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/plan/PlanNodeToOpChain.java
copy
pinot-query-runtime/src/main/java/org/apache/pinot/query/service/dispatch/{DispatchObserver.java
=> AllValuesDispatchObserver.java} (67%)
rename
pinot-query-runtime/src/main/java/org/apache/pinot/query/service/dispatch/{AsyncQueryDispatchResponse.java
=> AsyncResponse.java} (80%)
rename
pinot-query-runtime/src/main/java/org/apache/pinot/query/service/dispatch/{DispatchObserver.java
=> LastValueDispatchObserver.java} (61%)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]