Skip to main content

DeltaScanExecutionOptions

Struct DeltaScanExecutionOptions 

Source
pub struct DeltaScanExecutionOptions { /* private fields */ }
Expand description

Bounded execution settings for one Delta scan.

Implementations§

Source§

impl DeltaScanExecutionOptions

Source

pub const fn new() -> Self

Returns the baseline execution settings.

Source

pub const fn parquet_backend(&self) -> ParquetReaderBackend

Returns the selected Parquet reader backend.

Source

pub const fn max_concurrent_file_reads_per_scan(&self) -> Option<usize>

Returns the optional scan-wide file-read limit.

Source

pub const fn max_concurrent_file_reads_per_partition(&self) -> usize

Returns the per-partition file-read limit.

Source

pub const fn output_buffer_batches_per_partition(&self) -> usize

Returns the number of output batches buffered per partition.

Source

pub const fn prefetch_files_per_partition(&self) -> usize

Returns the number of future direct Parquet files prepared per partition.

Source

pub const fn parquet_metadata_size_hint_bytes(&self) -> Option<usize>

Returns the direct Parquet reader’s metadata size hint in bytes.

Source

pub const fn parquet_full_file_read_threshold_bytes(&self) -> Option<usize>

Returns the direct Parquet reader’s full-file read threshold in bytes.

Source

pub const fn experimental_intra_page_reads(&self) -> bool

Whether experimental partial-page reads are enabled for the direct backend.

Source

pub const fn with_experimental_intra_page_reads(self, enabled: bool) -> Self

Enables experimental partial reads of supported flat Parquet pages.

Enabled by default. The direct reader uses predicate-derived row numbers to read selected values from PLAIN numeric pages that are uncompressed or held in Zstd raw blocks without checksums. Supports nullable and required INT32, INT64, FLOAT, DOUBLE and FIXED_LEN_BYTE_ARRAY physical columns, including existing decimal conversions. Fixed-length widths come from the Parquet schema. This adds no new Delta type mappings, such as fixed-size binary to Delta binary. UTF-8 and binary columns also support uncompressed DELTA_LENGTH_BYTE_ARRAY pages. All supported pages require V1 layout, offset indexes and no page checksum. Variable-length discovery must fit a modeled fallback budget and shared memory limits; fallback reuses downloaded prefixes. Unsupported layouts and bounded-work limits use ordinary reads. Explicit range-read policies other than Automatic disable this optimization. The Delta Kernel backend ignores this direct-reader option.

Recent query traffic supplies latency and throughput estimates. Partial reads must beat the ordinary plan by more than ten percent, including probes and dependent request rounds. Missing evidence, dense selections, an unmeasured small-request cost, or insufficient shared request capacity retain ordinary reads. Automatic table warmup supplies the full profile for supported S3 stores. If that warmup did not finish, an eligible filtered scan retries it once while building its plan. Passing false restores ordinary reads and skips automatic table warmup when supplied to the table builder. It also skips pending recovery for this scan. Explicit warmup settings remain in effect during table loading.

Source

pub const fn with_parquet_backend( self, parquet_backend: ParquetReaderBackend, ) -> Self

Selects a Parquet reader backend.

Source

pub fn with_max_concurrent_file_reads_per_scan( self, max_concurrent_file_reads: Option<usize>, ) -> Result<Self, DeltaReaderError>

Sets or clears the scan-wide file-read limit.

Explicit limits must be in 1..=tokio::sync::Semaphore::MAX_PERMITS. None derives the limit from the partition target and per-partition limit, capped at Tokio’s maximum.

Source

pub fn with_max_concurrent_file_reads_per_partition( self, max_concurrent_file_reads: usize, ) -> Result<Self, DeltaReaderError>

Sets the per-partition file-read limit.

The limit must be in 1..=tokio::sync::Semaphore::MAX_PERMITS.

Source

pub fn with_output_buffer_batches_per_partition( self, output_buffer_batches: usize, ) -> Result<Self, DeltaReaderError>

Sets the number of output batches buffered per partition.

The capacity must be in 1..=tokio::sync::Semaphore::MAX_PERMITS.

Source

pub const fn with_prefetch_files_per_partition( self, prefetch_files: usize, ) -> Self

Sets the number of future direct Parquet files prepared per partition.

Source

pub fn with_parquet_metadata_size_hint_bytes( self, metadata_size_hint_bytes: Option<usize>, ) -> Result<Self, DeltaReaderError>

Sets or clears the direct Parquet reader’s metadata size hint in bytes.

Source

pub fn with_parquet_full_file_read_threshold_bytes( self, full_file_read_threshold_bytes: Option<usize>, ) -> Result<Self, DeltaReaderError>

Sets or clears the direct Parquet reader’s full-file read threshold in bytes.

Trait Implementations§

Source§

impl Clone for DeltaScanExecutionOptions

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for DeltaScanExecutionOptions

Source§

impl Debug for DeltaScanExecutionOptions

Source§

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

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

impl Default for DeltaScanExecutionOptions

Source§

fn default() -> Self

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

impl Eq for DeltaScanExecutionOptions

Source§

impl PartialEq for DeltaScanExecutionOptions

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DeltaScanExecutionOptions

Auto Trait Implementations§

Blanket Implementations§

Source§

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

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> AsAny for T
where T: Any + Send + Sync,

Source§

fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)

Obtains a dyn Any reference to the object: Read more
Source§

fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ

Obtains an Arc<dyn Any> reference to the object: Read more
Source§

fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts the object to Box<dyn Any>: Read more
Source§

fn type_name(&self) -> &'static str

Convenient wrapper for std::any::type_name, since Any does not provide it and Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DynEq for T
where T: Eq + Any,

Source§

fn dyn_eq(&self, other: &(dyn Any + 'static)) -> bool

Source§

impl<T> DynPartialEq for T
where T: PartialEq + AsAny,

Source§

fn dyn_eq(&self, other: &(dyn Any + 'static)) -> bool

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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 = !

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

fn try_from(value: U) -> Result<T, !>

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<KernelType, ArrowType> TryIntoArrow<ArrowType> for KernelType
where ArrowType: TryFromKernel<KernelType>,

Source§

fn try_into_arrow(self) -> Result<ArrowType, ArrowError>

Source§

impl<KernelType, ArrowType> TryIntoKernel<KernelType> for ArrowType
where KernelType: TryFromArrow<ArrowType>,

Source§

fn try_into_kernel(self) -> Result<KernelType, ArrowError>

Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more