Class BatchedQuery

  • All Implemented Interfaces:
    Query

    public class BatchedQuery
    extends java.lang.Object
    Purpose of this object is to support batched query re write behaviour. Responsibility for tracking the batch size and implement the clean up of the query fragments after the batch execute is complete. Intended to be used to wrap a Query that is present in the batchStatements collection.
    Author:
    Jeremy Whiting jwhiting@redhat.com, Christopher Deckers (chrriis@gmail.com)
    • Constructor Detail

      • BatchedQuery

        public BatchedQuery​(NativeQuery query,
                            TypeTransferModeRegistry transferModeRegistry,
                            int valuesBraceOpenPosition,
                            int valuesBraceClosePosition,
                            boolean sanitiserDisabled)
    • Method Detail

      • deriveForMultiBatch

        public BatchedQuery deriveForMultiBatch​(int valueBlock)
      • getBatchSize

        public int getBatchSize()
        Description copied from interface: Query
        Get the number of times this Query has been batched.
        Specified by:
        getBatchSize in interface Query
        Returns:
        number of times addBatch() has been called.
      • getNativeSql

        public java.lang.String getNativeSql()
        Method to return the sql based on number of batches. Skipping the initial batch.
        Specified by:
        getNativeSql in interface Query
        Returns:
        SQL in native for database format
      • toString

        public java.lang.String toString​(ParameterList params)
        Description copied from interface: Query
        Stringize this query to a human-readable form, substituting particular parameter values for parameter placeholders.
        Specified by:
        toString in interface Query
        Parameters:
        params - a ParameterList returned by this Query's Query.createParameterList() method, or null to leave the parameter placeholders unsubstituted.
        Returns:
        a human-readable representation of this query
      • createParameterList

        public ParameterList createParameterList()
        Description copied from interface: Query

        Create a ParameterList suitable for storing parameters associated with this Query.

        If this query has no parameters, a ParameterList will be returned, but it may be a shared immutable object. If this query does have parameters, the returned ParameterList is a new list, unshared by other callers.

        Specified by:
        createParameterList in interface Query
        Returns:
        a suitable ParameterList instance for this query
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • close

        public void close()
        Description copied from interface: Query

        Close this query and free any server-side resources associated with it. The resources may not be immediately deallocated, but closing a Query may make the deallocation more prompt.

        A closed Query should not be executed.

        Specified by:
        close in interface Query
      • getSubqueries

        public org.postgresql.core.v3.SimpleQuery[] getSubqueries()
        Description copied from interface: Query
        Return a list of the Query objects that make up this query. If this object is already a SimpleQuery, returns null (avoids an extra array construction in the common case).
        Specified by:
        getSubqueries in interface Query
        Returns:
        an array of single-statement queries, or null if this object is already a single-statement query.
      • getMaxResultRowSize

        public int getMaxResultRowSize()

        Return maximum size in bytes that each result row from this query may return. Mainly used for batches that return results.

        Results are cached until/unless the query is re-described.

        Returns:
        Max size of result data in bytes according to returned fields, 0 if no results, -1 if result is unbounded.
        Throws:
        java.lang.IllegalStateException - if the query is not described
      • resetNeedUpdateFieldFormats

        public void resetNeedUpdateFieldFormats()
      • hasBinaryFields

        public boolean hasBinaryFields()
      • setHasBinaryFields

        public void setHasBinaryFields​(boolean hasBinaryFields)
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface Query
      • getBindCount

        public final int getBindCount()
      • getResultSetColumnNameIndexMap

        public java.util.Map<java.lang.String,​java.lang.Integer> getResultSetColumnNameIndexMap()
        Description copied from interface: Query
        Get a map that a result set can use to find the index associated to a name.
        Specified by:
        getResultSetColumnNameIndexMap in interface Query
        Returns:
        null if the query implementation does not support this method.
      • getSqlCommand

        public SqlCommand getSqlCommand()
        Description copied from interface: Query
        Returns properties of the query (sql keyword, and some other parsing info).
        Specified by:
        getSqlCommand in interface Query
        Returns:
        returns properties of the query (sql keyword, and some other parsing info) or null if not applicable