Module org.firebirdsql.jaybird
Package org.firebirdsql.gds.ng

# Interface FbBatchConfig

All Known Implementing Classes:
  `FbBatchConfig.Immutable`

public interface FbBatchConfig
Configuration for a Firebird 4+ batch.

Since:
  5
Author:
  Mark Rotteveel

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static final class`
  `FbBatchConfig.Immutable`
  Class to provide an immutable copy of a batch config.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final boolean`
  `CONTINUE_ON_ERROR`
  `multiError()` value to signal to continue execution on errors.
  `static final boolean`
  `HALT_AT_FIRST_ERROR`
  `multiError()` value to signal to halt execution at first error.
  `static final boolean`
  `NO_UPDATE_COUNTS`
  `updateCounts()` value to signal to no supply update counts.
  `static final int`
  `SERVER_DEFAULT_BUFFER_SIZE`
  `batchBufferSize()` value to signal to use server default batch buffer size.
  `static final int`
  `SERVER_DEFAULT_DETAILED_ERRORS`
  `detailedErrors()` value to signal to use server default detailed errors.
  `static final int`
  `SERVER_MAXIMUM_BUFFER_SIZE`
  `batchBufferSize()` value to signal to use server maximum batch buffer size.
  `static final boolean`
  `UPDATE_COUNTS`
  `updateCounts()` value to signal to supply update counts.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `batchBufferSize()`
  Server-side batch buffer size in bytes.
  `int`
  `detailedErrors()`
  Number of detailed errors to return.
  `default FbBatchConfig`
  `immutable()`
  `boolean`
  `multiError()`
  Multi-error behaviour.
  `static FbBatchConfig`
  `of(boolean multiError, boolean updateCounts, int detailedErrors, int batchBufferSize)`
  Creates an immutable batch config.
  `default void`
  `populateBatchParameterBuffer(BatchParameterBuffer batchPb)`
  Populates the provided batch parameter buffer with the configuration.
  `boolean`
  `updateCounts()`
  Report update counts per element (called "record counts" in Firebird).

- ## Field Details

  - ### CONTINUE_ON_ERROR

    static final boolean CONTINUE_ON_ERROR
    `multiError()` value to signal to continue execution on errors.
    See Also:
      - Constant Field Values

  - ### HALT_AT_FIRST_ERROR

    static final boolean HALT_AT_FIRST_ERROR
    `multiError()` value to signal to halt execution at first error.
    See Also:
      - Constant Field Values

  - ### UPDATE_COUNTS

    static final boolean UPDATE_COUNTS
    `updateCounts()` value to signal to supply update counts.
    See Also:
      - Constant Field Values

  - ### NO_UPDATE_COUNTS

    static final boolean NO_UPDATE_COUNTS
    `updateCounts()` value to signal to no supply update counts.
    See Also:
      - Constant Field Values

  - ### SERVER_DEFAULT_DETAILED_ERRORS

    static final int SERVER_DEFAULT_DETAILED_ERRORS
    `detailedErrors()` value to signal to use server default detailed errors.

    NOTE: all negative values signal this. If you want to use this to check against a value, use `<= SERVER_DEFAULT_DETAILED_ERRORS`.

    See Also:
      - Constant Field Values

  - ### SERVER_MAXIMUM_BUFFER_SIZE

    static final int SERVER_MAXIMUM_BUFFER_SIZE
    `batchBufferSize()` value to signal to use server maximum batch buffer size.
    See Also:
      - Constant Field Values

  - ### SERVER_DEFAULT_BUFFER_SIZE

    static final int SERVER_DEFAULT_BUFFER_SIZE
    `batchBufferSize()` value to signal to use server default batch buffer size.

    NOTE: all negative values signal this. If you want to use this constant to check against a value, use `<= SERVER_DEFAULT_BUFFER_SIZE`.

    See Also:
      - Constant Field Values

- ## Method Details

  - ### multiError

    boolean multiError()
    Multi-error behaviour.
    Returns:
      `true` request multi-error (continue on failure), or `false` to halt execution on first error

  - ### updateCounts

    boolean updateCounts()
    Report update counts per element (called "record counts" in Firebird).
    Returns:
      `true` report update counts, `false` do not report update counts

  - ### detailedErrors

    int detailedErrors()
    Number of detailed errors to return.

    A value of `0` disables detailed errors. When a value `< 0` is returned, the server-side default is used (`64 as of Firebird 4`). Requesting detailed errors exceeding the maximum (256 as of Firebird 4) will be silently set to the server maximum.

    Returns:
      number of detailed errors, `0` to disable detailed errors, `< 0` for server default

  - ### batchBufferSize

    int batchBufferSize()
    Server-side batch buffer size in bytes.

    When a value `< 0` is returned, the server-side default (16MB as of Firebird 4) will be used. When a value of `0` is returned , the server-side maximum will be used. Requesting buffer sizes exceeding the maximum (256MB as of Firebird 4) will be silently set to the server maximum.

    Returns:
      maximum batch buffer size, return `< 0` to use server-side default (16MB as of Firebird 4), `0` for the server-side maximum (256MB as of Firebird 4)

  - ### immutable

    default FbBatchConfig immutable()
    Returns:
      immutable, frozen copy of this batch config

  - ### of

    static FbBatchConfig of(boolean multiError, boolean updateCounts, int detailedErrors, int batchBufferSize)
    Creates an immutable batch config.
    Returns:
      an immutable batch config with the specified configuration

  - ### populateBatchParameterBuffer

    default void populateBatchParameterBuffer(BatchParameterBuffer batchPb)
    Populates the provided batch parameter buffer with the configuration.

    This method will remove previously set items which are managed by this method. Items not managed by this method are untouched. At minimum this method manages items `TAG_MULTIERROR`, `TAG_RECORD_COUNTS`, `TAG_DETAILED_ERRORS`, and `TAG_BUFFER_BYTES_SIZE`.

    Parameters:
      `batchPb` - batch parameter buffer to populate.