Package org.postgresql.core.v3

# 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 Summary

  Constructors
  Constructor
  Description
  `BatchedQuery(NativeQuery query, TypeTransferModeRegistry transferModeRegistry, int valuesBraceOpenPosition, int valuesBraceClosePosition, boolean sanitiserDisabled)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Close this query and free any server-side resources associated with it.
  `ParameterList`
  `createParameterList()`
  Create a ParameterList suitable for storing parameters associated with this Query.
  `BatchedQuery`
  `deriveForMultiBatch(int valueBlock)`
  `int`
  `getBatchSize()`
  Get the number of times this Query has been batched.
  `final int`
  `getBindCount()`
  `int`
  `getMaxResultRowSize()`
  Return maximum size in bytes that each result row from this query may return.
  `String`
  `getNativeSql()`
  Method to return the sql based on number of batches.
  `@Nullable Map<String,Integer>`
  `getResultSetColumnNameIndexMap()`
  Get a map that a result set can use to find the index associated to a name.
  `SqlCommand`
  `getSqlCommand()`
  Returns properties of the query (sql keyword, and some other parsing info).
  `org.postgresql.core.v3.SimpleQuery @Nullable []`
  `getSubqueries()`
  Return a list of the Query objects that make up this query.
  `boolean`
  `hasBinaryFields()`
  `boolean`
  `isEmpty()`
  `boolean`
  `isStatementDescribed()`
  `void`
  `resetNeedUpdateFieldFormats()`
  `void`
  `setHasBinaryFields(boolean hasBinaryFields)`
  `String`
  `toString()`
  `String`
  `toString(@Nullable ParameterList parameters)`
  Returns string representation of the query, substituting particular parameter values for parameter placeholders.
  `String`
  `toString(@Nullable ParameterList params, SqlSerializationContext context)`
  Returns string representation of the query, substituting particular parameter values for parameter placeholders.

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

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

- ## 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, SqlSerializationContext context)
    Description copied from interface: `Query`
    Returns string representation of the query, 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.
      `context` - specifies configuration for converting the parameters to string
    Returns:
      string 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(@Nullable ParameterList parameters)
    Description copied from interface: `Query`
    Returns string representation of the query, substituting particular parameter values for parameter placeholders.

    Note: the method replaces the values on a best-effort basis as it might omit the replacements for parameters that can't be processed several times. For instance, `InputStream` can be processed only once.

    Specified by:
      `toString` in interface `Query`
    Parameters:
      `parameters` - a ParameterList returned by this Query's `Query.createParameterList()` method, or `null` to leave the parameter placeholders unsubstituted.
    Returns:
      string representation of 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