QuakeWang opened a new issue, #220:
URL: https://github.com/apache/paimon-rust/issues/220

   ### Search before asking
   
   - [x] I searched in the 
[issues](https://github.com/apache/paimon-rust/issues) and found nothing 
similar.
   
   
   ### Description
   
   `PaimonTableProvider::scan(..., limit)` already forwards a limit hint into 
Paimon scan planning, so plain `LIMIT` can already benefit from scan-side split 
pruning.
   
   However, `PaimonTableScan` does not implement DataFusion's physical fetch 
contract (`fetch()`/`with_fetch()`). As a result, fetch cannot be pushed back 
into the scan node during physical optimization, and queries such as `OFFSET + 
LIMIT` cannot benefit from scan-side split pruning after the physical plan is 
built.
   
   Expected behavior:
     - `PaimonTableScan` implements `fetch()` / `with_fetch()`.
     - `with_fetch()` returns a new `PaimonTableScan` whose planned splits are 
rebuilt using the tighter fetch hint.
     - Fetch is treated as a best-effort planning hint only.
     - Final `LIMIT` / `OFFSET` semantics remain enforced by DataFusion.
     - Split pruning stays conservative and fail-open for unsafe cases such as 
data predicates.
   
   
   ### Willingness to contribute
   
   - [x] I'm willing to submit a PR!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to