xiangfu0 opened a new pull request, #20231:
URL: https://github.com/apache/pinot/pull/20231

   ## Summary
   
   An unordered `SELECT ... LIMIT` under row-level security (RLS) currently 
evaluates a restricted scan over all authorized candidates before selection can 
stop. For a WHERE with one supported scan predicate, stream the RLS candidates 
in bounded batches so selection can stop after collecting its limit.
   
   - Determine eligibility from the logical WHERE before segment pruning. 
Remove only an exact duplicate of an ordinary column policy. Keep the same 
bounded RLS candidate path when the policy matches every row and respect the 
valid document snapshot.
   - Cap each batch to the scan matcher’s capacity, retain one expression 
projection across batches, and release readers on LIMIT, exhaustion, or failure.
   - Keep ordered selections, compound user predicates, specialized indexes, 
and custom expression projection providers on the existing path.
   
   This follows #20183 and adapts Gonzalo Ortiz’s streaming kernel from #19589.
   
   ## Validation
   
   - 188 focused `pinot-core` tests passed. The regressions cover oversized 
batches, eager result parity, identical behavior when hidden rows change 
segment metadata, scan accounting, and reader reuse and release.
   - Spotless, license validation, and Checkstyle passed. Compilation reported 
no warnings on added lines.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to