pallavithegod opened a new pull request, #4445: URL: https://github.com/apache/amoro/pull/4445
## Why are the changes needed? Close #1604. A string event-time field can inherit Iceberg's default `truncate(16)` metrics mode. Timestamp strings such as `2026-10-16 12:34:56` need more than 16 characters, so a truncated upper bound cannot reliably drive watermark calculation. Default the configured string event-time column to full metrics in `BasicUnkeyedTable.properties()`, after catalog properties are merged. Mixed-table writers consume these effective properties for both newly created and existing tables. This covers the table-loading path rather than only internal-catalog creation. Explicit per-column metrics settings remain authoritative, and unrelated columns keep their existing behavior. ## Brief change log - Supply `write.metadata.metrics.column.<event-time-field>=full` when the event-time column is a string and has no explicit column override. - Leave timestamp-typed, absent, and unknown fields unchanged. - Avoid changing the source property map or persisted metadata. - Document the effective-writer scope: existing file bounds are not repaired, and writers accessing the underlying Iceberg table directly must configure metrics separately. - Add real Parquet/ORC bounds checks, Avro writer configuration coverage, catalog defaults, and explicit override cases. ## How was this patch tested? - [x] Added new unit test cases that verify the changes (`TestEventTimeMetrics`, 12 cases). - [x] Verified existing unit tests pass locally (`TestWatermarkGenerator` and `TestTableWatermark`); 41 selected tests passed in total. - [ ] Tested manually in local environment. Using Java 11 and Maven 3.9.11: - `./mvnw spotless:apply checkstyle:check` passed. - `./mvnw test -pl amoro-format-iceberg -am -Dtest=TestEventTimeMetrics,TestWatermarkGenerator,TestTableWatermark -Dsurefire.failIfNoSpecifiedTests=false` passed in Linux. - The 12 new cases also passed on Windows. - Against unmodified master, the new suite had four failures and no errors. -- 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]
