Class ScanFieldDeterminer
java.lang.Object
org.apache.drill.common.logical.data.visitors.AbstractLogicalVisitor<Void,ScanFieldDeterminer.FieldList,RuntimeException>
org.apache.drill.exec.planner.logical.ScanFieldDeterminer
- All Implemented Interfaces:
LogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
public class ScanFieldDeterminer
extends AbstractLogicalVisitor<Void,ScanFieldDeterminer.FieldList,RuntimeException>
This visitor will walk a logical plan and record in a map the list of field references associated to each scan. These
can then be used to update scan object to appear to be explicitly fielded for optimization purposes.
-
Nested Class Summary
-
Field Summary
Fields inherited from interface org.apache.drill.common.logical.data.visitors.LogicalVisitor
logger
-
Method Summary
Modifier and TypeMethodDescriptionstatic Map<Scan,
ScanFieldDeterminer.FieldList> getFieldLists
(LogicalPlan plan) visitExcept
(Except except, ScanFieldDeterminer.FieldList value) visitFilter
(Filter filter, ScanFieldDeterminer.FieldList value) visitGroupingAggregate
(GroupingAggregate groupBy, ScanFieldDeterminer.FieldList value) visitIntersect
(Intersect intersect, ScanFieldDeterminer.FieldList value) visitJoin
(Join join, ScanFieldDeterminer.FieldList fl) visitLimit
(Limit limit, ScanFieldDeterminer.FieldList value) visitOrder
(Order order, ScanFieldDeterminer.FieldList fl) visitProject
(Project project, ScanFieldDeterminer.FieldList value) visitScan
(Scan scan, ScanFieldDeterminer.FieldList value) visitStore
(Store store, ScanFieldDeterminer.FieldList value) visitUnion
(Union union, ScanFieldDeterminer.FieldList value) visitValues
(Values constant, ScanFieldDeterminer.FieldList value) Methods inherited from class org.apache.drill.common.logical.data.visitors.AbstractLogicalVisitor
visitAnalyze, visitFlatten, visitLateralJoin, visitOp, visitRunningAggregate, visitTransform, visitUnnest, visitWindow, visitWriter
-
Method Details
-
getFieldLists
-
visitScan
- Specified by:
visitScan
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitScan
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitStore
- Specified by:
visitStore
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitStore
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitGroupingAggregate
- Specified by:
visitGroupingAggregate
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitGroupingAggregate
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitFilter
- Specified by:
visitFilter
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitFilter
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitProject
- Specified by:
visitProject
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitProject
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitValues
- Specified by:
visitValues
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitValues
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitOrder
- Specified by:
visitOrder
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitOrder
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitJoin
- Specified by:
visitJoin
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitJoin
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitLimit
- Specified by:
visitLimit
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitLimit
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitUnion
- Specified by:
visitUnion
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitUnion
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitExcept
- Specified by:
visitExcept
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitExcept
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-
visitIntersect
- Specified by:
visitIntersect
in interfaceLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException> - Overrides:
visitIntersect
in classAbstractLogicalVisitor<Void,
ScanFieldDeterminer.FieldList, RuntimeException>
-