pub struct SchemaMapping {
projected_table_schema: SchemaRef,
field_mappings: Vec<Option<usize>>,
cast_column: Arc<CastColumnFn>,
}Expand description
The SchemaMapping struct holds a mapping from the file schema to the table schema and any necessary type conversions.
map_batch is used by the ParquetOpener to produce a RecordBatch which
has the projected schema, since that’s the schema which is supposed to come
out of the execution of this query. Thus map_batch uses
projected_table_schema as it can only operate on the projected fields.
Fields§
§projected_table_schema: SchemaRefThe schema of the table. This is the expected schema after conversion and it should match the schema of the query result.
field_mappings: Vec<Option<usize>>Mapping from field index in projected_table_schema to index in
projected file_schema.
They are Options instead of just plain usizes because the table could
have fields that don’t exist in the file.
cast_column: Arc<CastColumnFn>Function used to adapt a column from the file schema to the table schema when it exists in both schemas
Implementations§
Source§impl SchemaMapping
impl SchemaMapping
Trait Implementations§
Source§impl Debug for SchemaMapping
impl Debug for SchemaMapping
Source§impl SchemaMapper for SchemaMapping
impl SchemaMapper for SchemaMapping
Source§fn map_batch(&self, batch: RecordBatch) -> Result<RecordBatch>
fn map_batch(&self, batch: RecordBatch) -> Result<RecordBatch>
Adapts a RecordBatch to match the projected_table_schema using the stored mapping and
conversions.
The produced RecordBatch has a schema that contains only the projected columns.
Source§fn map_column_statistics(
&self,
file_col_statistics: &[ColumnStatistics],
) -> Result<Vec<ColumnStatistics>>
fn map_column_statistics( &self, file_col_statistics: &[ColumnStatistics], ) -> Result<Vec<ColumnStatistics>>
Adapts file-level column Statistics to match the table_schema
Auto Trait Implementations§
impl Freeze for SchemaMapping
impl !RefUnwindSafe for SchemaMapping
impl Send for SchemaMapping
impl Sync for SchemaMapping
impl Unpin for SchemaMapping
impl !UnwindSafe for SchemaMapping
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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