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 TypeMethodDescriptionboolean
If the plugin doesn't support native filter pushdown, but the reader can prune the set of rows to read.boolean
If the plugin doesn't support native limit pushdown, but the reader can limit the number of rows to read.boolean
canImplement
(org.apache.calcite.rel.core.Aggregate aggregate) boolean
canImplement
(org.apache.calcite.rel.core.Filter filter) boolean
canImplement
(org.apache.calcite.rel.core.Join scan) boolean
canImplement
(org.apache.calcite.rel.core.Project project) boolean
canImplement
(org.apache.calcite.rel.core.Sort sort) boolean
canImplement
(org.apache.calcite.rel.core.TableScan scan) boolean
canImplement
(org.apache.calcite.rel.core.Union union) boolean
canImplement
(DrillLimitRelBase limit) void
implement
(PluginAggregateRel aggregate) void
implement
(PluginFilterRel filter) void
implement
(PluginJoinRel join) void
implement
(PluginLimitRel limit) void
implement
(PluginProjectRel project) void
implement
(PluginSortRel sort) void
implement
(PluginUnionRel union) void
boolean
splitProject
(org.apache.calcite.rel.core.Project project) default void
visitChild
(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.
-