[ 
https://issues.apache.org/jira/browse/BEAM-12736?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kenneth Knowles reassigned BEAM-12736:
--------------------------------------

    Assignee: Brian Hulette  (was: Chris Hinds)

> Protobuf schema provider row functions break on camel-case field names
> ----------------------------------------------------------------------
>
>                 Key: BEAM-12736
>                 URL: https://issues.apache.org/jira/browse/BEAM-12736
>             Project: Beam
>          Issue Type: Bug
>          Components: extensions-java-protobuf
>    Affects Versions: 2.31.0
>            Reporter: Chris Hinds
>            Assignee: Brian Hulette
>            Priority: P2
>   Original Estimate: 24h
>          Time Spent: 2h 20m
>  Remaining Estimate: 21h 40m
>
> ProtoByteBuddyUtils.protoGetterName() _depends_ on field names being 
> snake-case. But the Protobuf style guide only _recommends_ that field names 
> are so defined.  
> Snake-case is not enforced by protoc and my team have always created proto 
> field names in camel-case (perhaps we didn't understand that protoc would 
> automatically rewrite field names for us). It is likely that we are not alone.
> If one calls a row function against a proto instance whose field were defined 
> in camel-case, an IllegalArgumentException results from the 
> ProtoByteBuddyUtils snake-case assumption.
> {code:java}
> SerializableFunction myRowFunction = new 
> ProtoMessageSchema().toRowFunction(new 
> TypeDescriptor<MyDataModel.ProtoPayload>() {});
> MyDataModel.ProtoPayload payload = …
> Row row = (Row) myRowFunction.apply(payload);
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to