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]
