Class AbstractIndexCollection

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

public abstract class AbstractIndexCollection extends Object implements IndexCollection, Iterable<IndexDescriptor>
Abstract base class for Index collection (collection of Index descriptors)
  • Field Details

  • Constructor Details

    • AbstractIndexCollection

      public AbstractIndexCollection()
  • Method Details

    • addIndex

      public boolean addIndex(IndexDescriptor index)
      Description copied from interface: IndexCollection
      Add a new index to the collection. Return True if index was successfully added; False otherwise
      Specified by:
      addIndex in interface IndexCollection
    • removeIndex

      public boolean removeIndex(IndexDescriptor index)
      Description copied from interface: IndexCollection
      Remove an index (identified by table name and index name) from the collection. Return True if index was successfully removed; False otherwise
      Specified by:
      removeIndex in interface IndexCollection
    • clearAll

      public void clearAll()
      Description copied from interface: IndexCollection
      Clears all entries from this index collection
      Specified by:
      clearAll in interface IndexCollection
    • 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
    • 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
      Parameters:
      indexCondition - The index condition (e.g index_col1 < 10 AND index_col2 = 'abc')
      Returns:
      The estimated row count
    • 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
      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
      Returns:
      True if index supports full-text search, False otherwise
    • isColumnIndexed

      public boolean isColumnIndexed(SchemaPath path)
      Description copied from interface: IndexCollection
      Check if the field name is the leading key of any of the indexes in this collection
      Specified by:
      isColumnIndexed in interface IndexCollection
      Returns:
      True if an appropriate index is found, False otherwise
    • iterator

      public Iterator<IndexDescriptor> iterator()
      Specified by:
      iterator in interface Iterable<IndexDescriptor>