pub(crate) struct ParquetOpener {Show 21 fields
pub partition_index: usize,
pub projection: Arc<[usize]>,
pub batch_size: usize,
pub limit: Option<usize>,
pub predicate: Option<Arc<dyn PhysicalExpr>>,
pub logical_file_schema: SchemaRef,
pub partition_fields: Vec<FieldRef>,
pub metadata_size_hint: Option<usize>,
pub metrics: ExecutionPlanMetricsSet,
pub parquet_file_reader_factory: Arc<dyn ParquetFileReaderFactory>,
pub pushdown_filters: bool,
pub reorder_filters: bool,
pub enable_page_index: bool,
pub enable_bloom_filter: bool,
pub schema_adapter_factory: Arc<dyn SchemaAdapterFactory>,
pub enable_row_group_stats_pruning: bool,
pub coerce_int96: Option<TimeUnit>,
pub file_decryption_properties: Option<Arc<FileDecryptionProperties>>,
pub(crate) expr_adapter_factory: Option<Arc<dyn PhysicalExprAdapterFactory>>,
pub encryption_factory: Option<(Arc<dyn EncryptionFactory>, EncryptionFactoryOptions)>,
pub max_predicate_cache_size: Option<usize>,
}Expand description
Implements FileOpener for a parquet file
Fields§
§partition_index: usizeExecution partition index
projection: Arc<[usize]>Column indexes in table_schema needed by the query
batch_size: usizeTarget number of rows in each output RecordBatch
limit: Option<usize>Optional limit on the number of rows to read
predicate: Option<Arc<dyn PhysicalExpr>>Optional predicate to apply during the scan
logical_file_schema: SchemaRefSchema of the output table without partition columns. This is the schema we coerce the physical file schema into.
partition_fields: Vec<FieldRef>Partition columns
metadata_size_hint: Option<usize>Optional hint for how large the initial request to read parquet metadata should be
metrics: ExecutionPlanMetricsSetMetrics for reporting
parquet_file_reader_factory: Arc<dyn ParquetFileReaderFactory>Factory for instantiating parquet reader
pushdown_filters: boolShould the filters be evaluated during the parquet scan using
DataFusionArrowPredicate?
reorder_filters: boolShould the filters be reordered to optimize the scan?
enable_page_index: boolShould the page index be read from parquet files, if present, to skip data pages
enable_bloom_filter: boolShould the bloom filter be read from parquet, if present, to skip row groups
schema_adapter_factory: Arc<dyn SchemaAdapterFactory>Schema adapter factory
enable_row_group_stats_pruning: boolShould row group pruning be applied
coerce_int96: Option<TimeUnit>Coerce INT96 timestamps to specific TimeUnit
file_decryption_properties: Option<Arc<FileDecryptionProperties>>Optional parquet FileDecryptionProperties
expr_adapter_factory: Option<Arc<dyn PhysicalExprAdapterFactory>>Rewrite expressions in the context of the file schema
encryption_factory: Option<(Arc<dyn EncryptionFactory>, EncryptionFactoryOptions)>Optional factory to create file decryption properties dynamically
max_predicate_cache_size: Option<usize>Maximum size of the predicate cache, in bytes. If none, uses the arrow-rs default.
Implementations§
Source§impl ParquetOpener
impl ParquetOpener
fn get_encryption_context(&self) -> EncryptionContext
Trait Implementations§
Source§impl FileOpener for ParquetOpener
impl FileOpener for ParquetOpener
Source§fn open(&self, partitioned_file: PartitionedFile) -> Result<FileOpenFuture>
fn open(&self, partitioned_file: PartitionedFile) -> Result<FileOpenFuture>
RecordBatch]Auto Trait Implementations§
impl Freeze for ParquetOpener
impl !RefUnwindSafe for ParquetOpener
impl Send for ParquetOpener
impl Sync for ParquetOpener
impl Unpin for ParquetOpener
impl !UnwindSafe for ParquetOpener
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