[Bug]: Hive lowercase conversion rejects repeated names in independent nested structs
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start with HiveSchemaUtil.changeFieldNameToLowercase and the TestHiveSchemaUtil tests mentioned in the issue. The issue describes both nested-struct collision handling and traversal through list elements and map keys/values; verify expected behavior for each while preserving IDs, docs, and requiredness. Done means independent structs may reuse lowercase field names, same-struct collisions still fail, and nested fields are converted; linked PR #4427 is already open.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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?
- Yes
Code of Conduct
- I agree to follow the Apache Code of Conduct.
- Lingua principale
- Java
- Stelle
- 1.2k
- Fork
- 398
- Merge medio
- 3g 11h
- PR unite (30g)
- 23
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/amoro
-
[CI] Core CI doesn't run for changes to amoro-format-lance (and amoro-web)Forse già presa @MarkAlex1234 l’ha presa 20 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
[Improvement]: Fix CVEs by upgrading Commons Compress and PostgreSQL JDBCForse già presa @smallyao l’ha presa 3 giorni fa. Apertatype:improvement
Difficoltà 2/5 1-3 ore Idoneità per principianti 57/100
I maintainer di solito rispondono entro 2 giorni
-
[Bug]: Overview top-table cache is not published atomicallyForse già presa @sivakumar-mahalingam l’ha presa 3 giorni fa. Apertatype:bug
apache/amoro#4462 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
type:bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
apache/amoro#4461 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
[Subtask]: Migrate OpenAPI SDK tests to JUnit 5Forse già presa @hutiefang76 l’ha presa 4 giorni fa. Aperta
apache/amoro#4459 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di apache/amoro
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
521xueweihan/HelloGitHub#4105 ·
-
Awaiting further input from submitter
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Regression in 5.9.0: CuratorCache fails with ClassCastException when the client is not a CuratorFrameworkBaseForse già presa @sftwnd l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno