[
https://issues.apache.org/jira/browse/THRIFT-1772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13532518#comment-13532518
]
Avi Flamholz commented on THRIFT-1772:
--------------------------------------
Henrique --
I have a patch on my machine that fixes the problem for all the Python
protocols except the "fastbinary" one. Fastbinary sidestep all the Python
code and I'm not sure how to access the type information in the fastbinary
information.
Any advice about what should be done here? Should I send the patch? Can
someone help me with the fastbinary part?
Avi
> Serialization does not check types of embedded structures.
> ----------------------------------------------------------
>
> Key: THRIFT-1772
> URL: https://issues.apache.org/jira/browse/THRIFT-1772
> Project: Thrift
> Issue Type: Bug
> Components: Python - Library
> Affects Versions: 0.8, 0.9
> Reporter: Avi Flamholz
>
> Consider the following struct definitions:
> struct Point {
> 1: required double x;
> 2: required double y;
> }
> struct Review {
> 1: required i32 rating;
> 2: optional string text;
> }
> struct Place {
> 1: required string name;
> 2: required Point location;
> 3: optional Review review;
> }
> If I create a Place object and set the location field to a Review, it will
> serialize no problem.
> place = Place(name="avi's place", location=Review(rating=1.0))
> transportOut = TTransport.TMemoryBuffer()
> protocolOut = TBinaryProtocol.TBinaryProtocol(transportOut)
> place.write(protocolOut)
> serialized = transportOut.getvalue()
> This is confusing because if I set an i32 field to a string serialization
> does raise an error.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira