Package org.postgresql.core

# Class ResultHandlerBase

java.lang.Object
org.postgresql.core.ResultHandlerBase

All Implemented Interfaces:
  `ResultHandler`

Direct Known Subclasses:
  `BatchResultHandler`, `PgResultSet.CursorResultHandler`, `PgStatement.StatementResultHandler`

public class ResultHandlerBase extends Object implements ResultHandler
Empty implementation of `ResultHandler` interface. `SQLException.setNextException(SQLException)` has `O(N)` complexity, so this class tracks the last exception object to speedup `setNextException`.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ResultHandlerBase()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `@Nullable SQLException`
  `getException()`
  Returns the first encountered exception.
  `@Nullable SQLWarning`
  `getWarning()`
  Returns the first encountered warning.
  `void`
  `handleCommandStatus(String status, long updateCount, long insertOID)`
  Called when a query that did not return a resultset completes.
  `void`
  `handleCompletion()`
  Called before a QueryExecutor method returns.
  `void`
  `handleError(SQLException error)`
  Called when an error occurs.
  `void`
  `handleResultRows(Query fromQuery, Field[] fields, List<Tuple> tuples, @Nullable ResultCursor cursor)`
  Called when result rows are received from a query.
  `void`
  `handleWarning(SQLWarning warning)`
  Called when a warning is emitted.
  `void`
  `secureProgress()`
  Callback for batch statements.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ResultHandlerBase

    public ResultHandlerBase()

- ## Method Details

  - ### handleResultRows

    public void handleResultRows(Query fromQuery, Field[] fields, List<Tuple> tuples, @Nullable ResultCursor cursor)
    Description copied from interface: `ResultHandler`
    Called when result rows are received from a query.
    Specified by:
      `handleResultRows` in interface `ResultHandler`
    Parameters:
      `fromQuery` - the underlying query that generated these results; this may not be very specific (e.g. it may be a query that includes multiple statements).
      `fields` - column metadata for the resultset; might be `null` if Query.QUERY_NO_METADATA was specified.
      `tuples` - the actual data
      `cursor` - a cursor to use to fetch additional data; `null` if no further results are present.

  - ### handleCommandStatus

    public void handleCommandStatus(String status, long updateCount, long insertOID)
    Description copied from interface: `ResultHandler`
    Called when a query that did not return a resultset completes.
    Specified by:
      `handleCommandStatus` in interface `ResultHandler`
    Parameters:
      `status` - the command status string (e.g. "SELECT") returned by the backend
      `updateCount` - the number of rows affected by an INSERT, UPDATE, DELETE, FETCH, or MOVE command; -1 if not available.
      `insertOID` - for a single-row INSERT query, the OID of the newly inserted row; 0 if not available.

  - ### secureProgress

    public void secureProgress()
    Description copied from interface: `ResultHandler`
    Callback for batch statements. In case batch statement is executed in autocommit==true mode, the executor might commit "as it this it is best", so the result handler should track which statements are executed successfully and which are not.
    Specified by:
      `secureProgress` in interface `ResultHandler`

  - ### handleWarning

    public void handleWarning(SQLWarning warning)
    Description copied from interface: `ResultHandler`
    Called when a warning is emitted.
    Specified by:
      `handleWarning` in interface `ResultHandler`
    Parameters:
      `warning` - the warning that occurred.

  - ### handleError

    public void handleError(SQLException error)
    Description copied from interface: `ResultHandler`
    Called when an error occurs. Subsequent queries are abandoned; in general the only calls between a handleError call and a subsequent handleCompletion call are handleError or handleWarning.
    Specified by:
      `handleError` in interface `ResultHandler`
    Parameters:
      `error` - the error that occurred

  - ### handleCompletion

    public void handleCompletion() throws SQLException
    Description copied from interface: `ResultHandler`
    Called before a QueryExecutor method returns. This method may throw a SQLException if desired; if it does, the QueryExecutor method will propagate that exception to the original caller.
    Specified by:
      `handleCompletion` in interface `ResultHandler`
    Throws:
      `SQLException` - if the handler wishes the original method to throw an exception.

  - ### getException

    public @Nullable SQLException getException()
    Description copied from interface: `ResultHandler`
    Returns the first encountered exception. The rest are chained via `SQLException.setNextException(SQLException)`
    Specified by:
      `getException` in interface `ResultHandler`
    Returns:
      the first encountered exception

  - ### getWarning

    public @Nullable SQLWarning getWarning()
    Description copied from interface: `ResultHandler`
    Returns the first encountered warning. The rest are chained via `SQLException.setNextException(SQLException)`
    Specified by:
      `getWarning` in interface `ResultHandler`
    Returns:
      the first encountered warning