Package org.h2.index

Class LinkedIndex

All Implemented Interfaces:
HasSQL

public class LinkedIndex extends Index
A linked index is a index for a linked (remote) table. It is backed by an index on the remote table which is accessed over JDBC.
  • Field Details

    • targetTableName

      private final String targetTableName
    • rowCount

      private long rowCount
    • sqlFlags

      private final int sqlFlags
      See Also:
  • Constructor Details

  • Method Details

    • getCreateSQL

      public String getCreateSQL()
      Description copied from class: DbObject
      Construct the CREATE ... SQL statement for this object.
      Overrides:
      getCreateSQL in class Index
      Returns:
      the SQL statement
    • close

      public void close(SessionLocal session)
      Description copied from class: Index
      Close this index.
      Specified by:
      close in class Index
      Parameters:
      session - the session used to write data
    • isNull

      private static boolean isNull(Value v)
    • add

      public void add(SessionLocal session, Row row)
      Description copied from class: Index
      Add a row to the index.
      Specified by:
      add in class Index
      Parameters:
      session - the session to use
      row - the row to add
    • find

      public Cursor find(SessionLocal session, SearchRow first, SearchRow last)
      Description copied from class: Index
      Find a row or a list of rows and create a cursor to iterate over the result.
      Specified by:
      find in class Index
      Parameters:
      session - the session
      first - the first row, or null for no limit
      last - the last row, or null for no limit
      Returns:
      the cursor to iterate over the results
    • addParameter

      private void addParameter(StringBuilder builder, Column col)
    • getCost

      public double getCost(SessionLocal session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, AllColumnsForPlan allColumnsSet)
      Description copied from class: Index
      Estimate the cost to search for rows given the search mask. There is one element per column in the search mask. For possible search masks, see IndexCondition.
      Specified by:
      getCost in class Index
      Parameters:
      session - the session
      masks - per-column comparison bit masks, null means 'always false', see constants in IndexCondition
      filters - all joined table filters
      filter - the current table filter index
      sortOrder - the sort order
      allColumnsSet - the set of all columns
      Returns:
      the estimated cost
    • remove

      public void remove(SessionLocal session)
      Description copied from class: Index
      Remove the index.
      Specified by:
      remove in class Index
      Parameters:
      session - the session
    • truncate

      public void truncate(SessionLocal session)
      Description copied from class: Index
      Remove all rows from the index.
      Specified by:
      truncate in class Index
      Parameters:
      session - the session
    • checkRename

      public void checkRename()
      Description copied from class: DbObject
      Check if renaming is allowed. Does nothing when allowed.
      Overrides:
      checkRename in class DbObject
    • needRebuild

      public boolean needRebuild()
      Description copied from class: Index
      Check if the index needs to be rebuilt. This method is called after opening an index.
      Specified by:
      needRebuild in class Index
      Returns:
      true if a rebuild is required.
    • remove

      public void remove(SessionLocal session, Row row)
      Description copied from class: Index
      Remove a row from the index.
      Specified by:
      remove in class Index
      Parameters:
      session - the session
      row - the row
    • update

      public void update(Row oldRow, Row newRow, SessionLocal session)
      Update a row using a UPDATE statement. This method is to be called if the emit updates option is enabled.
      Parameters:
      oldRow - the old data
      newRow - the new data
      session - the session
    • getRowCount

      public long getRowCount(SessionLocal session)
      Description copied from class: Index
      Get the row count of this table, for the given session.
      Specified by:
      getRowCount in class Index
      Parameters:
      session - the session
      Returns:
      the row count
    • getRowCountApproximation

      public long getRowCountApproximation(SessionLocal session)
      Description copied from class: Index
      Get the approximated row count for this table.
      Specified by:
      getRowCountApproximation in class Index
      Parameters:
      session - the session
      Returns:
      the approximated row count