Class CurrentOfResultSet

All Implemented Interfaces:
CursorResultSet, NoPutResultSet, ResultSet, RowLocationRetRowSource, RowSource

class CurrentOfResultSet extends NoPutResultSetImpl implements CursorResultSet
Takes a cursor name and returns the current row of the cursor; for use in generating the source row and row location for positioned update/delete operations.

This result set returns only one row.

  • Field Details

  • Constructor Details

    • CurrentOfResultSet

      CurrentOfResultSet(String cursorName, Activation activation, int resultSetNumber)
  • Method Details

    • openCore

      public void openCore() throws StandardException
      open a scan on the table. scan parameters are evaluated at each open, so there is probably some way of altering their values...
      Specified by:
      openCore in interface NoPutResultSet
      Throws:
      StandardException - thrown on failure to open
    • getNextRowCore

      public ExecRow getNextRowCore() throws StandardException
      If open and not returned yet, returns the row.
      Specified by:
      getNextRowCore in interface NoPutResultSet
      Specified by:
      getNextRowCore in class BasicNoPutResultSetImpl
      Returns:
      the next row in the result
      Throws:
      StandardException - thrown on failure.
      See Also:
    • getSparseRow

      private ExecRow getSparseRow(ExecRow row, int[] indexCols) throws StandardException
      Return a sparse heap row, based on a compact index row.
      Parameters:
      row - compact referenced index row
      indexCols - base column positions of index keys, signed with asc/desc info
      Returns:
      a sparse heap row with referenced columns
      Throws:
      StandardException
    • close

      public void close() throws StandardException
      If the result set has been opened, close the open scan.
      Specified by:
      close in interface ResultSet
      Overrides:
      close in class NoPutResultSetImpl
      Throws:
      StandardException - thrown on error
    • finish

      public void finish() throws StandardException
      Description copied from interface: ResultSet
      Tells the system that there will be no more access to any database information via this result set; in particular, no more calls to open(). Will close the result set if it is not already closed.
      Specified by:
      finish in interface ResultSet
      Overrides:
      finish in class BasicNoPutResultSetImpl
      Throws:
      StandardException - on error
    • getTimeSpent

      public long getTimeSpent(int type)
      Return the total amount of time spent in this ResultSet
      Specified by:
      getTimeSpent in interface ResultSet
      Parameters:
      type - CURRENT_RESULTSET_ONLY - time spent only in this ResultSet ENTIRE_RESULTSET_TREE - time spent in this ResultSet and below.
      Returns:
      long The total amount of time spent (in milliseconds).
    • getRowLocation

      public RowLocation getRowLocation()
      This result set has its row location from the last fetch done. If it is closed, a null is returned.
      Specified by:
      getRowLocation in interface CursorResultSet
      Returns:
      the row location of the current row.
      Throws:
      StandardException - thrown on failure to get row location
      See Also:
    • getCurrentRow

      public ExecRow getCurrentRow()
      Description copied from interface: CursorResultSet
      Returns the current row of the result set. REMIND: eventually, this will only return the current row for result sets that need to return it; either some field in the activation or a parameter in the constructor will be used to signal that this needs to function. This will let us limit the number of live objects we are holding on to.

      Specified by:
      getCurrentRow in interface CursorResultSet
      Returns:
      the last row returned by getNextRow.
      See Also:
    • getCursor

      private void getCursor() throws StandardException
      Because the positioned operation only gets one location per execution, and the cursor could be completely different for each execution (closed and reopened, perhaps), we determine where caching the cursor could be applied.

      When cached, we check if the cursor was closed'd, and if so, throw it out and see if there's one in the cache with our name.

      Throws:
      StandardException
    • updateRow

      public void updateRow(ExecRow row, RowChanger rowChanger) throws StandardException
      Description copied from interface: NoPutResultSet
      Updates the resultSet's current row with it's new values after an update has been issued either using positioned update or JDBC's udpateRow method.
      Specified by:
      updateRow in interface NoPutResultSet
      Overrides:
      updateRow in class NoPutResultSetImpl
      Parameters:
      row - new values for the currentRow
      rowChanger - holds information about row: what columns of it is to be used for updating, and what underlying base table column each such column corresponds to.
      Throws:
      StandardException - thrown on failure.
      See Also:
    • markRowAsDeleted

      public void markRowAsDeleted() throws StandardException
      Description copied from interface: NoPutResultSet
      Marks the resultSet's currentRow as deleted after a delete has been issued by either by using positioned delete or JDBC's deleteRow method.
      Specified by:
      markRowAsDeleted in interface NoPutResultSet
      Overrides:
      markRowAsDeleted in class NoPutResultSetImpl
      Throws:
      StandardException - thrown on failure.
      See Also: