Package org.apache.drill.exec.store.plan
Class AbstractPluginImplementor
java.lang.Object
org.apache.drill.exec.store.plan.AbstractPluginImplementor
- All Implemented Interfaces:
PluginImplementor
- Direct Known Subclasses:
DeltaPluginImplementor,DrillPluginImplementor,IcebergPluginImplementor,MongoPluginImplementor
Abstract base implementation of
PluginImplementor that can be used by
plugin implementors which can support only a subset of all provided operations.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanIf the plugin doesn't support native filter pushdown, but the reader can prune the set of rows to read.booleanIf the plugin doesn't support native limit pushdown, but the reader can limit the number of rows to read.booleancanImplement(org.apache.calcite.rel.core.Aggregate aggregate) booleancanImplement(org.apache.calcite.rel.core.Filter filter) booleancanImplement(org.apache.calcite.rel.core.Join scan) booleancanImplement(org.apache.calcite.rel.core.Project project) booleancanImplement(org.apache.calcite.rel.core.Sort sort) booleancanImplement(org.apache.calcite.rel.core.TableScan scan) booleancanImplement(org.apache.calcite.rel.core.Union union) booleancanImplement(DrillLimitRelBase limit) protected GroupScanfindGroupScan(org.apache.calcite.rel.RelNode node) protected abstract booleanhasPluginGroupScan(org.apache.calcite.rel.RelNode node) voidimplement(PluginAggregateRel aggregate) voidimplement(PluginFilterRel filter) voidimplement(PluginJoinRel join) voidimplement(PluginLimitRel limit) voidimplement(PluginProjectRel project) voidimplement(PluginSortRel sort) voidimplement(PluginUnionRel union) voidbooleansplitProject(org.apache.calcite.rel.core.Project project) protected abstract Class<? extends StoragePlugin> Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.drill.exec.store.plan.PluginImplementor
getPhysicalOperator, visitChild
-
Constructor Details
-
AbstractPluginImplementor
public AbstractPluginImplementor()
-
-
Method Details
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Throws:
IOException
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Aggregate aggregate) - Specified by:
canImplementin interfacePluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Filter filter) - Specified by:
canImplementin interfacePluginImplementor
-
canImplement
- Specified by:
canImplementin interfacePluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Project project) - Specified by:
canImplementin interfacePluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Sort sort) - Specified by:
canImplementin interfacePluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Union union) - Specified by:
canImplementin interfacePluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.TableScan scan) - Specified by:
canImplementin interfacePluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Join scan) - Specified by:
canImplementin interfacePluginImplementor
-
splitProject
public boolean splitProject(org.apache.calcite.rel.core.Project project) - Specified by:
splitProjectin interfacePluginImplementor
-
artificialLimit
public boolean artificialLimit()Description copied from interface:PluginImplementorIf the plugin doesn't support native limit pushdown, but the reader can limit the number of rows to read. In this case limit operator on top of the scan should be preserved to ensure returning the correct rows number.- Specified by:
artificialLimitin interfacePluginImplementor
-
artificialFilter
public boolean artificialFilter()Description copied from interface:PluginImplementorIf the plugin doesn't support native filter pushdown, but the reader can prune the set of rows to read. In this case filter operator on top of the scan should be preserved to ensure returning the correct subset of rows.- Specified by:
artificialFilterin interfacePluginImplementor
-
findGroupScan
-
supportedPlugin
-
hasPluginGroupScan
protected abstract boolean hasPluginGroupScan(org.apache.calcite.rel.RelNode node)
-