Class MVTempResult

  • All Implemented Interfaces:
    ResultExternal
    Direct Known Subclasses:
    MVPlainTempResult, MVSortedTempResult

    public abstract class MVTempResult
    extends java.lang.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 Detail

      • 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.
      • fileRef

        private final java.lang.ref.Reference<?> fileRef
        Reference to the record in the temporary file deleter.
    • Constructor Detail

      • 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 Detail

      • 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​(java.util.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()