From c590d2adcced18e73c0708c9abb371ed446a8879 Mon Sep 17 00:00:00 2001 From: Dan Harris Date: Tue, 20 Sep 2022 14:44:29 -0400 Subject: [PATCH] Make ParquetScanOptions public and add method to get a reference from ParquetExec --- datafusion/core/src/physical_plan/file_format/mod.rs | 4 +++- datafusion/core/src/physical_plan/file_format/parquet.rs | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/datafusion/core/src/physical_plan/file_format/mod.rs b/datafusion/core/src/physical_plan/file_format/mod.rs index 295fef27b2912..2926f18a20235 100644 --- a/datafusion/core/src/physical_plan/file_format/mod.rs +++ b/datafusion/core/src/physical_plan/file_format/mod.rs @@ -30,7 +30,9 @@ mod row_filter; pub(crate) use self::csv::plan_to_csv; pub use self::csv::CsvExec; pub(crate) use self::parquet::plan_to_parquet; -pub use self::parquet::{ParquetExec, ParquetFileMetrics, ParquetFileReaderFactory}; +pub use self::parquet::{ + ParquetExec, ParquetFileMetrics, ParquetFileReaderFactory, ParquetScanOptions, +}; use arrow::{ array::{ArrayData, ArrayRef, DictionaryArray}, buffer::Buffer, diff --git a/datafusion/core/src/physical_plan/file_format/parquet.rs b/datafusion/core/src/physical_plan/file_format/parquet.rs index a6ce44b22c8d7..f4c52e5dc699f 100644 --- a/datafusion/core/src/physical_plan/file_format/parquet.rs +++ b/datafusion/core/src/physical_plan/file_format/parquet.rs @@ -81,11 +81,13 @@ pub struct ParquetScanOptions { } impl ParquetScanOptions { + /// Set whether to pushdown pruning predicate to the parquet scan pub fn with_pushdown_filters(mut self, pushdown_filters: bool) -> Self { self.pushdown_filters = pushdown_filters; self } + /// Set whether to reorder pruning predicate expressions in order to minimize evaluation cost pub fn with_reorder_predicates(mut self, reorder_predicates: bool) -> Self { self.reorder_predicates = reorder_predicates; self @@ -182,6 +184,11 @@ impl ParquetExec { self.scan_options = scan_options; self } + + /// Ref to the `ParquetScanOptions` + pub fn parquet_scan_options(&self) -> &ParquetScanOptions { + &self.scan_options + } } /// Stores metrics about the parquet execution for a particular parquet file.