public class QueryExecutorImpl extends Object implements QueryExecutor
QUERY_BOTH_ROWS_AND_STATUS, QUERY_DESCRIBE_ONLY, QUERY_DISALLOW_BATCHING, QUERY_FORCE_DESCRIBE_PORTAL, QUERY_FORWARD_CURSOR, QUERY_NO_BINARY_TRANSFER, QUERY_NO_METADATA, QUERY_NO_RESULTS, QUERY_ONESHOT, QUERY_SUPPRESS_BEGIN
Constructor and Description |
---|
QueryExecutorImpl(org.postgresql.core.v2.ProtocolConnectionImpl protoConnection,
PGStream pgStream,
Logger logger) |
Modifier and Type | Method and Description |
---|---|
ParameterList |
createFastpathParameters(int count)
Create a new ParameterList implementation suitable for invoking a fastpath function via
QueryExecutor.fastpathCall(int, org.postgresql.core.ParameterList, boolean) . |
Query |
createParameterizedQuery(String sql,
boolean autocommit)
Create a parameterized Query object suitable for execution by this QueryExecutor.
|
Query |
createSimpleQuery(String sql,
boolean autocommit)
Create an unparameterized Query object suitable for execution by this QueryExecutor.
|
void |
execute(Query[] queries,
ParameterList[] parameters,
BatchResultHandler batchHandler,
int maxRows,
int fetchSize,
int flags)
Execute several Query, passing results to a provided ResultHandler.
|
void |
execute(Query query,
ParameterList parameters,
ResultHandler handler,
int maxRows,
int fetchSize,
int flags)
Execute a Query, passing results to a provided ResultHandler.
|
byte[] |
fastpathCall(int fnid,
ParameterList parameters,
boolean suppressBegin)
Invoke a backend function via the fastpath interface.
|
void |
fetch(ResultCursor cursor,
ResultHandler handler,
int rows)
Fetch additional rows from a cursor.
|
void |
processNotifies()
Prior to attempting to retrieve notifications, we need to pull any recently received
notifications off of the network buffers.
|
protected void |
processResults(Query originalQuery,
ResultHandler handler,
int maxRows,
int flags) |
protected void |
sendQuery(org.postgresql.core.v2.V2Query query,
org.postgresql.core.v2.SimpleParameterList params,
String queryPrefix) |
CopyOperation |
startCopy(String sql,
boolean suppressBegin)
Issues a COPY FROM STDIN / COPY TO STDOUT statement and returns handler for associated
operation.
|
public Query createSimpleQuery(String sql, boolean autocommit)
QueryExecutor
Query.createParameterList()
of the returned object will always return an empty
ParameterList.createSimpleQuery
in interface QueryExecutor
sql
- the SQL for the query to createautocommit
- indicating when connection has autocommit enabled.public Query createParameterizedQuery(String sql, boolean autocommit)
QueryExecutor
Query.createParameterList()
of the returned object will create an appropriately-sized
ParameterList.createParameterizedQuery
in interface QueryExecutor
sql
- the SQL for the query to create, with '?' placeholders for parameters.autocommit
- indicating when connection has autocommit enabled.public ParameterList createFastpathParameters(int count)
QueryExecutor
QueryExecutor.fastpathCall(int, org.postgresql.core.ParameterList, boolean)
.createFastpathParameters
in interface QueryExecutor
count
- the number of parameters the fastpath call will takeQueryExecutor.fastpathCall(int, org.postgresql.core.ParameterList, boolean)
.public byte[] fastpathCall(int fnid, ParameterList parameters, boolean suppressBegin) throws SQLException
QueryExecutor
fastpathCall
in interface QueryExecutor
fnid
- the OID of the backend function to invokeparameters
- a ParameterList returned from QueryExecutor.createFastpathParameters(int)
containing the
parameters to pass to the backend functionsuppressBegin
- if begin should be suppressednull
if a void result
was returnedSQLException
- if an error occurs while executing the fastpath callpublic void processNotifies() throws SQLException
QueryExecutor
processNotifies
in interface QueryExecutor
SQLException
- if and error occurs while fetching notificationspublic void execute(Query query, ParameterList parameters, ResultHandler handler, int maxRows, int fetchSize, int flags) throws SQLException
QueryExecutor
execute
in interface QueryExecutor
query
- the query to execute; must be a query returned from calling
QueryExecutor.createSimpleQuery(String, boolean)
or QueryExecutor.createParameterizedQuery(String, boolean)
on this
QueryExecutor object.parameters
- the parameters for the query. Must be non-null
if the query
takes parameters. Must be a parameter object returned by
Query.createParameterList()
.handler
- a ResultHandler responsible for handling results generated by this querymaxRows
- the maximum number of rows to retrievefetchSize
- if QUERY_FORWARD_CURSOR is set, the preferred number of rows to retrieve
before suspendingflags
- a combination of QUERY_* flags indicating how to handle the query.SQLException
- if query execution failspublic void execute(Query[] queries, ParameterList[] parameters, BatchResultHandler batchHandler, int maxRows, int fetchSize, int flags) throws SQLException
QueryExecutor
execute
in interface QueryExecutor
queries
- the queries to execute; each must be a query returned from calling
QueryExecutor.createSimpleQuery(String, boolean)
or QueryExecutor.createParameterizedQuery(String, boolean)
on this QueryExecutor object.parameters
- the parameter lists for the queries. The parameter lists correspond 1:1
to the queries passed in the queries
array. Each must be non-
null
if the corresponding query takes parameters, and must be a parameter
object returned by Query.createParameterList()
created by
the corresponding query.batchHandler
- a ResultHandler responsible for handling results generated by this querymaxRows
- the maximum number of rows to retrievefetchSize
- if QUERY_FORWARD_CURSOR is set, the preferred number of rows to retrieve
before suspendingflags
- a combination of QUERY_* flags indicating how to handle the query.SQLException
- if query execution failspublic void fetch(ResultCursor cursor, ResultHandler handler, int rows) throws SQLException
QueryExecutor
fetch
in interface QueryExecutor
cursor
- the cursor to fetch fromhandler
- the handler to feed results torows
- the preferred number of rows to retrieve before suspendingSQLException
- if query execution failsprotected void sendQuery(org.postgresql.core.v2.V2Query query, org.postgresql.core.v2.SimpleParameterList params, String queryPrefix) throws IOException
IOException
protected void processResults(Query originalQuery, ResultHandler handler, int maxRows, int flags) throws IOException
IOException
public CopyOperation startCopy(String sql, boolean suppressBegin) throws SQLException
QueryExecutor
startCopy
in interface QueryExecutor
sql
- input sqlsuppressBegin
- if begin should be suppressedSQLException
- when initializing the given query failsCopyright © 2016 PostgreSQL Global Development Group. All rights reserved.