Class MVTempResult

java.lang.Object
org.h2.mvstore.db.MVTempResult
All Implemented Interfaces:
ResultExternal
Direct Known Subclasses:
MVPlainTempResult, MVSortedTempResult

public abstract class MVTempResult extends Object implements ResultExternal
Temporary result.

A separate MVStore in a temporary file is used for each result. The file is removed when this result and all its copies are closed. TempFileDeleter is also used to delete this file if results are not closed properly.

  • Field Details

    • database

      private final Database database
    • store

      final MVStore store
      MVStore.
    • expressions

      final Expression[] expressions
      Column expressions.
    • visibleColumnCount

      final int visibleColumnCount
      Count of visible columns.
    • resultColumnCount

      final int resultColumnCount
      Total count of columns.
    • rowCount

      int rowCount
      Count of rows. Used only in a root results, copies always have 0 value.
    • parent

      final MVTempResult parent
      Parent store for copies. If null this result is a root result.
    • childCount

      int childCount
      Count of child results.
    • closed

      boolean closed
      Whether this result is closed.
    • tempFileDeleter

      private final TempFileDeleter tempFileDeleter
      Temporary file deleter.
    • closeable

      private final MVTempResult.CloseImpl closeable
      Closeable to close the storage.
    • fileRef

      private final Reference<?> fileRef
      Reference to the record in the temporary file deleter.
  • Constructor Details

    • MVTempResult

      MVTempResult(MVTempResult parent)
      Creates a shallow copy of the result.
      Parameters:
      parent - parent result
    • MVTempResult

      MVTempResult(Database database, Expression[] expressions, int visibleColumnCount, int resultColumnCount)
      Creates a new temporary result.
      Parameters:
      database - database
      expressions - column expressions
      visibleColumnCount - count of visible columns
      resultColumnCount - total count of columns
  • Method Details

    • of

      public static ResultExternal of(Database database, Expression[] expressions, boolean distinct, int[] distinctIndexes, int visibleColumnCount, int resultColumnCount, SortOrder sort)
      Creates MVStore-based temporary result.
      Parameters:
      database - database
      expressions - expressions
      distinct - is output distinct
      distinctIndexes - indexes of distinct columns for DISTINCT ON results
      visibleColumnCount - count of visible columns
      resultColumnCount - the number of columns including visible columns and additional virtual columns for ORDER BY and DISTINCT ON clauses
      sort - sort order, or null
      Returns:
      temporary result
    • addRows

      public int addRows(Collection<Value[]> rows)
      Description copied from interface: ResultExternal
      Add a number of rows to the result.
      Specified by:
      addRows in interface ResultExternal
      Parameters:
      rows - the list of rows to add
      Returns:
      the new number of rows in this object
    • close

      public void close()
      Description copied from interface: ResultExternal
      Close this object and delete the temporary file.
      Specified by:
      close in interface ResultExternal
    • closeChild

      private void closeChild()
    • delete

      private void delete()