Package org.h2.result

Class SimpleResult

java.lang.Object
org.h2.result.SimpleResult
All Implemented Interfaces:
AutoCloseable, ResultInterface, ResultTarget

public class SimpleResult extends Object implements ResultInterface, ResultTarget
Simple in-memory result.
  • Field Details

  • Constructor Details

    • SimpleResult

      public SimpleResult()
      Creates new instance of simple result.
    • SimpleResult

      public SimpleResult(String schemaName, String tableName)
      Creates new instance of simple result.
      Parameters:
      schemaName - the name of the schema
      tableName - the name of the table
    • SimpleResult

      private SimpleResult(ArrayList<SimpleResult.Column> columns, ArrayList<Value[]> rows, String schemaName, String tableName)
  • Method Details

    • addColumn

      public void addColumn(String alias, String columnName, int columnType, long columnPrecision, int columnScale)
      Add column to the result.
      Parameters:
      alias - Column's alias.
      columnName - Column's name.
      columnType - Column's value type.
      columnPrecision - Column's precision.
      columnScale - Column's scale.
    • addColumn

      public void addColumn(String columnName, TypeInfo columnType)
      Add column to the result.
      Parameters:
      columnName - Column's name.
      columnType - Column's type.
    • addColumn

      public void addColumn(String alias, String columnName, TypeInfo columnType)
      Add column to the result.
      Parameters:
      alias - Column's alias.
      columnName - Column's name.
      columnType - Column's type.
    • addColumn

      void addColumn(SimpleResult.Column column)
      Add column to the result.
      Parameters:
      column - Column info.
    • addRow

      public void addRow(Value... values)
      Description copied from interface: ResultTarget
      Add the row to the result set.
      Specified by:
      addRow in interface ResultTarget
      Parameters:
      values - the values
    • reset

      public void reset()
      Description copied from interface: ResultInterface
      Go to the beginning of the result, that means before the first row.
      Specified by:
      reset in interface ResultInterface
    • currentRow

      public Value[] currentRow()
      Description copied from interface: ResultInterface
      Get the current row.
      Specified by:
      currentRow in interface ResultInterface
      Returns:
      the row
    • next

      public boolean next()
      Description copied from interface: ResultInterface
      Go to the next row.
      Specified by:
      next in interface ResultInterface
      Returns:
      true if a row exists
    • getRowId

      public long getRowId()
      Description copied from interface: ResultInterface
      Get the current row id, starting with 0. -1 is returned when next() was not called yet.
      Specified by:
      getRowId in interface ResultInterface
      Returns:
      the row id
    • isAfterLast

      public boolean isAfterLast()
      Description copied from interface: ResultInterface
      Check if the current position is after last row.
      Specified by:
      isAfterLast in interface ResultInterface
      Returns:
      true if after last
    • getVisibleColumnCount

      public int getVisibleColumnCount()
      Description copied from interface: ResultInterface
      Get the number of visible columns. More columns may exist internally for sorting or grouping.
      Specified by:
      getVisibleColumnCount in interface ResultInterface
      Returns:
      the number of columns
    • getRowCount

      public long getRowCount()
      Description copied from interface: ResultInterface
      Get the number of rows in this object.
      Specified by:
      getRowCount in interface ResultInterface
      Specified by:
      getRowCount in interface ResultTarget
      Returns:
      the number of rows
    • hasNext

      public boolean hasNext()
      Description copied from interface: ResultInterface
      Check if this result has more rows to fetch.
      Specified by:
      hasNext in interface ResultInterface
      Returns:
      true if it has
    • needToClose

      public boolean needToClose()
      Description copied from interface: ResultInterface
      Check if this result set should be closed, for example because it is buffered using a temporary file.
      Specified by:
      needToClose in interface ResultInterface
      Returns:
      true if close should be called.
    • close

      public void close()
      Description copied from interface: ResultInterface
      Close the result and delete any temporary files
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface ResultInterface
    • getAlias

      public String getAlias(int i)
      Description copied from interface: ResultInterface
      Get the column alias name for the column.
      Specified by:
      getAlias in interface ResultInterface
      Parameters:
      i - the column number (starting with 0)
      Returns:
      the alias name
    • getSchemaName

      public String getSchemaName(int i)
      Description copied from interface: ResultInterface
      Get the schema name for the column, if one exists.
      Specified by:
      getSchemaName in interface ResultInterface
      Parameters:
      i - the column number (starting with 0)
      Returns:
      the schema name or null
    • getTableName

      public String getTableName(int i)
      Description copied from interface: ResultInterface
      Get the table name for the column, if one exists.
      Specified by:
      getTableName in interface ResultInterface
      Parameters:
      i - the column number (starting with 0)
      Returns:
      the table name or null
    • getColumnName

      public String getColumnName(int i)
      Description copied from interface: ResultInterface
      Get the column name.
      Specified by:
      getColumnName in interface ResultInterface
      Parameters:
      i - the column number (starting with 0)
      Returns:
      the column name
    • getColumnType

      public TypeInfo getColumnType(int i)
      Description copied from interface: ResultInterface
      Get the column data type.
      Specified by:
      getColumnType in interface ResultInterface
      Parameters:
      i - the column number (starting with 0)
      Returns:
      the column data type
    • isIdentity

      public boolean isIdentity(int i)
      Description copied from interface: ResultInterface
      Check if this is an identity column.
      Specified by:
      isIdentity in interface ResultInterface
      Parameters:
      i - the column number (starting with 0)
      Returns:
      true for identity columns
    • getNullable

      public int getNullable(int i)
      Description copied from interface: ResultInterface
      Check if this column is nullable.
      Specified by:
      getNullable in interface ResultInterface
      Parameters:
      i - the column number (starting with 0)
      Returns:
      Column.NULLABLE_*
    • setFetchSize

      public void setFetchSize(int fetchSize)
      Description copied from interface: ResultInterface
      Set the fetch size for this result set.
      Specified by:
      setFetchSize in interface ResultInterface
      Parameters:
      fetchSize - the new fetch size
    • getFetchSize

      public int getFetchSize()
      Description copied from interface: ResultInterface
      Get the current fetch size for this result set.
      Specified by:
      getFetchSize in interface ResultInterface
      Returns:
      the fetch size
    • isLazy

      public boolean isLazy()
      Description copied from interface: ResultInterface
      Check if this a lazy execution result.
      Specified by:
      isLazy in interface ResultInterface
      Returns:
      true if it is a lazy result
    • isClosed

      public boolean isClosed()
      Description copied from interface: ResultInterface
      Check if this result set is closed.
      Specified by:
      isClosed in interface ResultInterface
      Returns:
      true if it is
    • createShallowCopy

      public SimpleResult createShallowCopy(Session targetSession)
      Description copied from interface: ResultInterface
      Create a shallow copy of the result set. The data and a temporary table (if there is any) is not copied.
      Specified by:
      createShallowCopy in interface ResultInterface
      Parameters:
      targetSession - the session of the copy
      Returns:
      the copy if possible, or null if copying is not possible
    • limitsWereApplied

      public void limitsWereApplied()
      Description copied from interface: ResultTarget
      A hint that sorting, offset and limit may be ignored by this result because they were applied during the query. This is useful for WITH TIES clause because result may contain tied rows above limit.
      Specified by:
      limitsWereApplied in interface ResultTarget
    • sortRows

      public void sortRows(Comparator<? super Value[]> comparator)
      Sort rows in the list.
      Parameters:
      comparator - the comparator