Class DrillIndexCollection

java.lang.Object
org.apache.drill.exec.planner.index.AbstractIndexCollection
org.apache.drill.exec.planner.index.DrillIndexCollection
All Implemented Interfaces:
Iterable<IndexDescriptor>, IndexCollection

public class DrillIndexCollection extends AbstractIndexCollection
  • Constructor Details

    • DrillIndexCollection

      public DrillIndexCollection(org.apache.calcite.rel.RelNode scanRel, Set<DrillIndexDescriptor> indexes)
  • Method Details

    • supportsIndexSelection

      public boolean supportsIndexSelection()
      Description copied from interface: IndexCollection
      Whether or not this index collection supports index selection (selecting an appropriate index out of multiple candidates). Typically, external index collections such as Elasticsearch already have this capability while native secondary index collection may not have - in such cases, Drill needs to do the index selection.
      Specified by:
      supportsIndexSelection in interface IndexCollection
      Overrides:
      supportsIndexSelection in class AbstractIndexCollection
    • supportsRowCountStats

      public boolean supportsRowCountStats()
      Description copied from interface: IndexCollection
      Whether or not the index supports getting row count statistics
      Specified by:
      supportsRowCountStats in interface IndexCollection
      Overrides:
      supportsRowCountStats in class AbstractIndexCollection
      Returns:
      True if index supports getting row count, False otherwise
    • supportsFullTextSearch

      public boolean supportsFullTextSearch()
      Description copied from interface: IndexCollection
      Whether or not the index supports full-text search (to allow pushing down such filters)
      Specified by:
      supportsFullTextSearch in interface IndexCollection
      Overrides:
      supportsFullTextSearch in class AbstractIndexCollection
      Returns:
      True if index supports full-text search, False otherwise
    • getRows

      public double getRows(org.apache.calcite.rex.RexNode indexCondition)
      Description copied from interface: IndexCollection
      Get the estimated row count for a single index condition
      Specified by:
      getRows in interface IndexCollection
      Overrides:
      getRows in class AbstractIndexCollection
      Parameters:
      indexCondition - The index condition (e.g index_col1 < 10 AND index_col2 = 'abc')
      Returns:
      The estimated row count
    • getGroupScan

      public IndexGroupScan getGroupScan()
      Description copied from interface: IndexCollection
      If this IndexCollection exposes a single GroupScan, return the GroupScan instance. For external indexes such as Elasticsearch, we may have a single GroupScan representing all the indexes contained within that collection. On the other hand, for native indexes, each separate index would have its own GroupScan.
      Returns:
      GroupScan for this IndexCollection if available, otherwise null
    • getIndexCollectionType

      public IndexCollection.IndexCollectionType getIndexCollectionType()
      Description copied from interface: IndexCollection
      Get the type of this index based on IndexCollection.IndexCollectionType
      Returns:
      one of the values in IndexCollection.IndexCollectionType