@@ -96,25 +96,25 @@ statement ok
9696set datafusion.explain.analyze_level = summary;
9797
9898query TT
99- EXPLAIN ANALYZE SELECT id, value AS v, name FROM (SELECT * FROM test_parquet UNION ALL SELECT * FROM test_parquet LIMIT 6) ORDER BY v DESC LIMIT 3;
99+ EXPLAIN ANALYZE SELECT id, value AS v, value + id as name FROM test_parquet where value > 3 ORDER BY v DESC LIMIT 3;
100100----
101101Plan with Metrics
102- 01)SortExec: TopK(fetch=3), expr= [v@1 DESC], preserve_partitioning=[false], filter=[v@1 IS NULL OR v@1 > 400], metrics=[output_rows=3, elapsed_compute= <slt:ignore>, output_bytes=72.0 B ]
103- 02)--ProjectionExec: expr=[id@0 as id, value @1 as v, name@2 as name ], metrics=[output_rows=6, elapsed_compute= <slt:ignore>, output_bytes=226.0 B ]
104- 03)----CoalescePartitionsExec: fetch=6, metrics=[output_rows=6, elapsed_compute= <slt:ignore>, output_bytes=226.0 B ]
105- 04)------UnionExec , metrics=[output_rows=<slt:ignore>, elapsed_compute=<slt:ignore>, output_bytes= <slt:ignore>]
106- 05)--------DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/test_data.parquet]]}, projection=[id, value, name], limit=6, file_type=parquet, predicate=DynamicFilter [ value@1 IS NULL OR value@1 > 400 ], pruning_predicate=value_null_count@0 > 0 OR value_null_count@0 != row_count@2 AND value_max@1 > 400, required_guarantees=[], metrics=[output_rows=6, elapsed_compute= <slt:ignore>, output_bytes=226.0 B, files_ranges_pruned_statistics=1 total → 1 matched, row_groups_pruned_statistics=1 total → 1 matched, row_groups_pruned_bloom_filter=1 total → 1 matched, page_index_rows_pruned=0 total → 0 matched, bytes_scanned=325, metadata_load_time= <slt:ignore>, scan_efficiency_ratio=28% (325/1.16 K)]
107- 06)--------DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/test_data.parquet]]}, projection=[id, value, name ], limit=6, file_type=parquet, predicate=DynamicFilter [ value@1 IS NULL OR value@1 > 400 ], pruning_predicate=value_null_count@0 > 0 OR value_null_count@0 != row_count@2 AND value_max@1 > 400 , required_guarantees=[], metrics=[output_rows=6 , elapsed_compute=<slt:ignore>, output_bytes=226.0 B , files_ranges_pruned_statistics=1 total → 1 matched, row_groups_pruned_statistics=1 total → 1 matched, row_groups_pruned_bloom_filter=1 total → 1 matched, page_index_rows_pruned=0 total → 0 matched, bytes_scanned=325 , metadata_load_time=<slt:ignore>, scan_efficiency_ratio=28 % (325 /1.16 K)]
102+ 01)SortPreservingMergeExec: [v@1 DESC], fetch=3, metrics=[output_rows=3, <slt:ignore>]
103+ 02)--SortExec: TopK(fetch=3), expr=[v@1 DESC], preserve_partitioning=[true], filter=[v @1 IS NULL OR v@1 > 800 ], metrics=[output_rows=3, <slt:ignore>]
104+ 03)----ProjectionExec: expr=[id@0 as id, value@1 as v, value@1 + id@0 as name], metrics=[output_rows=10, <slt:ignore>]
105+ 04)------FilterExec: value@1 > 3 , metrics=[output_rows=10, <slt:ignore>]
106+ 05)--------RepartitionExec: partitioning=RoundRobinBatch( <slt:ignore>), <slt:ignore>
107+ 06)---------- DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/test_data.parquet]]}, projection=[id, value], file_type=parquet, predicate=value@1 > 3 AND DynamicFilter [ value@1 IS NULL OR value@1 > 800 ], pruning_predicate=value_null_count@1 != row_count@2 AND value_max@ 0 > 3 AND (value_null_count@1 > 0 OR value_null_count@1 != row_count@2 AND value_max@0 > 800) , required_guarantees=[], metrics=[output_rows=10 , elapsed_compute=<slt:ignore>, output_bytes=<slt:ignore> , files_ranges_pruned_statistics=1 total → 1 matched, row_groups_pruned_statistics=1 total → 1 matched, row_groups_pruned_bloom_filter=1 total → 1 matched, page_index_rows_pruned=10 total → 10 matched, bytes_scanned=210 , metadata_load_time=<slt:ignore>, scan_efficiency_ratio=18 % (210 /1.16 K)]
108108
109109statement ok
110110set datafusion.explain.analyze_level = dev;
111111
112- query IIT
113- SELECT id, value AS v, name FROM (SELECT * FROM test_parquet UNION ALL SELECT * FROM test_parquet LIMIT 6) ORDER BY v DESC LIMIT 3;
112+ query III
113+ SELECT id, value AS v, value + id as name FROM test_parquet where value > 3 ORDER BY v DESC LIMIT 3;
114114----
115- 6 600 f
116- 5 500 e
117- 4 400 d
115+ 10 1000 1010
116+ 9 900 909
117+ 8 800 808
118118
119119# Disable TopK dynamic filter pushdown
120120statement ok
0 commit comments