diff --git a/datafusion-testing b/datafusion-testing index 5b424aefd7f6..3462eaa78745 160000 --- a/datafusion-testing +++ b/datafusion-testing @@ -1 +1 @@ -Subproject commit 5b424aefd7f6bf198220c37f59d39dbb25b47695 +Subproject commit 3462eaa787459957e38df267a4a21f5bea605807 diff --git a/datafusion/datasource-parquet/src/opener.rs b/datafusion/datasource-parquet/src/opener.rs index 38a06aa94162..fed5e6d5d59c 100644 --- a/datafusion/datasource-parquet/src/opener.rs +++ b/datafusion/datasource-parquet/src/opener.rs @@ -174,7 +174,7 @@ impl FileOpener for ParquetOpener { builder.metadata(), reorder_predicates, &file_metrics, - schema_adapter_factory.clone(), + &schema_adapter_factory, ); match row_filter { diff --git a/datafusion/datasource-parquet/src/row_filter.rs b/datafusion/datasource-parquet/src/row_filter.rs index 9724ee9de59d..b2f40d1ca48e 100644 --- a/datafusion/datasource-parquet/src/row_filter.rs +++ b/datafusion/datasource-parquet/src/row_filter.rs @@ -449,12 +449,12 @@ fn columns_sorted(_columns: &[usize], _metadata: &ParquetMetaData) -> Result, - file_schema: &Schema, - table_schema: &Schema, + file_schema: &SchemaRef, + table_schema: &SchemaRef, metadata: &ParquetMetaData, reorder_predicates: bool, file_metrics: &ParquetFileMetrics, - schema_adapter_factory: Arc, + schema_adapter_factory: &Arc, ) -> Result> { let rows_pruned = &file_metrics.pushdown_rows_pruned; let rows_matched = &file_metrics.pushdown_rows_matched; @@ -464,18 +464,15 @@ pub fn build_row_filter( // `a = 1 AND b = 2 AND c = 3` -> [`a = 1`, `b = 2`, `c = 3`] let predicates = split_conjunction(expr); - let file_schema = Arc::new(file_schema.clone()); - let table_schema = Arc::new(table_schema.clone()); - // Determine which conjuncts can be evaluated as ArrowPredicates, if any let mut candidates: Vec = predicates .into_iter() .map(|expr| { FilterCandidateBuilder::new( Arc::clone(expr), - file_schema.clone(), - table_schema.clone(), - schema_adapter_factory.clone(), + Arc::clone(file_schema), + Arc::clone(table_schema), + Arc::clone(schema_adapter_factory), ) .build(metadata) })