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 Details

    • implement

      void implement(PluginAggregateRel aggregate) throws IOException
      Throws:
      IOException
    • implement

      void implement(PluginFilterRel filter) throws IOException
      Throws:
      IOException
    • implement

      void implement(PluginLimitRel limit) throws IOException
      Throws:
      IOException
    • implement

      void implement(PluginProjectRel project) throws IOException
      Throws:
      IOException
    • implement

      void implement(PluginSortRel sort) throws IOException
      Throws:
      IOException
    • implement

      void implement(PluginUnionRel union) throws IOException
      Throws:
      IOException
    • implement

      void implement(PluginJoinRel join) throws IOException
      Throws:
      IOException
    • implement

      void implement(StoragePluginTableScan scan) throws IOException
      Throws:
      IOException
    • canImplement

      boolean canImplement(org.apache.calcite.rel.core.Aggregate aggregate)
    • canImplement

      boolean canImplement(org.apache.calcite.rel.core.Filter filter)
    • canImplement

      boolean canImplement(DrillLimitRelBase limit)
    • 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

      GroupScan getPhysicalOperator() throws IOException
      Throws:
      IOException
    • visitChild

      default void visitChild(org.apache.calcite.rel.RelNode input) throws IOException
      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.