| Modifier and Type | Interface and Description |
|---|---|
interface |
DrillScanPrel |
interface |
LeafPrel
Prel without children.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AggPrelBase |
class |
BroadcastExchangePrel |
class |
ComplexToJsonPrel |
class |
DirectScanPrel |
class |
ExchangePrel |
class |
FilterPrel |
class |
FlattenPrel |
class |
HashAggPrel |
class |
HashJoinPrel |
class |
HashToMergeExchangePrel |
class |
HashToRandomExchangePrel |
class |
JoinPrel
Base class for MergeJoinPrel and HashJoinPrel
|
class |
LateralJoinPrel |
class |
LimitPrel |
class |
MergeJoinPrel |
class |
MetadataControllerPrel |
class |
MetadataHandlerPrel |
class |
MetadataHashAggPrel |
class |
MetadataStreamAggPrel |
class |
NestedLoopJoinPrel |
class |
OrderedMuxExchangePrel
OrderedMuxExchangePrel is mux exchange created to multiplex the streams for a MergeReceiver.
|
class |
OrderedPartitionExchangePrel |
class |
ProducerConsumerPrel |
class |
ProjectAllowDupPrel |
class |
ProjectPrel
A physical Prel node for Project operator.
|
class |
RangePartitionExchangePrel
A RangePartitionExchange provides the ability to divide up the rows into separate ranges or 'buckets'
based on the values of a set of columns (the range partitioning columns).
|
class |
RowKeyJoinPrel |
class |
RuntimeFilterPrel |
class |
ScanPrel |
class |
ScreenPrel |
class |
SelectionVectorRemoverPrel |
class |
SingleMergeExchangePrel |
class |
SinglePrel |
class |
SortPrel |
class |
StatsAggPrel |
class |
StatsMergePrel |
class |
StreamAggPrel |
class |
TopNPrel |
class |
UnionAllPrel |
class |
UnionDistinctPrel |
class |
UnionExchangePrel |
class |
UnionPrel |
class |
UnnestPrel |
class |
UnorderedDeMuxExchangePrel |
class |
UnorderedMuxExchangePrel |
class |
UnpivotMapsPrel |
class |
ValuesPrel
Physical Values implementation in Drill.
|
class |
WindowPrel |
class |
WriterPrel |
| Modifier and Type | Method and Description |
|---|---|
Prel |
ExchangePrel.constructMuxPrel(Prel child,
OptionManager options)
The derived classes can override this method to create relevant mux exchanges.
|
Prel |
SingleMergeExchangePrel.constructMuxPrel(Prel child,
OptionManager options)
This method creates a new OrderedMux exchange if mux operators are enabled.
|
Prel |
HashToRandomExchangePrel.constructMuxPrel(Prel child,
OptionManager options)
This method creates a new UnorderedMux and Demux exchanges if mux operators are enabled.
|
Prel |
ValuesPrel.copy(org.apache.calcite.plan.RelTraitSet traitSet,
List<org.apache.calcite.rel.RelNode> inputs) |
Prel |
AggPrelBase.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
Prel |
SortPrel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
Prel |
SelectionVectorRemoverPrel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
Prel |
UnnestPrel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
Prel |
LimitPrel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
default Prel |
Prel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children)
If the operator is in Lateral/Unnest pipeline, then it generates a new operator which knows how to process
the rows accordingly during execution.
|
Prel |
FilterPrel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
Prel |
TopNPrel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
Prel |
ProjectPrel.prepareForLateralUnnestPipeline(List<org.apache.calcite.rel.RelNode> children) |
static Prel |
PrelUtil.removeSvIfRequired(Prel prel,
BatchSchema.SelectionVectorMode... allowed) |
| Modifier and Type | Method and Description |
|---|---|
static Iterator<Prel> |
PrelUtil.iter(List<org.apache.calcite.rel.RelNode> nodes) |
static Iterator<Prel> |
PrelUtil.iter(org.apache.calcite.rel.RelNode... nodes) |
Iterator<Prel> |
ProducerConsumerPrel.iterator() |
Iterator<Prel> |
WindowPrel.iterator() |
Iterator<Prel> |
JoinPrel.iterator() |
Iterator<Prel> |
MetadataHandlerPrel.iterator() |
Iterator<Prel> |
AggPrelBase.iterator() |
Iterator<Prel> |
FlattenPrel.iterator() |
default Iterator<Prel> |
LeafPrel.iterator() |
Iterator<Prel> |
SortPrel.iterator() |
Iterator<Prel> |
SinglePrel.iterator() |
Iterator<Prel> |
MetadataHashAggPrel.iterator() |
Iterator<Prel> |
WriterPrel.iterator() |
Iterator<Prel> |
StreamAggPrel.iterator() |
Iterator<Prel> |
ValuesPrel.iterator() |
Iterator<Prel> |
MetadataControllerPrel.iterator() |
Iterator<Prel> |
LimitPrel.iterator() |
Iterator<Prel> |
UnpivotMapsPrel.iterator() |
Iterator<Prel> |
StatsAggPrel.iterator() |
Iterator<Prel> |
FilterPrel.iterator() |
Iterator<Prel> |
LateralJoinPrel.iterator() |
Iterator<Prel> |
ScreenPrel.iterator() |
Iterator<Prel> |
ProjectPrel.iterator() |
Iterator<Prel> |
MetadataStreamAggPrel.iterator() |
Iterator<Prel> |
StatsMergePrel.iterator() |
Iterator<Prel> |
DirectScanPrel.iterator() |
Iterator<Prel> |
RowKeyJoinPrel.iterator() |
Iterator<Prel> |
UnionPrel.iterator() |
Iterator<Prel> |
ComplexToJsonPrel.iterator() |
| Modifier and Type | Method and Description |
|---|---|
PhysicalOperator |
PhysicalPlanCreator.addMetadata(Prel originalPrel,
PhysicalOperator op) |
PhysicalPlan |
PhysicalPlanCreator.build(Prel rootPrel,
boolean forceRebuild) |
Prel |
ExchangePrel.constructMuxPrel(Prel child,
OptionManager options)
The derived classes can override this method to create relevant mux exchanges.
|
Prel |
SingleMergeExchangePrel.constructMuxPrel(Prel child,
OptionManager options)
This method creates a new OrderedMux exchange if mux operators are enabled.
|
Prel |
HashToRandomExchangePrel.constructMuxPrel(Prel child,
OptionManager options)
This method creates a new UnorderedMux and Demux exchanges if mux operators are enabled.
|
static Prel |
PrelUtil.removeSvIfRequired(Prel prel,
BatchSchema.SelectionVectorMode... allowed) |
| Constructor and Description |
|---|
ComplexToJsonPrel(Prel phyRelNode) |
RuntimeFilterPrel(Prel child,
long identifier) |
SelectionVectorRemoverPrel(Prel child) |
| Constructor and Description |
|---|
PhysicalPlanCreator(QueryContext context,
Map<Prel,PrelSequencer.OpId> opIdMap) |
| Modifier and Type | Method and Description |
|---|---|
static Map<Prel,PrelSequencer.OpId> |
PrelSequencer.getIdMap(Prel rel) |
Map<Prel,PrelSequencer.OpId> |
PrelSequencer.go(Prel root) |
| Modifier and Type | Method and Description |
|---|---|
static Map<Prel,PrelSequencer.OpId> |
PrelSequencer.getIdMap(Prel rel) |
Map<Prel,PrelSequencer.OpId> |
PrelSequencer.go(Prel root) |
static String |
PrelSequencer.printWithIds(Prel rel,
org.apache.calcite.sql.SqlExplainLevel explainlevel) |
Void |
PrelSequencer.visitPrel(Prel prel,
org.apache.drill.exec.planner.physical.explain.PrelSequencer.Frag value) |
| Modifier and Type | Method and Description |
|---|---|
static Prel |
ComplexToJsonPrelVisitor.addComplexToJsonPrel(Prel prel) |
static Prel |
FinalColumnReorderer.addFinalColumnOrdering(Prel prel) |
static Prel |
ProducerConsumerPrelVisitor.addProducerConsumerToScans(Prel prel,
int queueSize) |
static Prel |
RuntimeFilterVisitor.addRuntimeFilter(Prel prel,
QueryContext queryContext) |
static Prel |
SelectionVectorPrelVisitor.addSelectionRemoversWhereNecessary(Prel prel) |
static Prel |
AdjustOperatorsSchemaVisitor.adjustSchema(Prel prel) |
static Prel |
InsertLocalExchangeVisitor.insertLocalExchanges(Prel prel,
OptionManager options) |
static Prel |
StarColumnConverter.insertRenameProject(Prel root) |
static Prel |
LateralUnnestRowIDVisitor.insertRowID(Prel prel) |
static Prel |
TopProjectVisitor.insertTopProject(Prel prel,
org.apache.calcite.rel.type.RelDataType validatedRowType)
Traverses passed physical relational node and its children and checks if top project
should be added under screen or writer to preserve final output fields names.
|
static Prel |
ExcessiveExchangeIdentifier.removeExcessiveExchanges(Prel prel,
long targetSliceSize) |
static Prel |
SwapHashJoinVisitor.swapHashJoin(Prel prel,
Double marginFactor) |
static Prel |
RelUniqifier.uniqifyGraph(Prel p) |
Prel |
ExcessiveExchangeIdentifier.visitExchange(ExchangePrel prel,
org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.MajorFragmentStat parent) |
Prel |
InsertLocalExchangeVisitor.visitExchange(ExchangePrel prel,
Void value) |
Prel |
SwapHashJoinVisitor.visitJoin(JoinPrel prel,
Double value) |
Prel |
RuntimeFilterVisitor.visitJoin(JoinPrel prel,
Void value) |
Prel |
AdjustOperatorsSchemaVisitor.visitJoin(JoinPrel prel,
Void value) |
Prel |
LateralUnnestRowIDVisitor.visitLateral(LateralJoinPrel prel,
Boolean isRightOfLateral) |
Prel |
ExcessiveExchangeIdentifier.visitLateral(LateralJoinPrel prel,
org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.MajorFragmentStat s) |
Prel |
AdjustOperatorsSchemaVisitor.visitLateral(LateralJoinPrel prel,
Void value) |
Prel |
StarColumnConverter.visitLeaf(LeafPrel prel,
Void value) |
Prel |
LateralUnnestRowIDVisitor.visitPrel(Prel prel,
Boolean isRightOfLateral) |
Prel |
SwapHashJoinVisitor.visitPrel(Prel prel,
Double value) |
Prel |
ExcessiveExchangeIdentifier.visitPrel(Prel prel,
org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.MajorFragmentStat s) |
Prel |
SplitUpComplexExpressions.visitPrel(Prel prel,
Object unused) |
Prel |
RewriteProjectToFlatten.visitPrel(Prel prel,
Object value) |
Prel |
RelUniqifier.visitPrel(Prel prel,
Set<Prel> data) |
Prel |
InsertLocalExchangeVisitor.visitPrel(Prel prel,
Void value) |
Prel |
FinalColumnReorderer.visitPrel(Prel prel,
Void value) |
Prel |
SelectionVectorPrelVisitor.visitPrel(Prel prel,
Void value) |
Prel |
RuntimeFilterVisitor.visitPrel(Prel prel,
Void value) |
Prel |
ProducerConsumerPrelVisitor.visitPrel(Prel prel,
Void value) |
Prel |
AdjustOperatorsSchemaVisitor.visitPrel(Prel prel,
Void value) |
Prel |
TopProjectVisitor.visitPrel(Prel prel,
Void value) |
Prel |
StarColumnConverter.visitPrel(Prel prel,
Void value) |
Prel |
SplitUpComplexExpressions.visitProject(ProjectPrel project,
Object unused) |
Prel |
RewriteProjectToFlatten.visitProject(ProjectPrel project,
Object unused) |
Prel |
StarColumnConverter.visitProject(ProjectPrel prel,
Void value) |
Prel |
ExcessiveExchangeIdentifier.visitScan(ScanPrel prel,
org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.MajorFragmentStat s) |
Prel |
RuntimeFilterVisitor.visitScan(ScanPrel prel,
Void value) |
Prel |
ProducerConsumerPrelVisitor.visitScan(ScanPrel scanPrel,
Void value) |
Prel |
StarColumnConverter.visitScan(ScanPrel scanPrel,
Void value) |
Prel |
ExcessiveExchangeIdentifier.visitScreen(ScreenPrel prel,
org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.MajorFragmentStat s) |
Prel |
FinalColumnReorderer.visitScreen(ScreenPrel prel,
Void value) |
Prel |
ComplexToJsonPrelVisitor.visitScreen(ScreenPrel prel,
Void value) |
Prel |
TopProjectVisitor.visitScreen(ScreenPrel prel,
Void value) |
Prel |
StarColumnConverter.visitScreen(ScreenPrel prel,
Void value) |
Prel |
LateralUnnestRowIDVisitor.visitUnnest(UnnestPrel prel,
Boolean isRightOfLateral) |
Prel |
ExcessiveExchangeIdentifier.visitUnnest(UnnestPrel prel,
org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.MajorFragmentStat s) |
Prel |
AdjustOperatorsSchemaVisitor.visitUnnest(UnnestPrel prel,
Void value) |
Prel |
StarColumnConverter.visitUnnest(UnnestPrel unnestPrel,
Void value) |
Prel |
FinalColumnReorderer.visitWriter(WriterPrel prel,
Void value) |
Prel |
TopProjectVisitor.visitWriter(WriterPrel prel,
Void value) |
Prel |
StarColumnConverter.visitWriter(WriterPrel prel,
Void value) |
| Modifier and Type | Method and Description |
|---|---|
static Prel |
ComplexToJsonPrelVisitor.addComplexToJsonPrel(Prel prel) |
static Prel |
FinalColumnReorderer.addFinalColumnOrdering(Prel prel) |
static Prel |
ProducerConsumerPrelVisitor.addProducerConsumerToScans(Prel prel,
int queueSize) |
static Prel |
RuntimeFilterVisitor.addRuntimeFilter(Prel prel,
QueryContext queryContext) |
static Prel |
SelectionVectorPrelVisitor.addSelectionRemoversWhereNecessary(Prel prel) |
static Prel |
AdjustOperatorsSchemaVisitor.adjustSchema(Prel prel) |
static boolean |
MemoryEstimationVisitor.enoughMemory(Prel prel,
OptionManager options,
int numDrillbits) |
static Double |
MemoryEstimationVisitor.estimateMemory(Prel prel) |
static Prel |
InsertLocalExchangeVisitor.insertLocalExchanges(Prel prel,
OptionManager options) |
static Prel |
StarColumnConverter.insertRenameProject(Prel root) |
static Prel |
LateralUnnestRowIDVisitor.insertRowID(Prel prel) |
static Prel |
TopProjectVisitor.insertTopProject(Prel prel,
org.apache.calcite.rel.type.RelDataType validatedRowType)
Traverses passed physical relational node and its children and checks if top project
should be added under screen or writer to preserve final output fields names.
|
static void |
PrelVisualizerVisitor.print(String label,
Prel prel) |
static Prel |
ExcessiveExchangeIdentifier.removeExcessiveExchanges(Prel prel,
long targetSliceSize) |
void |
PrelVisualizerVisitor.VisualizationState.startNode(Prel prel) |
static Prel |
SwapHashJoinVisitor.swapHashJoin(Prel prel,
Double marginFactor) |
static Prel |
RelUniqifier.uniqifyGraph(Prel p) |
Prel |
LateralUnnestRowIDVisitor.visitPrel(Prel prel,
Boolean isRightOfLateral) |
Prel |
SwapHashJoinVisitor.visitPrel(Prel prel,
Double value) |
Prel |
ExcessiveExchangeIdentifier.visitPrel(Prel prel,
org.apache.drill.exec.planner.physical.visitor.ExcessiveExchangeIdentifier.MajorFragmentStat s) |
RETURN |
BasePrelVisitor.visitPrel(Prel prel,
EXTRA value) |
RETURN |
PrelVisitor.visitPrel(Prel prel,
EXTRA value) |
Prel |
SplitUpComplexExpressions.visitPrel(Prel prel,
Object unused) |
Prel |
RewriteProjectToFlatten.visitPrel(Prel prel,
Object value) |
Void |
PrelVisualizerVisitor.visitPrel(Prel prel,
PrelVisualizerVisitor.VisualizationState value) |
Prel |
RelUniqifier.visitPrel(Prel prel,
Set<Prel> data) |
Prel |
InsertLocalExchangeVisitor.visitPrel(Prel prel,
Void value) |
Prel |
FinalColumnReorderer.visitPrel(Prel prel,
Void value) |
Prel |
SelectionVectorPrelVisitor.visitPrel(Prel prel,
Void value) |
Double |
MemoryEstimationVisitor.visitPrel(Prel prel,
Void value) |
Prel |
RuntimeFilterVisitor.visitPrel(Prel prel,
Void value) |
Prel |
ProducerConsumerPrelVisitor.visitPrel(Prel prel,
Void value) |
Prel |
AdjustOperatorsSchemaVisitor.visitPrel(Prel prel,
Void value) |
Prel |
TopProjectVisitor.visitPrel(Prel prel,
Void value) |
Prel |
StarColumnConverter.visitPrel(Prel prel,
Void value) |
static String |
PrelVisualizerVisitor.visualize(Prel prel) |
| Modifier and Type | Method and Description |
|---|---|
Prel |
RelUniqifier.visitPrel(Prel prel,
Set<Prel> data) |
| Modifier and Type | Method and Description |
|---|---|
protected Prel |
DefaultSqlHandler.convertToPrel(org.apache.calcite.rel.RelNode drel,
org.apache.calcite.rel.type.RelDataType validatedRowType)
Applies physical rules and certain transformations to convert drill relational node into physical one.
|
Prel |
PrelFinalizable.finalizeRel() |
| Modifier and Type | Method and Description |
|---|---|
protected PhysicalOperator |
DefaultSqlHandler.convertToPop(Prel prel) |
protected void |
DefaultSqlHandler.logAndSetTextPlan(String description,
Prel prel,
org.slf4j.Logger logger) |
static void |
ExplainHandler.printPlan(Prel node,
QueryContext context) |
| Modifier and Type | Class and Description |
|---|---|
class |
EnumerableIntermediatePrel |
class |
EnumerablePrel
LeafPrel implementation that generates java code that may be executed to obtain results
for the provided plan part. |
| Modifier and Type | Method and Description |
|---|---|
Prel |
EnumerableIntermediatePrel.finalizeRel() |
| Modifier and Type | Class and Description |
|---|---|
class |
JdbcIntermediatePrel
Prel used to represent a JDBC Conversion within an expression tree.
|
class |
JdbcPrel
Represents a JDBC Plan once the children nodes have been rewritten into SQL.
|
| Modifier and Type | Method and Description |
|---|---|
Prel |
JdbcIntermediatePrel.finalizeRel() |
| Modifier and Type | Method and Description |
|---|---|
Iterator<Prel> |
JdbcPrel.iterator() |
Copyright © 2021 The Apache Software Foundation. All rights reserved.