[ https://issues.apache.org/jira/browse/HIVE-4433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13643463#comment-13643463 ]
Carl Steinbach commented on HIVE-4433: -------------------------------------- HIVE-4322 added a SkewedValueList structure to the Metastore Thrift IDL, along with a map field where this structure is used as a key: {noformat} // Workaround for HIVE-4322struct SkewedValueList { 1: list<string> skewedValueList } // this object holds all the information about skewed table struct SkewedInfo { 1: list<string> skewedColNames, // skewed column names 2: list<list<string>> skewedColValues, //skewed values 3: map<SkewedValueList, string> skewedColValueLocationMaps, //skewed value to location mappings } {noformat} It turns out that this change breaks the C++ Thrift bindings (and possibly also the bindings for other languages). According to the Thrift documentation [here|http://thrift.apache.org/docs/types/] it's a really bad idea to use a struct or container type as a map key: {quote} N.B.: For maximal compatibility, the key type for map should be a basic type rather than a struct or container type. There are some languages which do not support more complex key types in their native map types. In addition the JSON protocol only supports key types that are base types. {quote} I haven't had much time to look into this, but my hunch is that we probably need to backout HIVE-4322. > Fix C++ Thrift bindings broken in HIVE-4322 > ------------------------------------------- > > Key: HIVE-4433 > URL: https://issues.apache.org/jira/browse/HIVE-4433 > Project: Hive > Issue Type: Bug > Components: Metastore, Thrift API > Affects Versions: 0.11.0 > Reporter: Carl Steinbach > -- 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