You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What happened:
When providing filters directly to DeltaTable scan implementation for DataFusion TableProvider, files are not pruned properly based on the statistics. The files that do NOT match the predicate are passed to the parquet plan.
What you expected to happen:
Files that do match the predicate are passed to the parquet plan.
How to reproduce it:
Run the following snippet with attached table data.zip
let table = Box::new(open_table("./data/table").await?);let ctx = SessionContext::new();let filters = [col("n").eq(lit(1asi64))];let plan = table.scan(&ctx.state(),None,&filters,None).await?;let children = plan.children();let parquet_plan = children.first().unwrap().as_any().downcast_ref::<ParquetExec>().unwrap();let file_scan = parquet_plan.base_config();for f in file_scan.file_groups.iter().flatten(){println!("{:?}", f.object_meta.location);}
Record 1 is in partition 0 which is not present in the file scan although all the other files that do not match predicate are present.
Environment
Delta-rs version: 0.6
Binding: Rust
Environment:
Bug
What happened:
When providing filters directly to DeltaTable scan implementation for DataFusion TableProvider, files are not pruned properly based on the statistics. The files that do NOT match the predicate are passed to the parquet plan.
What you expected to happen:
Files that do match the predicate are passed to the parquet plan.
How to reproduce it:
Run the following snippet with attached table data.zip
Record
1
is in partition 0 which is not present in the file scan although all the other files that do not match predicate are present.More details:
The pruning logic https://github.com/delta-io/delta-rs/blob/main/rust/src/delta_datafusion.rs#L354 should be updated to the following
The text was updated successfully, but these errors were encountered: