hutiefang76 opened a new issue, #4420:
URL: https://github.com/apache/amoro/issues/4420
### What happened?
`HivePartitionUtil.buildPartitionData` joins raw Hive values into an Iceberg
partition path. A string value containing `/`, such as `2024/01`, becomes an
extra path segment and cannot be converted back to the intended partition.
### Affects Versions
master at 061eb724e93592fe87cf44b61af34c1d799f5db6 (0.9-SNAPSHOT). No claim
about untested releases.
### What table formats are you seeing the problem on?
Mixed-Hive.
### What engines are you seeing the problem on?
AMS table-operation history, using the Spark DDL formatter.
### How to reproduce
Build an identity string partition spec for `dt`, then call:
`HivePartitionUtil.buildPartitionData(Collections.singletonList("2024/01"),
spec)`.
Expected: a StructLike whose first field is exactly `2024/01`.
Actual: the generated `dt=2024/01` path is treated as two partition
segments. This method is used by Hive metadata synchronization and Hive-table
upgrade code. No metastore is needed for this reproduction.
### Relevant log output
This is a deterministic metadata/DDL conversion error, reproduced without a
running cluster. The before/expected values are shown above.
### Anything else
Historical PR #353 fixed the separators between multiple partition fields.
This report concerns a separator inside one raw value, which remains unhandled
on current master. A small fix and regression tests are ready.
### Are you willing to submit a PR?
- [x] Yes I am willing to submit a PR.
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct.
AI assistance: DeepSeek and Codex assisted reproduction, implementation,
tests and this description.
--
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]