Package org.h2.index

Class IndexCursor

  • All Implemented Interfaces:
    Cursor

    public class IndexCursor
    extends java.lang.Object
    implements Cursor
    The filter used to walk through an index. This class supports IN(..) and IN(SELECT ...) optimizations.
    • Constructor Detail

      • IndexCursor

        public IndexCursor()
    • Method Detail

      • setIndex

        public void setIndex​(Index index)
      • prepare

        public void prepare​(SessionLocal s,
                            java.util.ArrayList<IndexCondition> indexConditions)
        Prepare this index cursor to make a lookup in index.
        Parameters:
        s - Session.
        indexConditions - Index conditions.
      • find

        public void find​(SessionLocal s,
                         java.util.ArrayList<IndexCondition> indexConditions)
        Re-evaluate the start and end values of the index search for rows.
        Parameters:
        s - the session
        indexConditions - the index conditions
      • canUseIndexForIn

        private boolean canUseIndexForIn​(Column column)
      • canUseIndexFor

        private boolean canUseIndexFor​(Column column)
      • isAlwaysFalse

        public boolean isAlwaysFalse()
        Check if the result is empty for sure.
        Returns:
        true if it is
      • getStart

        public SearchRow getStart()
        Get start search row.
        Returns:
        search row
      • getEnd

        public SearchRow getEnd()
        Get end search row.
        Returns:
        search row
      • get

        public Row get()
        Description copied from interface: Cursor
        Get the complete current row. All column are available.
        Specified by:
        get in interface Cursor
        Returns:
        the complete row
      • getSearchRow

        public SearchRow getSearchRow()
        Description copied from interface: Cursor
        Get the current row. Only the data for indexed columns is available in this row.
        Specified by:
        getSearchRow in interface Cursor
        Returns:
        the search row
      • next

        public boolean next()
        Description copied from interface: Cursor
        Skip to the next row if one is available.
        Specified by:
        next in interface Cursor
        Returns:
        true if another row is available
      • nextCursor

        private void nextCursor()
      • find

        private void find​(Value v)
      • previous

        public boolean previous()
        Description copied from interface: Cursor
        Skip to the previous row if one is available. No filtering is made here.
        Specified by:
        previous in interface Cursor
        Returns:
        true if another row is available