Package org.apache.drill.exec.store.plan
Interface PluginImplementor
- All Known Implementing Classes:
AbstractPluginImplementor,DeltaPluginImplementor,DrillPluginImplementor,IcebergPluginImplementor,MongoPluginImplementor
public interface PluginImplementor
Callback for the implementation process that checks whether a specific operator
can be converted and converts a tree of
PluginRel nodes into expressions
that can be consumed by the storage plugin.-
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) 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) default voidvisitChild(org.apache.calcite.rel.RelNode input)
-
Method Details
-
implement
- Throws:
IOException
-
implement
- Throws:
IOException
-
implement
- Throws:
IOException
-
implement
- Throws:
IOException
-
implement
- Throws:
IOException
-
implement
- Throws:
IOException
-
implement
- Throws:
IOException
-
implement
- Throws:
IOException
-
canImplement
boolean canImplement(org.apache.calcite.rel.core.Aggregate aggregate) -
canImplement
boolean canImplement(org.apache.calcite.rel.core.Filter filter) -
canImplement
-
canImplement
boolean canImplement(org.apache.calcite.rel.core.Project project) -
canImplement
boolean canImplement(org.apache.calcite.rel.core.Sort sort) -
canImplement
boolean canImplement(org.apache.calcite.rel.core.Union union) -
canImplement
boolean canImplement(org.apache.calcite.rel.core.Join scan) -
canImplement
boolean canImplement(org.apache.calcite.rel.core.TableScan scan) -
getPhysicalOperator
- Throws:
IOException
-
visitChild
- Throws:
IOException
-
splitProject
boolean splitProject(org.apache.calcite.rel.core.Project project) -
artificialLimit
boolean artificialLimit()If 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. -
artificialFilter
boolean artificialFilter()If 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.
-