> 1) How are ascii_fingerprint and binary_fingerprint intended to be used?
I think it was only used by the DenseProtocol.  I'm not aware of
anything else that ever used it, but I could be forgetting something.
Probably not something very critical, though (maybe like the Java
Serialization ID or something like that).

> 2) Why do their definitions change (the contents change) sometimes when 
> nothing else in the generated C++ source file changes?
Is it possible that there was a change in one of the included Thrift
files?  The fingerprint for a structure depends not only on the fields
in the structure, but also any fields in a structure that it includes.

> 3) Do we need to care about their values? We have client and server code out 
> in the world that contains one definition and we will be releasing new 
> versions in the near future. Are there backward compatibility issues?
I don't think so.  Thrift was designed to make it possible to add and
remove fields.

--David


On 11/28/2011 12:02 PM, Rush Manbert wrote:
> I asked this question more than 18 months ago on the users list and never got 
> an answer, so I'm trying again here.
> 
> We check in our Thrift IDL (*.thrift) files and when we do builds on the Mac, 
> those files are read and the code for different languages is generated. We 
> also check in the generated code as required, because we don't do code 
> generation in our Windows dev environment.
> 
> We find that sometimes our SVN client wants us to check in a generated C++ 
> source file, but all that has changed is the definition of ascii_fingerprint 
> and binary_fingerprint. This makes us a little nervous.
> 
> I have grepped through the C++ library sources that we use (we are down rev 
> because we use my Windows patch: 
> https://issues.apache.org/jira/browse/THRIFT-591 ) and I don't find 
> "_fingerprint" used anywhere in the code. 
> 
> I also got the 0.7.0 sources and grepped them for "_fingerprint". The only 
> usage appears to be in DenseProtoTest.cpp. Again, I see no usage at all in 
> the library C++ sources.
> 
> In both versions, the Dense Protocol uses TypeSpec, but we don't use that 
> protocol.
> 
> I'm hoping someone can answer these questions for me:
> 
> 1) How are ascii_fingerprint and binary_fingerprint intended to be used?
> 
> 2) Why do their definitions change (the contents change) sometimes when 
> nothing else in the generated C++ source file changes?
> 
> 3) Do we need to care about their values? We have client and server code out 
> in the world that contains one definition and we will be releasing new 
> versions in the near future. Are there backward compatibility issues?
> 
> Thanks,
> Rush

Reply via email to