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]

Reply via email to