Jackie-Jiang opened a new pull request, #19746:
URL: https://github.com/apache/pinot/pull/19746

   ## Summary
   
   Follow-up to apache/pinot#19684, which added `create` factories that return 
an `EmptyDocIdSet` for an empty input. The constructors stayed public, so the 
rule that an empty result is an `EmptyDocIdSet` was only a convention. This 
makes the constructors of `BitmapDocIdSet`, `RangelessBitmapDocIdSet` and 
`SortedDocIdSet` private, so the factories are the only way to build them:
   - The remaining callers in `BaseColumnFilterOperator` and 
`BitmapBasedFilterOperator` use `create`.
   - `BaseColumnFilterOperator#excludeNulls` returns an empty result directly 
when every document is null, instead of intersecting the match with an empty 
bitmap. A parent `AND` can then short-circuit on it.
   - `BitmapDocIdSet`, `RangelessBitmapDocIdSet` and `NotDocIdSet` become 
`final`, and `BitmapDocIdSet` drops its constructor without a scan count.
   - `AndDocIdSetTest` uses the factory, and `SortedDocIdIteratorTest` builds 
the `SortedDocIdIterator` it tests directly.
   
   Query results do not change.
   
   ## API changes
   
   For code outside Pinot that builds these classes:
   - The constructors of `BitmapDocIdSet`, `RangelessBitmapDocIdSet` and 
`SortedDocIdSet` are no longer accessible; use their `create` factories.
   - `BitmapDocIdSet`, `RangelessBitmapDocIdSet`, `SortedDocIdSet` and 
`NotDocIdSet` can no longer be subclassed. A subclass that only reported a scan 
count can use `BitmapDocIdSet.create(docIds, numDocs, 
numEntriesScannedInFilter)`.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


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