pub enum InputSource {
Local(PathBuf),
}Expand description
A conversion input: a local parquet file or a remote parquet object.
Clone is cheap: the local variant clones a path, the remote variant
clones Arc handles — clones share the fetch counters, chunk cache,
disk spill, and cached footer of the original.
Variants§
Implementations§
Source§impl InputSource
impl InputSource
Sourcepub fn from_path(path: &Path) -> Result<Self, InputError>
pub fn from_path(path: &Path) -> Result<Self, InputError>
Classify a CLI-style input path. Anything shaped like scheme://...
is treated as a URL (file:// maps back to a local path); everything
else is a local path.
Sourcepub fn from_str_input(input: &str) -> Result<Self, InputError>
pub fn from_str_input(input: &str) -> Result<Self, InputError>
InputSource::from_path for string inputs.
Sourcepub fn display_name(&self) -> String
pub fn display_name(&self) -> String
Human-readable name of the input (path or URL).
Sourcepub fn open(
&self,
) -> Result<ParquetRecordBatchReaderBuilder<InputReader>, InputError>
pub fn open( &self, ) -> Result<ParquetRecordBatchReaderBuilder<InputReader>, InputError>
Open a parquet reader builder over this input.
Local: opens the file and parses the footer (cheap, OS page cache). Remote: reuses a cached parsed footer after the first open, so the multi-pass streaming pipeline pays the footer fetch only once.
Sourcepub fn fetch_stats(&self) -> Option<FetchStats>
pub fn fetch_stats(&self) -> Option<FetchStats>
Fetch counters for a remote source (None for local inputs).
Sourcepub fn fetched_ranges(&self) -> Option<Vec<Range<u64>>>
pub fn fetched_ranges(&self) -> Option<Vec<Range<u64>>>
The byte ranges fetched so far from a remote source (None for
local inputs). Ordered by request time; used by tests to prove that
bbox-pruned row groups are never downloaded.
Sourcepub fn set_spill_dir(&self, dir: Option<&Path>)
pub fn set_spill_dir(&self, dir: Option<&Path>)
Place the remote-input disk spill (#219) in dir instead of the
process temp dir ($TMPDIR) — issue #272. No-op for local inputs,
which never spill. Call before reading: chunks already spilled stay
in the previously created file; only the spill-file creation (lazy,
on the first spilled chunk) honors the directory.
Sourcepub fn release_read_cache(&self)
pub fn release_read_cache(&self)
Release the in-memory read cache (no-op for local files). For a remote source this clears the L1 chunk cache but KEEPS the disk spill and the cached footer, so a later touch of the same chunk is served from local disk, not the network. Called by multi-partition streams on part transitions to bound resident memory to one part’s working set.
Sourcepub fn stage_row_groups(
&self,
selected: Option<&[usize]>,
) -> Result<(), InputError>
pub fn stage_row_groups( &self, selected: Option<&[usize]>, ) -> Result<(), InputError>
Stage the selected row groups to the local disk spill up front (pass
0, #286/#287), coalescing each row group into one parallel range
request so the later passes read entirely from disk. No-op for local
inputs (the OS page cache already serves re-reads). selected (None
= all) must match the row groups the passes will read, so pruned groups
are never fetched and total traffic stays ≈1× (#219).
Trait Implementations§
Source§impl Clone for InputSource
impl Clone for InputSource
Source§fn clone(&self) -> InputSource
fn clone(&self) -> InputSource
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for InputSource
impl RefUnwindSafe for InputSource
impl Send for InputSource
impl Sync for InputSource
impl Unpin for InputSource
impl UnsafeUnpin for InputSource
impl UnwindSafe for InputSource
Blanket Implementations§
impl<T> Allocation for T
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> 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