lance-format/lance

Add optimizer rule to change `LanceScanExec -> FilterExec` into `FilteredReadExec`

Open

#5,154 opened on Nov 6, 2025

View on GitHub
 (6 comments) (0 reactions) (1 assignee)Rust (695 forks)github user discovery
good first issueperformance

Repository metrics

Stars
 (6,582 stars)
PR merge metrics
 (Avg merge 6d 1h) (219 merged PRs in 30d)

Description

There are query plans like this one that could benefit from pushing down the filter:

https://github.com/lancedb/lance/blob/35a0547426c47dd94425619c442dcd03ffd9860c/rust/lance/src/dataset/scanner.rs#L7157-L7158

Note: this will become obsolete if we change Scanner to construct a logical plan using the LanceTableProvider since pushdown can be handled at that layer. However, that's a ways off.

https://github.com/lancedb/lance/blob/35a0547426c47dd94425619c442dcd03ffd9860c/rust/lance/src/datafusion/dataframe.rs#L147-L158

Contributor guide