Skip to content

Commit d63b3e7

Browse files
authored
Add slt test for pushing volatile predicates down (#35)
1 parent ab34cac commit d63b3e7

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

datafusion/sqllogictest/test_files/parquet_filter_pushdown.slt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,21 @@ physical_plan
405405
02)--SortExec: expr=[b@0 ASC NULLS LAST], preserve_partitioning=[true]
406406
03)----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, pruning_predicate=a_null_count@2 != row_count@3 AND a_min@0 <= bar AND bar <= a_max@1, required_guarantees=[a in (bar)]
407407

408+
409+
# should not push down volatile predicates such as RANDOM
410+
# expect that the random predicate is evaluated after the scan
411+
query TT
412+
EXPLAIN select a from t_pushdown where b > random();
413+
----
414+
logical_plan
415+
01)Projection: t_pushdown.a
416+
02)--Filter: CAST(t_pushdown.b AS Float64) > random()
417+
03)----TableScan: t_pushdown projection=[a, b]
418+
physical_plan
419+
01)CoalesceBatchesExec: target_batch_size=8192
420+
02)--FilterExec: CAST(b@1 AS Float64) > random(), projection=[a@0]
421+
03)----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
422+
408423
## cleanup
409424
statement ok
410425
DROP TABLE t;

0 commit comments

Comments
 (0)