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]
