Skip to main content

BatchConfig

Struct BatchConfig 

Source
pub struct BatchConfig {
    pub batch_size: NonZeroUsize,
    pub string_capacity: usize,
    pub binary_capacity: usize,
    pub coerce_types: bool,
    pub max_lob_bytes: Option<usize>,
}
Expand description

Configuration for batch processing.

Controls memory allocation and processing behavior for batch conversion.

Fields§

§batch_size: NonZeroUsize

Maximum number of rows per batch.

Uses NonZeroUsize to prevent division-by-zero and infinite loops. Default: 65536 (64K rows).

§string_capacity: usize

Initial capacity for string builders (bytes).

Pre-allocating string capacity reduces reallocations. Default: 1MB.

§binary_capacity: usize

Initial capacity for binary builders (bytes).

Pre-allocating binary capacity reduces reallocations. Default: 1MB.

§coerce_types: bool

Whether to coerce types when possible.

When true, numeric types may be widened (e.g., INT to BIGINT) to avoid precision loss. Default: false.

§max_lob_bytes: Option<usize>

Maximum LOB size in bytes before rejecting.

When set, LOB values exceeding this size will trigger an error instead of being materialized. This prevents OOM conditions when processing result sets with large LOB values.

Default: None (no limit).

Implementations§

Source§

impl BatchConfig

Source

pub fn with_batch_size(batch_size: usize) -> Self

Create a new configuration with the specified batch size.

§Panics

Panics if batch_size is zero. Use try_with_batch_size for fallible construction.

Source

pub fn try_with_batch_size(batch_size: usize) -> Option<Self>

Create a new configuration with the specified batch size.

Returns None if batch_size is zero.

Source

pub const fn batch_size_usize(&self) -> usize

Get batch size as usize for iteration.

Source

pub const fn string_capacity(self, capacity: usize) -> Self

Set the string builder capacity.

Source

pub const fn binary_capacity(self, capacity: usize) -> Self

Set the binary builder capacity.

Source

pub const fn coerce_types(self, coerce: bool) -> Self

Enable or disable type coercion.

Source

pub const fn max_lob_bytes(self, max: Option<usize>) -> Self

Set the maximum LOB size in bytes.

LOB values exceeding this size will cause an error during conversion. Set to None to disable the limit (default).

Source

pub const fn small() -> Self

Create a configuration optimized for small result sets.

Uses smaller batch size and buffer capacities.

§Panics

Never panics - the batch size is a compile-time constant.

Source

pub const fn large() -> Self

Create a configuration optimized for large result sets.

Uses larger batch size and buffer capacities.

§Panics

Never panics - the batch size is a compile-time constant.

Trait Implementations§

Source§

impl Clone for BatchConfig

Source§

fn clone(&self) -> BatchConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BatchConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for BatchConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,