[
https://issues.apache.org/jira/browse/THRIFT-511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12711432#action_12711432
]
Dan Kinder edited comment on THRIFT-511 at 5/20/09 5:42 PM:
------------------------------------------------------------
turns out ruby arrays hash by item, two different arrays with the same elements
have the same hashcode, but otherwise the hashes are very random-looking. Does
it seem like there would be a problem with this?:
def hash
field_values = []
each_field do |fid, field_info|
name = field_info[:name]
field_values << self.instance_variable_get("@#{name}")
end
field_values.hash
end
was (Author: dkinder):
turns out ruby arrays hash by item, two different arrays with the same
elements have the same hashcode, but otherwise the hashes are very
random-looking. Does it seem like there would be a problem with this?:
def hash
struct_fields.values.sort.hash
end
> Better performing hash method for generated structs
> ---------------------------------------------------
>
> Key: THRIFT-511
> URL: https://issues.apache.org/jira/browse/THRIFT-511
> Project: Thrift
> Issue Type: New Feature
> Components: Library (Ruby)
> Reporter: Bryan Duxbury
> Assignee: Dan Kinder
> Fix For: 0.2
>
>
> As discussed in THRIFT-231, ruby generated structs' hash code method just
> always returns zero. While this is semantically correct, it leads to hashes
> having O(n) performance instead of O(1), which is critical for some
> applications.
> We can either take the approach that the Java library uses (optionally
> produce complex hash function), or just generate a good hash all the time.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.