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

   ## Summary
   
   - `ParquetBloomRowGroupFilter.BloomEvalVisitor.eval` handled `LONG`, `TIME`, 
and `TIMESTAMP` in the `INT64` branch but omitted `TIMESTAMP_NANO`, so equality 
predicates on `timestamp_nano` columns fell through to `ROWS_MIGHT_MATCH` 
instead of using the bloom filter to skip row groups.
   - `timestamp_nano` is stored as `INT64` (`TypeToMessageType`), so the 
existing `longValue()` hash path applies unchanged.
   - Restores parity within the parquet module: `ParquetConversions` and the 
metrics and dictionary row group filters already treat `TIMESTAMP_NANO` the 
same as `TIMESTAMP`.
   
   ## Testing done
   
   - Added `TestBloomRowGroupFilter#testTimestampNanoEq` and 
`#testTimestamptzNanoEq`, mirroring the existing timestamp cases. Written 
values are stored as nanos to match the `equal()` literal, which converts 
micros to nanos (`Literals.LongLiteral.to`).
   - `./gradlew :iceberg-parquet:check` — passed.
   - `./gradlew :iceberg-parquet:revapi` — passed (private method, no API 
change).
   - Reverting the one-line fix makes both new tests fail, confirming they 
catch the bug.
   
   ---
   **AI Disclosure**
   - Model: Claude Opus 4.8
   - Platform/Tool: Claude Code
   - Human Oversight: fully reviewed
   - Prompt Summary: Find and fix a contribution candidate in the 
iceberg-parquet module; this fixes a missing TIMESTAMP_NANO case in the bloom 
filter row group evaluator.
   
   


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