litiliu opened a new pull request, #3639: URL: https://github.com/apache/fluss/pull/3639
<!-- Generated-by: OpenAI Codex (GPT-5) following [the guidelines](https://github.com/apache/fluss/blob/main/AGENTS.md) --> ### Purpose Linked issue: close #3638 Iceberg lake tiering constructs partition keys from the current Iceberg partition spec, but fills them with partition and bucket values produced according to the Fluss table metadata. If an external client evolves the Iceberg partition spec, a newly created writer can silently attach incorrect partition metadata to data files. This change validates the current Iceberg partition spec before the tiering writer is created and fails fast when the source columns, field order, transforms, or transform parameters are incompatible with the Fluss table. ### Brief change log - Extract the Fluss-to-Iceberg partition-spec construction into a shared internal utility used by both automatic Iceberg table creation and writer validation. - Add a partition-spec validator that compares the expected and current Iceberg specs by field order, source field ID, and transform, including parameters such as bucket count. - Run the validation before creating the Iceberg task writer and throw a descriptive, non-retriable `InvalidTableException` on mismatch. - Add regression coverage for an externally evolved bucket transform and align the existing tiering test metadata with the tested table definitions. ### Tests - `mvn -pl fluss-lake/fluss-lake-iceberg verify` - 108 unit tests passed. - 28 integration tests passed. ### API and Format No public API or storage-format changes. The shared partition-spec utility is marked `@Internal`, and the existing Iceberg table mapping remains unchanged. ### Documentation No documentation changes. This is a correctness fix with no new user-facing configuration. ### Generative AI disclosure Yes. Generated with OpenAI Codex and reviewed by the human developer. -- 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]
