pub struct DeltaScanExecutionOptions { /* private fields */ }Expand description
Bounded execution settings for one Delta scan.
Implementations§
Source§impl DeltaScanExecutionOptions
impl DeltaScanExecutionOptions
Sourcepub const fn parquet_backend(&self) -> ParquetReaderBackend
pub const fn parquet_backend(&self) -> ParquetReaderBackend
Returns the selected Parquet reader backend.
Sourcepub const fn max_concurrent_file_reads_per_scan(&self) -> Option<usize>
pub const fn max_concurrent_file_reads_per_scan(&self) -> Option<usize>
Returns the optional scan-wide file-read limit.
Sourcepub const fn max_concurrent_file_reads_per_partition(&self) -> usize
pub const fn max_concurrent_file_reads_per_partition(&self) -> usize
Returns the per-partition file-read limit.
Sourcepub const fn output_buffer_batches_per_partition(&self) -> usize
pub const fn output_buffer_batches_per_partition(&self) -> usize
Returns the number of output batches buffered per partition.
Sourcepub const fn prefetch_files_per_partition(&self) -> usize
pub const fn prefetch_files_per_partition(&self) -> usize
Returns the number of future direct Parquet files prepared per partition.
Sourcepub const fn parquet_metadata_size_hint_bytes(&self) -> Option<usize>
pub const fn parquet_metadata_size_hint_bytes(&self) -> Option<usize>
Returns the direct Parquet reader’s metadata size hint in bytes.
Sourcepub const fn parquet_full_file_read_threshold_bytes(&self) -> Option<usize>
pub const fn parquet_full_file_read_threshold_bytes(&self) -> Option<usize>
Returns the direct Parquet reader’s full-file read threshold in bytes.
Sourcepub const fn experimental_intra_page_reads(&self) -> bool
pub const fn experimental_intra_page_reads(&self) -> bool
Whether experimental partial-page reads are enabled for the direct backend.
Sourcepub const fn with_experimental_intra_page_reads(self, enabled: bool) -> Self
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.
Sourcepub const fn with_parquet_backend(
self,
parquet_backend: ParquetReaderBackend,
) -> Self
pub const fn with_parquet_backend( self, parquet_backend: ParquetReaderBackend, ) -> Self
Selects a Parquet reader backend.
Sourcepub fn with_max_concurrent_file_reads_per_scan(
self,
max_concurrent_file_reads: Option<usize>,
) -> Result<Self, DeltaReaderError>
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.
Sourcepub fn with_max_concurrent_file_reads_per_partition(
self,
max_concurrent_file_reads: usize,
) -> Result<Self, DeltaReaderError>
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.
Sourcepub fn with_output_buffer_batches_per_partition(
self,
output_buffer_batches: usize,
) -> Result<Self, DeltaReaderError>
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.
Sourcepub const fn with_prefetch_files_per_partition(
self,
prefetch_files: usize,
) -> Self
pub const fn with_prefetch_files_per_partition( self, prefetch_files: usize, ) -> Self
Sets the number of future direct Parquet files prepared per partition.
Sourcepub fn with_parquet_metadata_size_hint_bytes(
self,
metadata_size_hint_bytes: Option<usize>,
) -> Result<Self, DeltaReaderError>
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.
Sourcepub fn with_parquet_full_file_read_threshold_bytes(
self,
full_file_read_threshold_bytes: Option<usize>,
) -> Result<Self, DeltaReaderError>
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
impl Clone for DeltaScanExecutionOptions
impl Copy for DeltaScanExecutionOptions
Source§impl Debug for DeltaScanExecutionOptions
impl Debug for DeltaScanExecutionOptions
Source§impl Default for DeltaScanExecutionOptions
impl Default for DeltaScanExecutionOptions
impl Eq for DeltaScanExecutionOptions
impl StructuralPartialEq for DeltaScanExecutionOptions
Auto Trait Implementations§
impl Freeze for DeltaScanExecutionOptions
impl RefUnwindSafe for DeltaScanExecutionOptions
impl Send for DeltaScanExecutionOptions
impl Sync for DeltaScanExecutionOptions
impl Unpin for DeltaScanExecutionOptions
impl UnsafeUnpin for DeltaScanExecutionOptions
impl UnwindSafe for DeltaScanExecutionOptions
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> AsAny for T
impl<T> AsAny for T
Source§fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
dyn Any reference to the object: Read moreSource§fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ
fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ
Arc<dyn Any> reference to the object: Read moreSource§fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
Box<dyn Any>: Read moreSource§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DynPartialEq for T
impl<T> DynPartialEq for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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