thswlsqls opened a new pull request, #9866:
URL: https://github.com/apache/paimon/pull/9866

   ### Purpose
   
   fix #9863
   
   - `BitmapFileIndex` keys TIMESTAMP / TIMESTAMP_LTZ through 
`Timestamp.toMicros()`, so on precision 7..9 values in the same microsecond 
share one key; `visitNotIn` flips that key and the exact `BitmapIndexResult` 
drops the whole bucket from `<>` / `NOT IN`.
   - Wrap the reader for those types so value predicates return `REMAIN` while 
`IS NULL` / `IS NOT NULL` still come from the index.
   - Mirrors #9654 (BSI); range-bitmap already rejects precision > 6 at build 
time.
   
   ### Tests
   
   - Added 
`BitmapFileIndexTest#testSubMicrosecondTimestampIndexAnswersNoValuePredicate` 
and `#testMicrosecondTimestampIndexStillAnswersValuePredicates`.
   - Added 
`DataEvolutionFileIndexTest#testSubMicrosecondTimestampBitmapMatchesUnindexed` 
(Parquet, ORC): indexed `executeFilter()` read vs. unindexed scan for `=`, 
`<>`, `IN`, `NOT IN`, `IS [NOT] NULL`, `AND`, `OR`.
   - Without the fix the unit test gets `BitmapIndexResult` instead of `REMAIN` 
and the table-level test fails on `<>` for both formats.
   - `mvn -pl paimon-common clean install` (JDK 11): BUILD SUCCESS, 0 failures; 
`DataEvolutionFileIndexTest` 32/32 in the reactor.
   


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