hutiefang76 opened a new issue, #4425: URL: https://github.com/apache/amoro/issues/4425
## What happened? HiveSchemaUtil.changeFieldNameToLowercase uses one collision set for the entire schema. A valid schema with col1.X and col2.X throws an IllegalArgumentException although the fields belong to different structs. Struct fields nested inside lists/maps are also left unchanged. Expected behavior: Keep collision detection within each struct and visit list elements and map keys/values, retaining IDs, docs and requiredness. Same-struct collisions still fail. ## Affects Versions master at 061eb724e93592fe87cf44b61af34c1d799f5db6 ## Table formats / engines Mixed-Hive; AMS / Hive schema conversion ## How to reproduce Call HiveSchemaUtil.changeFieldNameToLowercase on two top-level struct columns, each containing a field named X. Expected: col1.x and col2.x. Actual: Multiple fields name will be changed to x. Also put a struct with ELEM inside a list: expected elem, actual ELEM. ## Relevant log output JDK 17: TestHiveSchemaUtil, 5 tests passed. The same tests against the original implementation produced 1 failure and 2 errors. Root ./mvnw -q -Pskip-dashboard-build validate passed. ## Are you willing to submit a PR? - [x] Yes ## Code of Conduct - [x] I agree to follow the Apache Code of Conduct. -- 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]
