ProtoSchemaConverter renders invalid schema for oneof in unwrap mode
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza en parquet-protobuf/src/main/java/org/apache/parquet/proto/ProtoSchemaConverter.java, en el manejo de unwrap repetition, y luego revisa el fixture TestProto3.OneOfTestMessage y sus tests. Habilita la validación en parquet-protobuf/src/test/java/org/apache/parquet/proto/TestUtils.java y añade cobertura para el unwrap mode. Se considera terminado cuando la conversión de oneof produce un esquema válido y se prueba el read path relevante.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug, including details regarding any error messages, version, and platform.
When unwrap is enabled all fields of the TestProto3.OneOfTestMessage will be required.
message TestProto3.OneOfTestMessage {
required int32 first = 1;
required int32 second = 2;
}
This will never work but tests are missing for unwrap of TestProto3.OneOfTestMessage
The required repetition is added here:
https://github.com/apache/parquet-java/blob/73a4430af6c40f8eb246ad4911eb6d103c9a2abe/parquet-protobuf/src/main/java/org/apache/parquet/proto/ProtoSchemaConverter.java#L278
This could be caught early by adding withValidation(true) here:
https://github.com/apache/parquet-java/blob/73a4430af6c40f8eb246ad4911eb6d103c9a2abe/parquet-protobuf/src/test/java/org/apache/parquet/proto/TestUtils.java#L221
If validation is disabled it will fail when trying to read one of the non-existing fields in the oneof.
Is there really a need for setting all primitive fields in unwrap to required?
Component(s)
No response
- Lenguaje dominante
- Java
- Estrellas
- 3.1k
- Forks
- 1.6k
- Merge medio
- 6 d 44 min
- PR fusionados (30 d)
- 35
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/parquet-java
-
Type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/parquet-java#3792 ·
Los mantenedores suelen responder en 2 días
-
Make PageReader AutoCloseableAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/parquet-java#3767 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
apache/parquet-java#3695 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/parquet-java#3667 ·
Los mantenedores suelen responder en 2 días
-
Type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/parquet-java#3574 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de apache/parquet-java
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
ci-failure-cause test-failure
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
nextcloud/notes-android#3367 ·
Los mantenedores suelen responder en 1 día
-
Feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
MuntashirAkon/AppManager#2058 ·
-
SarifLogger: artifactLocation.uri is not properly encoded for file names containing '#', '?', or '%'Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
checkstyle/checkstyle#21721 ·
Los mantenedores suelen responder en 1 día