Class BatchedQuery

java.lang.Object
org.postgresql.core.v3.BatchedQuery
All Implemented Interfaces:
Query

public class BatchedQuery extends 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.
  • Constructor Details

    • BatchedQuery

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

    • 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 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 String toString(@Nullable 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 String toString()
      Overrides:
      toString in class 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 @Nullable [] 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:
      IllegalStateException - if the query is not described
    • resetNeedUpdateFieldFormats

      public void resetNeedUpdateFieldFormats()
    • hasBinaryFields

      public boolean hasBinaryFields()
    • setHasBinaryFields

      public void setHasBinaryFields(boolean hasBinaryFields)
    • isStatementDescribed

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

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

      public final int getBindCount()
    • getResultSetColumnNameIndexMap

      public @Nullable Map<String,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