pub struct ProjectionPlan {
pub physical_schema: Arc<Schema>,
pub physical_df_schema: Arc<DFSchema>,
pub sibling_schema: Option<Arc<Schema>>,
pub requested_output_expr: Option<Vec<(Expr, String)>>,
}
Fields§
§physical_schema: Arc<Schema>
The physical schema (before dynamic projection) that must be loaded from the dataset
physical_df_schema: Arc<DFSchema>
§sibling_schema: Option<Arc<Schema>>
The schema of the sibling fields that must be loaded
requested_output_expr: Option<Vec<(Expr, String)>>
The expressions for all the columns to be in the output Note: this doesn’t include _distance, and _rowid
Implementations§
Source§impl ProjectionPlan
impl ProjectionPlan
pub fn try_new( base_schema: &Schema, columns: &[(impl AsRef<str>, impl AsRef<str>)], load_blobs: bool, ) -> Result<Self>
pub fn new_empty(base_schema: Arc<Schema>, load_blobs: bool) -> Self
pub fn inner_new( base_schema: Arc<Schema>, load_blobs: bool, sibling_schema: Option<Arc<Schema>>, ) -> Self
pub fn arrow_schema(&self) -> &ArrowSchema
pub fn arrow_schema_ref(&self) -> SchemaRef
pub fn to_physical_exprs(&self) -> Result<Vec<(Arc<dyn PhysicalExpr>, String)>>
pub fn output_schema(&self) -> Result<ArrowSchema>
pub async fn project_batch(&self, batch: RecordBatch) -> Result<RecordBatch>
pub fn project_stream( &self, stream: SendableRecordBatchStream, ) -> Result<SendableRecordBatchStream>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ProjectionPlan
impl !RefUnwindSafe for ProjectionPlan
impl Send for ProjectionPlan
impl Sync for ProjectionPlan
impl Unpin for ProjectionPlan
impl !UnwindSafe for ProjectionPlan
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> 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>
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