Uh oh!
There was an error while loading. Please reload this page.
GH-3175: support protobuf library version 4 - #3352
Conversation
The getSyntax method on messageDescriptor.getFile() got removed in protobuf version 4. This change gets the syntax information directly from the proto, this works in protobuf v3 and v4. fixesapache#3175 see also apache#3182
| if ("editions".equals(syntax)) { | ||
| throw new UnsupportedOperationException("protocol buffers 'editions' not supported"); | ||
| } | ||
| boolean isProto2 = !"proto3".equals(syntax); |
There was a problem hiding this comment.
Wouldn't it be better to check the versions explicitly, and raise on anything else (for example editions, as above).
| booleanisProto2 = !"proto3".equals(syntax); | |
| booleanisProto2 = "proto2".equals(syntax); |
There was a problem hiding this comment.
I wanted to keep the logic the same as in the protobuf library (v4), they have this code:
Edition getEdition() {
switch (proto.getSyntax()) {
case "editions":
return proto.getEdition();
case "proto3":
return Edition.EDITION_PROTO3;
default:
return Edition.EDITION_PROTO2;
}
}
In my tests the value of syntax was an empty string (not "proto2") for proto2 files, this is why it just compares against "editions" and "proto3".
rahul-roy-glean
commented
Nov 18, 2025
Thanks for this! Any chances a new release would be prepared anytime soon for this ? |
Uh oh!
There was an error while loading. Please reload this page.
Fokko
commented
Nov 19, 2025
Hey @rahul-roy-glean That's a good point! I would recommend reaching out on the dev-list: https://lists.apache.org/list.html?dev@parquet.apache.org |
Rationale for this change
The getSyntax method on messageDescriptor.getFile() got removed in protobuf version 4.
It crashes when a user updates to protobuf 4 and uses the parquet library.
What changes are included in this PR?
This change gets the syntax information directly from the proto, this works in protobuf v3 and v4.
Are these changes tested?
yes, running the existing tests (with protobuf 3).
Are there any user-facing changes?
Closes#3175
Related to #3182