Package org.postgresql.jdbc
Class BatchResultHandler
- java.lang.Object
-
- org.postgresql.core.ResultHandlerBase
-
- org.postgresql.jdbc.BatchResultHandler
-
- All Implemented Interfaces:
ResultHandler
- Direct Known Subclasses:
CallableBatchResultHandler
public class BatchResultHandler extends ResultHandlerBase
Internal class, it is not a part of public API.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.util.List<Tuple>>
allGeneratedRows
private int
committedRows
private boolean
expectGeneratedKeys
private PgResultSet
generatedKeys
private PgResultSet
latestGeneratedKeysRs
private java.util.List<Tuple>
latestGeneratedRows
private long[]
longUpdateCounts
private ParameterList[]
parameterLists
private PgStatement
pgStatement
private Query[]
queries
private int
resultIndex
-
Constructor Summary
Constructors Constructor Description BatchResultHandler(PgStatement pgStatement, Query[] queries, ParameterList[] parameterLists, boolean expectGeneratedKeys)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.sql.ResultSet
getGeneratedKeys()
long[]
getLargeUpdateCount()
int[]
getUpdateCount()
void
handleCommandStatus(java.lang.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(java.sql.SQLException newError)
Called when an error occurs.void
handleResultRows(Query fromQuery, Field[] fields, java.util.List<Tuple> tuples, ResultCursor cursor)
Called when result rows are received from a query.void
handleWarning(java.sql.SQLWarning warning)
Called when a warning is emitted.private boolean
isAutoCommit()
void
secureProgress()
Callback for batch statements.private long[]
uncompressLongUpdateCount()
private int[]
uncompressUpdateCount()
private void
updateGeneratedKeys()
-
Methods inherited from class org.postgresql.core.ResultHandlerBase
getException, getWarning
-
-
-
-
Field Detail
-
pgStatement
private final PgStatement pgStatement
-
resultIndex
private int resultIndex
-
queries
private final Query[] queries
-
longUpdateCounts
private final long[] longUpdateCounts
-
parameterLists
private final ParameterList[] parameterLists
-
expectGeneratedKeys
private final boolean expectGeneratedKeys
-
generatedKeys
private PgResultSet generatedKeys
-
committedRows
private int committedRows
-
allGeneratedRows
private final java.util.List<java.util.List<Tuple>> allGeneratedRows
-
latestGeneratedRows
private java.util.List<Tuple> latestGeneratedRows
-
latestGeneratedKeysRs
private PgResultSet latestGeneratedKeysRs
-
-
Constructor Detail
-
BatchResultHandler
BatchResultHandler(PgStatement pgStatement, Query[] queries, ParameterList[] parameterLists, boolean expectGeneratedKeys)
-
-
Method Detail
-
handleResultRows
public void handleResultRows(Query fromQuery, Field[] fields, java.util.List<Tuple> tuples, ResultCursor cursor)
Description copied from interface:ResultHandler
Called when result rows are received from a query.- Specified by:
handleResultRows
in interfaceResultHandler
- Overrides:
handleResultRows
in classResultHandlerBase
- 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 benull
if Query.QUERY_NO_METADATA was specified.tuples
- the actual datacursor
- a cursor to use to fetch additional data;null
if no further results are present.
-
handleCommandStatus
public void handleCommandStatus(java.lang.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 interfaceResultHandler
- Overrides:
handleCommandStatus
in classResultHandlerBase
- Parameters:
status
- the command status string (e.g. "SELECT") returned by the backendupdateCount
- 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.
-
isAutoCommit
private boolean isAutoCommit()
-
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 interfaceResultHandler
- Overrides:
secureProgress
in classResultHandlerBase
-
updateGeneratedKeys
private void updateGeneratedKeys()
-
handleWarning
public void handleWarning(java.sql.SQLWarning warning)
Description copied from interface:ResultHandler
Called when a warning is emitted.- Specified by:
handleWarning
in interfaceResultHandler
- Overrides:
handleWarning
in classResultHandlerBase
- Parameters:
warning
- the warning that occurred.
-
handleError
public void handleError(java.sql.SQLException newError)
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 interfaceResultHandler
- Overrides:
handleError
in classResultHandlerBase
- Parameters:
newError
- the error that occurred
-
handleCompletion
public void handleCompletion() throws java.sql.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 interfaceResultHandler
- Overrides:
handleCompletion
in classResultHandlerBase
- Throws:
java.sql.SQLException
- if the handler wishes the original method to throw an exception.
-
getGeneratedKeys
public java.sql.ResultSet getGeneratedKeys()
-
uncompressUpdateCount
private int[] uncompressUpdateCount()
-
getUpdateCount
public int[] getUpdateCount()
-
uncompressLongUpdateCount
private long[] uncompressLongUpdateCount()
-
getLargeUpdateCount
public long[] getLargeUpdateCount()
-
-