pub struct ProjectionOpener { /* private fields */ }Expand description
A file opener that handles applying a projection on top of an inner opener.
This includes handling partition columns.
Any projection pushed down will be split up into:
- Simple column indices / column selection
- A remainder projection that this opener applies on top of it
This is meant to simplify projection pushdown for sources like CSV that can only handle “simple” column selection.
Implementations§
Source§impl ProjectionOpener
impl ProjectionOpener
pub fn try_new( projection: SplitProjection, inner: Arc<dyn FileOpener>, file_schema: &Schema, ) -> Result<Arc<dyn FileOpener>>
Trait Implementations§
Source§impl FileOpener for ProjectionOpener
impl FileOpener for ProjectionOpener
Source§fn open(&self, partitioned_file: PartitionedFile) -> Result<FileOpenFuture>
fn open(&self, partitioned_file: PartitionedFile) -> Result<FileOpenFuture>
Asynchronously open the specified file and return a stream
of
RecordBatchAuto Trait Implementations§
impl Freeze for ProjectionOpener
impl !RefUnwindSafe for ProjectionOpener
impl Send for ProjectionOpener
impl Sync for ProjectionOpener
impl Unpin for ProjectionOpener
impl !UnwindSafe for ProjectionOpener
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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>
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 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>
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