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

Diwaker Gupta commented on THRIFT-1528:
---------------------------------------

As with most things, there's a tradeoff here. For protocols where most fields 
are marked as optional and have default values, *and* you have tight control 
(and versioning) of the end points, it will be a lot more efficient to omit 
serializing such fields and have the end points populate them with defaults 
during deserialization.

Providing *binary* compatibility however, is simpler if we serialize default 
values for optional fields. For instance, what happens if the client does set a 
field but the value is the same as the default?

At the end of the day it's more important for Thrift language bindings to be 
mutually consistent. Will, do you think this is worth discussing on thrift-dev?
                
> Iconsistency in optional fields between Java/C# and python
> ----------------------------------------------------------
>
>                 Key: THRIFT-1528
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1528
>             Project: Thrift
>          Issue Type: Bug
>          Components: Python - Compiler
>    Affects Versions: 0.8
>            Reporter: Stefan Gmeiner
>            Priority: Minor
>
> If a struct contains optional fields with default values the generated python 
> code serialize differently than Java or C# code.
> In Java or C# optional fields are only serialized if a field was set by the 
> client. If not the field is omited during serialization. This is possible 
> because C#/Java maintains for each field a 'isset'-boolean which records if a 
> field was set or not.
> However the generated python code does not have such a 'isset'-structure. It 
> writes every field which is not equal None. As the constructor initialize the 
> optional fields with their default value, these fields are written whether 
> they are set or not.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to