[ 
https://issues.apache.org/jira/browse/THRIFT-2628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14072971#comment-14072971
 ] 

alisdair sullivan commented on THRIFT-2628:
-------------------------------------------

this patch preserves case in struct and exception field names and adds a test 
suite to check regressions in generated code

this does break backwards compatibility in some cases (where field names were 
defined in .thrift files with capitals and generated in erlang records with 
lowercase names) but as far as i can tell the previous behavior (of modifying 
names) was undocumented and is contrary to expectation

note that the test suite is descriptive not prescriptive and contains a number 
of possible bugs that are outside the scope of this patch. they'll be addressed 
seperately

> erlang: struct member name conflicts due to lowercased names
> ------------------------------------------------------------
>
>                 Key: THRIFT-2628
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2628
>             Project: Thrift
>          Issue Type: Bug
>          Components: Erlang - Compiler, Erlang - Library
>            Reporter: alisdair sullivan
>              Labels: erlang
>
> the erlang backend generates records to represent structs. instead of the 
> unique sequential id they use the struct field name as the record keys. 
> records in erlang do not support repeated keys so generated erlang modules do 
> not compile
> the most obvious fix is to refuse to generate code from structs with repeated 
> keys but this means the erlang backend is not capable of handling all valid 
> structs
> the easiest fix is to switch structs to use the unique sequential ids as the 
> keys of the record but this breaks backwards compatibility and probably 
> necessitates generating helper functions to retrieve fields by name
> also possible is switching to an erlang data structure that supports repeated 
> keys but this would also require breaking backwards compatibility



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to