You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fluss.apache.org by "leekeiabstraction (via GitHub)" <gi...@apache.org> on 2026/08/12 16:57:22 UTC

[PR] [rust] Wire the scan filter through to the log fetcher [fluss]

leekeiabstraction opened a new pull request, #3971:
URL: https://github.com/apache/fluss/pull/3971

   ## Summary
   - Closes #3844.
   - Adds `TableScan::filter`, which encodes the predicate against the full row type and sends it with the schema id on every fetch request.
   - A response now advances the bucket offset past `filtered_end_offset`, whether the server emptied the fetch or only pruned its tail, and the proto comment claiming those two fields are mutually exclusive is corrected to match the server.
   
   ## Test Plan
   - `cargo test -p fluss-rs --lib`: 628 passed, covering the request fields, both filtered response shapes, and the `EARLIEST_OFFSET` sentinel that -1 must not outrank.
   - Full integration suite passes (65), though the test cluster runs 0.9.1, which predates server-side filtering, so pruning is not yet exercised end to end.
   
   🤖 AI-assisted changes - reviewed by human developer


-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [rust] Wire the scan filter through to the log fetcher [fluss]

Posted by "leekeiabstraction (via GitHub)" <gi...@apache.org>.
leekeiabstraction commented on PR #3971:
URL: https://github.com/apache/fluss/pull/3971#issuecomment-5270026222

   @platinumhamburg @fresh-borzoni @charlesdong1991 Appreciate a review here please 🙏


-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [rust] Wire the scan filter through to the log fetcher [fluss]

Posted by "fresh-borzoni (via GitHub)" <gi...@apache.org>.
fresh-borzoni merged PR #3971:
URL: https://github.com/apache/fluss/pull/3971


-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [rust] Wire the scan filter through to the log fetcher [fluss]

Posted by "leekeiabstraction (via GitHub)" <gi...@apache.org>.
leekeiabstraction commented on code in PR #3971:
URL: https://github.com/apache/fluss/pull/3971#discussion_r3768689077


##########
fluss-rust/crates/fluss/src/client/table/log_fetch_buffer.rs:
##########
@@ -1237,6 +1273,151 @@ mod tests {
         Ok(())
     }
 
+    /// An empty fetch carrying only a filtered range, as the server sends when
+    /// it prunes every batch it scanned.
+    fn filtered_empty_fetch(

Review Comment:
   Fluss core ITs currently test against 0.9.1-incubating. To unblock integration test, we'd need to wait for 1.0 RC.



-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [rust] Wire the scan filter through to the log fetcher [fluss]

Posted by "leekeiabstraction (via GitHub)" <gi...@apache.org>.
leekeiabstraction commented on code in PR #3971:
URL: https://github.com/apache/fluss/pull/3971#discussion_r3792467566


##########
fluss-rust/crates/fluss/src/client/table/log_fetch_buffer.rs:
##########
@@ -1237,6 +1273,151 @@ mod tests {
         Ok(())
     }
 
+    /// An empty fetch carrying only a filtered range, as the server sends when
+    /// it prunes every batch it scanned.
+    fn filtered_empty_fetch(

Review Comment:
   Thanks @fresh-borzoni , I noticed that I missed batch statistics part completely. Without the batch statistics calculation, encoding and wiring, Rust client written batches wouldn't be able to be filtered on server side. 
   
   I've raised #4008, #4009 and #4010 to address the batch statistics implementations.
   
   As for integration testing this PR, I'm thinking that I can circle back to it with issue #3845 when the above are all addressed to unblock the merging of this and keep things tightly scoped and manage-able for reviews. WDYT?



-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] [rust] Wire the scan filter through to the log fetcher [fluss]

Posted by "fresh-borzoni (via GitHub)" <gi...@apache.org>.
fresh-borzoni commented on code in PR #3971:
URL: https://github.com/apache/fluss/pull/3971#discussion_r3771639146


##########
fluss-rust/crates/fluss/src/client/table/log_fetch_buffer.rs:
##########
@@ -1237,6 +1273,151 @@ mod tests {
         Ok(())
     }
 
+    /// An empty fetch carrying only a filtered range, as the server sends when
+    /// it prunes every batch it scanned.
+    fn filtered_empty_fetch(

Review Comment:
    The 0.9.1 limitation is only local. CI builds the server from this tree and runs the Rust ITs against it (FLUSS_VERSION=dev in client-integration.yml), so you can write it now.
   
   One ask for that test though: assert that something actually got pruned. The server swallows any predicate error and quietly reads unfiltered, so checking rows alone would pass even if none of this works.



-- 
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: issues-unsubscribe@fluss.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org