Skip to content

Commit e512368

Browse files
committed
Updated plan expectations for the skipped null-aware pushdown.
The guard removes the probe-side dynamic filter from these plans.
1 parent 91a7e95 commit e512368

3 files changed

Lines changed: 4 additions & 7 deletions

File tree

datafusion/sqllogictest/test_files/dynamic_filter_pushdown_config.slt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ logical_plan
383383
physical_plan
384384
01)HashJoinExec: mode=CollectLeft, join_type=LeftAnti, on=[(id@0, id@0)], null_aware
385385
02)--DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/join_left.parquet]]}, projection=[id, data], file_type=parquet
386-
03)--DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/join_right.parquet]]}, projection=[id], file_type=parquet, predicate=DynamicFilter [ empty ], dynamic_rg_pruning=eligible
386+
03)--DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/join_right.parquet]]}, projection=[id], file_type=parquet
387387

388388
# LEFT MARK JOIN: the OR prevents decorrelation to LeftSemi, so the optimizer
389389
# uses LeftMark. Self-generated dynamic filter pushes to the probe side.
@@ -479,7 +479,7 @@ physical_plan
479479
01)SortExec: TopK(fetch=2), expr=[id@0 ASC NULLS LAST], preserve_partitioning=[false]
480480
02)--HashJoinExec: mode=CollectLeft, join_type=LeftAnti, on=[(id@0, id@0)], null_aware
481481
03)----DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/join_left.parquet]]}, projection=[id, data], file_type=parquet, predicate=DynamicFilter [ empty ], dynamic_rg_pruning=eligible
482-
04)----DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/join_right.parquet]]}, projection=[id], file_type=parquet, predicate=DynamicFilter [ empty ] AND DynamicFilter [ empty ], dynamic_rg_pruning=eligible
482+
04)----DataSourceExec: file_groups={1 group: [[WORKSPACE_ROOT/datafusion/sqllogictest/test_files/scratch/dynamic_filter_pushdown_config/join_right.parquet]]}, projection=[id], file_type=parquet, predicate=DynamicFilter [ empty ], dynamic_rg_pruning=eligible
483483

484484
# Correctness check
485485
query IT

datafusion/sqllogictest/test_files/explain_tree.slt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,10 +1120,7 @@ physical_plan
11201120
13)│ -------------------- ││ -------------------- │
11211121
14)│ files: 1 ││ files: 1 │
11221122
15)│ format: csv ││ format: parquet │
1123-
16)│ ││ │
1124-
17)│ ││ predicate: │
1125-
18)│ ││ DynamicFilter [ empty ] │
1126-
19)└───────────────────────────┘└───────────────────────────┘
1123+
16)└───────────────────────────┘└───────────────────────────┘
11271124

11281125
# Query with nested loop join.
11291126
query TT

datafusion/sqllogictest/test_files/push_down_filter_parquet.slt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ statement ok
11131113
CREATE EXTERNAL TABLE i_disj_p (eid INT) STORED AS PARQUET
11141114
LOCATION 'test_files/scratch/push_down_filter_parquet/i_disj_p.parquet';
11151115

1116-
# Must return only `5`. `NULL NOT IN (2, 3)` is UNKNOWN that row is dropped.
1116+
# Must return only `5`. `NULL NOT IN (2, 3)` is UNKNOWN, so that row is dropped.
11171117
query I
11181118
SELECT id FROM ao_p WHERE id NOT IN (SELECT eid FROM i_disj_p) ORDER BY id;
11191119
----

0 commit comments

Comments
 (0)