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

Alexander Shigin commented on THRIFT-339:
-----------------------------------------

The Esteve's patch tries to fix two (THRIFT-105 and THRIFT-339) issue.

The fix of fastbinary protocol requires three argument instead of two. The 
change breaks all old-generated code if you use fastbinary even if you hasn't 
got any fields with negative tags.

The fix from THRIFT-105 (oh, it was six months ago) works fine with 
old-generated code, but it makes natural fields order: (-1, 0, 1, 2). Esteve 
uses order (0, 1, 2, -1).

> THRIFT-242 is incompatible with arguments with empty key fields
> ---------------------------------------------------------------
>
>                 Key: THRIFT-339
>                 URL: https://issues.apache.org/jira/browse/THRIFT-339
>             Project: Thrift
>          Issue Type: Bug
>          Components: Compiler (Python)
>            Reporter: Jonathan Ellis
>             Fix For: 0.1
>
>         Attachments: default+neg-field.diff, thrift-339-2.patch, 
> thrift-339-3.patch, thrift-339-4.patch, thrift-339-5.patch, 
> thrift-339-6.patch, thrift-339.patch, thrift-python-defaults-v2.patch, 
> thrift-python-defaults.patch
>
>
> Esteve's last change to how default values are stored broke stuff.  Here is a 
> quick example:
> {{
> service Test
> {
>   bool  get_slice(i32 start = -1),
> }
> }}
> generates
> {{
> class get_slice_args:
>   thrift_spec = None
>   def __init__(self, start=thrift_spec[-1][4],):
>     self.start = start
> }}
> which is obviously invalid.
> I'm not sure how thrift_spec is supposed to be populated here so I'm unsure 
> how to fix this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to