You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@avro.apache.org by GitBox <gi...@apache.org> on 2020/07/30 20:45:26 UTC

[GitHub] [avro] ypt edited a comment on pull request #317: Add Single Object Encoding Support to Ruby library

ypt edited a comment on pull request #317:
URL: https://github.com/apache/avro/pull/317#issuecomment-666683026


   Hi @jszmajda (or anyone else using the Ruby single object encoding implementation from this PR), are you using the output of the Ruby `Avro::Schema.single_object_schema_fingerprint` or `Avro::Schema..single_object_encoding_header` methods? And if yes, have you compared it to the output from other languages?
   
   I've compared the output of the [Ruby implementation](https://github.com/apache/avro/blob/release-1.10.0/lang/ruby/lib/avro/schema.rb#L180) to the [Java implementation](https://github.com/apache/avro/blob/release-1.10.0/lang/java/avro/src/main/java/org/apache/avro/SchemaNormalization.java#L64), and it seems like the output of the Ruby implementation of `single_object_schema_fingerprint` is reversed in comparison.
   
   I believe that this is caused by [unnecessarily reversing the array traversal here](https://github.com/apache/avro/blob/release-1.10.0/lang/ruby/lib/avro/schema.rb#L184) during the bit mask + shift operation that constructs the little endian fingerprint for the message header - as the mask operations are already grabbing the least significant bytes first.
   
   I've filed a Jira ticket here to track this:
   https://issues.apache.org/jira/browse/AVRO-2907
   
   Hoping to hear if there's more to the story here and get some guidance on how to proceed. I'm happy to submit a PR that updates the Ruby implementation if folks feel ok with that.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org