Skip to content

fix: enforce file-id filter semantics in scan planning#4206

Merged
rtyler merged 2 commits intodelta-io:mainfrom
ethan-tyler:fix/filter-semantics
Feb 16, 2026
Merged

fix: enforce file-id filter semantics in scan planning#4206
rtyler merged 2 commits intodelta-io:mainfrom
ethan-tyler:fix/filter-semantics

Conversation

@ethan-tyler
Copy link
Collaborator

@ethan-tyler ethan-tyler commented Feb 16, 2026

Description

Last DF 52 upgrade clean up PR

file_id is a synthetic scan column and is not a valid kernel/parquet pushdown target. Predicates referencing file_id are now classified as Unsupported and excluded from kernel/parquet predicate generation, keeping them as residual DataFusion filters.

Non-file_id behavior unchanged: partition only filters remain Exact, data-column-only filters remain Inexact.

Related Issue(s)

Documentation

@github-actions github-actions bot added the binding/rust Issues for the Rust crate label Feb 16, 2026
Signed-off-by: Ethan Urbanski <ethan@urbanskitech.com>
@codecov
Copy link

codecov bot commented Feb 16, 2026

Codecov Report

❌ Patch coverage is 93.87755% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.73%. Comparing base (995325a) to head (b7e7b27).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
.../delta_datafusion/table_provider/next/scan/exec.rs 91.89% 1 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4206      +/-   ##
==========================================
+ Coverage   76.71%   76.73%   +0.01%     
==========================================
  Files         166      166              
  Lines       47782    47807      +25     
  Branches    47782    47807      +25     
==========================================
+ Hits        36657    36683      +26     
+ Misses       9289     9288       -1     
  Partials     1836     1836              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@rtyler rtyler enabled auto-merge (rebase) February 16, 2026 20:55
return None;
}

let key = dict.keys().value(row) as usize;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

value() can panic if row isn't a valid offset. Can this bail earlier if the offset doesn't fit in the length of keys()?

Signed-off-by: Ethan Urbanski <ethan@urbanskitech.com>
auto-merge was automatically disabled February 16, 2026 21:08

Head branch was pushed to by a user without write access

@rtyler rtyler merged commit 986b504 into delta-io:main Feb 16, 2026
26 checks passed
@ethan-tyler ethan-tyler deleted the fix/filter-semantics branch February 16, 2026 21:21
@ethan-tyler
Copy link
Collaborator Author

Thank you sir @rtyler!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

binding/rust Issues for the Rust crate

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants