Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

ProtoSchemaConverter renders invalid schema for oneof in unwrap mode

Geschlossen
#3,039 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 4 Tagen

@sankalpsthakur arbeitet bereits daran.

Seit 18.9.2026.

  • #3799 von @sankalpsthakur — offen

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
java
Bereich
data

Rechercherichtung

Beginne in parquet-protobuf/src/main/java/org/apache/parquet/proto/ProtoSchemaConverter.java bei der Behandlung von unwrap repetition und prüfe anschließend das TestProto3.OneOfTestMessage-Fixture und seine Tests. Aktiviere die Validierung in parquet-protobuf/src/test/java/org/apache/parquet/proto/TestUtils.java und füge Testabdeckung für den unwrap mode hinzu. Als abgeschlossen gilt die Aufgabe, wenn die oneof-Konvertierung ein gültiges Schema erzeugt und der relevante read path getestet wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Type: bug
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;
}

https://github.com/apache/parquet-java/blob/73a4430af6c40f8eb246ad4911eb6d103c9a2abe/parquet-protobuf/src/test/resources/TestProto3.proto#L116

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

Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.6k
Ø Merge
5 T. 13 Std.
Gemergte PRs (30 T.)
31

Entwicklungsumgebung

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Hat eine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus apache/parquet-java

Alle Issues in apache/parquet-java

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.