Skip to content

Commit ff090a7

Browse files
committed
re-generate; respect table option
1 parent 21a7eb5 commit ff090a7

2 files changed

Lines changed: 9 additions & 10 deletions

File tree

datafusion/datasource-parquet/src/source.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,9 @@ impl FileSource for ParquetSource {
571571
let Some(file_schema) = self.file_schema.clone() else {
572572
return Ok(filter_pushdown_not_supported(fd));
573573
};
574-
if config.execution.parquet.pushdown_filters {
574+
let config_pushdown_enabled = config.execution.parquet.pushdown_filters;
575+
let table_pushdown_enabled = self.pushdown_filters();
576+
if table_pushdown_enabled || config_pushdown_enabled {
575577
let mut conf = self.clone();
576578
let mut allowed_filters = vec![];
577579
let mut remaining_filters = vec![];

datafusion/sqllogictest/test_files/parquet_filter_pushdown.slt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,8 @@ physical_plan
8888
01)SortPreservingMergeExec: [a@0 ASC NULLS LAST]
8989
02)--SortExec: expr=[a@0 ASC NULLS LAST], preserve_partitioning=[true]
9090
03)----CoalesceBatchesExec: target_batch_size=8192
91-
04)------FilterExec: b@1 > 2, projection=[a@0]
92-
05)--------RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=2
93-
06)----------DataSourceExec: file_groups={2 groups: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/1.parquet], [WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/2.parquet]]}, projection=[a, b], file_type=parquet, predicate=b@1 > 2
91+
04)------RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=2
92+
05)--------DataSourceExec: file_groups={2 groups: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/1.parquet], [WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/2.parquet]]}, projection=[a], file_type=parquet, predicate=b@1 > 2 AND b@1 > 2
9493

9594

9695
# When filter pushdown *is* enabled, ParquetExec can filter exactly,
@@ -139,9 +138,8 @@ physical_plan
139138
01)SortPreservingMergeExec: [a@0 ASC NULLS LAST]
140139
02)--SortExec: expr=[a@0 ASC NULLS LAST], preserve_partitioning=[true]
141140
03)----CoalesceBatchesExec: target_batch_size=8192
142-
04)------FilterExec: b@1 > 2 AND a@0 IS NOT NULL, projection=[a@0]
143-
05)--------RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=2
144-
06)----------DataSourceExec: file_groups={2 groups: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/1.parquet], [WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/2.parquet]]}, projection=[a, b], file_type=parquet, predicate=b@1 > 2 AND a@0 IS NOT NULL
141+
04)------RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=2
142+
05)--------DataSourceExec: file_groups={2 groups: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/1.parquet], [WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/2.parquet]]}, projection=[a], file_type=parquet, predicate=b@1 > 2 AND a@0 IS NOT NULL AND b@1 > 2 AND a@0 IS NOT NULL
145143

146144

147145
query I
@@ -161,9 +159,8 @@ physical_plan
161159
01)SortPreservingMergeExec: [b@0 ASC NULLS LAST]
162160
02)--SortExec: expr=[b@0 ASC NULLS LAST], preserve_partitioning=[true]
163161
03)----CoalesceBatchesExec: target_batch_size=8192
164-
04)------FilterExec: a@0 = bar, projection=[b@1]
165-
05)--------RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=2
166-
06)----------DataSourceExec: file_groups={2 groups: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/1.parquet], [WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/2.parquet]]}, projection=[a, b], file_type=parquet, predicate=a@0 = bar
162+
04)------RepartitionExec: partitioning=RoundRobinBatch(4), input_partitions=2
163+
05)--------DataSourceExec: file_groups={2 groups: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/1.parquet], [WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/parquet_filter_pushdown/parquet_table/2.parquet]]}, projection=[b], file_type=parquet, predicate=a@0 = bar AND a@0 = bar
167164

168165
## cleanup
169166
statement ok

0 commit comments

Comments
 (0)