[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-13 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13631241#comment-13631241
 ] 

Hudson commented on HIVE-4322:
--

Integrated in Hive-trunk-hadoop2 #157 (See 
[https://builds.apache.org/job/Hive-trunk-hadoop2/157/])
HIVE-4322: SkewedInfo in Metastore Thrift API cannot be deserialized in 
Python (Samuel Yuan via Gang Tim Liu) (Revision 1467491)

 Result = FAILURE
gangtimliu : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1467491
Files : 
* /hive/trunk/metastore/if/hive_metastore.thrift
* /hive/trunk/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
* /hive/trunk/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Database.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PrincipalPrivilegeSet.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SerDeInfo.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedValueList.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/StorageDescriptor.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
* /hive/trunk/metastore/src/gen/thrift/gen-php/metastore/Types.php
* /hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
* /hive/trunk/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
* 
/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
* 
/hive/trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FileSinkOperator.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
* 
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
* 
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPruner.java
* 
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ListBucketingCtx.java


> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
> Fix For: 0.11.0
>
> Attachments: HIVE-4322.HIVE-4322.HIVE-4322.HIVE-4322.D10203.1.patch
>
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more

[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-13 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13631186#comment-13631186
 ] 

Hudson commented on HIVE-4322:
--

Integrated in Hive-trunk-h0.21 #2062 (See 
[https://builds.apache.org/job/Hive-trunk-h0.21/2062/])
HIVE-4322: SkewedInfo in Metastore Thrift API cannot be deserialized in 
Python (Samuel Yuan via Gang Tim Liu) (Revision 1467491)

 Result = FAILURE
gangtimliu : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1467491
Files : 
* /hive/trunk/metastore/if/hive_metastore.thrift
* /hive/trunk/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
* /hive/trunk/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Database.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PrincipalPrivilegeSet.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SerDeInfo.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedValueList.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/StorageDescriptor.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java
* 
/hive/trunk/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
* /hive/trunk/metastore/src/gen/thrift/gen-php/metastore/Types.php
* /hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
* /hive/trunk/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
* 
/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
* 
/hive/trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FileSinkOperator.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
* 
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
* 
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPruner.java
* 
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
* /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ListBucketingCtx.java


> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
> Fix For: 0.11.0
>
> Attachments: HIVE-4322.HIVE-4322.HIVE-4322.HIVE-4322.D10203.1.patch
>
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more i

[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-12 Thread Gang Tim Liu (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630689#comment-13630689
 ] 

Gang Tim Liu commented on HIVE-4322:


Committed. thank Samuel Yuan.

> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
> Attachments: HIVE-4322.HIVE-4322.HIVE-4322.HIVE-4322.D10203.1.patch
>
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
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


[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-12 Thread Phabricator (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630605#comment-13630605
 ] 

Phabricator commented on HIVE-4322:
---

gangtimliu has accepted the revision "HIVE-4322 [jira] SkewedInfo in Metastore 
Thrift API cannot be deserialized in Python".

  thanks

REVISION DETAIL
  https://reviews.facebook.net/D10203

BRANCH
  svn

ARCANIST PROJECT
  hive

To: gangtimliu, sxyuan
Cc: kevinwilfong, JIRA


> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
> Attachments: HIVE-4322.HIVE-4322.HIVE-4322.HIVE-4322.D10203.1.patch
>
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
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


[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-12 Thread Phabricator (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630553#comment-13630553
 ] 

Phabricator commented on HIVE-4322:
---

sxyuan has commented on the revision "HIVE-4322 [jira] SkewedInfo in Metastore 
Thrift API cannot be deserialized in Python".

INLINE COMMENTS
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:1127 
Just fixed the name of the function.

REVISION DETAIL
  https://reviews.facebook.net/D10203

To: gangtimliu, sxyuan
Cc: kevinwilfong, JIRA


> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
> Attachments: HIVE-4322.HIVE-4322.HIVE-4322.HIVE-4322.D10203.1.patch
>
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
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


[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-12 Thread Phabricator (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630549#comment-13630549
 ] 

Phabricator commented on HIVE-4322:
---

gangtimliu has commented on the revision "HIVE-4322 [jira] SkewedInfo in 
Metastore Thrift API cannot be deserialized in Python".

  code lgtm.

  looking at hadoop 23 tests.

INLINE COMMENTS
  metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java:1127 
what's difference in this line? thanks

REVISION DETAIL
  https://reviews.facebook.net/D10203

To: gangtimliu, sxyuan
Cc: kevinwilfong, JIRA


> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
> Attachments: HIVE-4322.HIVE-4322.HIVE-4322.HIVE-4322.D10203.1.patch
>
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
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


[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-12 Thread Gang Tim Liu (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630546#comment-13630546
 ] 

Gang Tim Liu commented on HIVE-4322:


+1 after test passes

> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
> Attachments: HIVE-4322.HIVE-4322.HIVE-4322.HIVE-4322.D10203.1.patch
>
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
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


[jira] [Commented] (HIVE-4322) SkewedInfo in Metastore Thrift API cannot be deserialized in Python

2013-04-09 Thread Gang Tim Liu (JIRA)

[ 
https://issues.apache.org/jira/browse/HIVE-4322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13627275#comment-13627275
 ] 

Gang Tim Liu commented on HIVE-4322:


[~sxyuan] Good write up. thank you for working on it.

> SkewedInfo in Metastore Thrift API cannot be deserialized in Python
> ---
>
> Key: HIVE-4322
> URL: https://issues.apache.org/jira/browse/HIVE-4322
> Project: Hive
>  Issue Type: Bug
>  Components: Metastore, Thrift API
>Affects Versions: 0.11.0
>Reporter: Samuel Yuan
>Assignee: Samuel Yuan
>Priority: Minor
>
> The Thrift-generated Python code that deserializes Thrift objects fails 
> whenever a complex type is used as a map key, because by default mutable 
> Python objects such as lists do not have a hash function. See 
> https://issues.apache.org/jira/browse/THRIFT-162 for related discussion.
> The SkewedInfo struct contains a map which uses a list as a key, breaking the 
> Python Thrift interface. It is not possible to specify the mapping from 
> Thrift types to Python types, or otherwise we could map Thrift lists to 
> Python tuples. Instead, the proposed workaround wraps the list inside a new 
> struct. This alone does not accomplish anything, but allows Python clients to 
> define a hash function for the struct class, e.g.:
> def f(object):
> return hash(tuple(object.skewedValueList))
> SkewedValueList.__hash__ = f
> In practice a more efficient hash might be defined that does not involve 
> copying the list. The advantage of wrapping the list inside a struct is that 
> the client does not have to define the hash on the list itself, which would 
> change the behaviour of lists everywhere else in the code.

--
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