Index: metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java =================================================================== --- metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java (revision 1478985) +++ metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java (working copy) @@ -53,7 +53,6 @@ import org.apache.hadoop.hive.metastore.api.Partition; import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.SkewedInfo; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; import org.apache.hadoop.hive.metastore.api.StringColumnStatsData; import org.apache.hadoop.hive.metastore.api.Table; @@ -186,8 +185,8 @@ skewInfor.setSkewedColNames(Arrays.asList("name")); List skv = Arrays.asList("1"); skewInfor.setSkewedColValues(Arrays.asList(skv)); - Map scvlm = new HashMap(); - scvlm.put(new SkewedValueList(skv), "location1"); + Map, String> scvlm = new HashMap, String>(); + scvlm.put(skv, "location1"); skewInfor.setSkewedColValueLocationMaps(scvlm); sd.setSkewedInfo(skewInfor); Index: metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java =================================================================== --- metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (revision 1478985) +++ metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (working copy) @@ -85,7 +85,6 @@ import org.apache.hadoop.hive.metastore.api.Role; import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.SkewedInfo; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; import org.apache.hadoop.hive.metastore.api.StringColumnStatsData; import org.apache.hadoop.hive.metastore.api.Table; @@ -1055,13 +1054,13 @@ * @param mMap * @return */ - private Map covertToSkewedMap(Map mMap) { - Map map = null; + private Map, String> covertToSkewedMap(Map mMap) { + Map, String> map = null; if (mMap != null) { - map = new HashMap(mMap.size()); + map = new HashMap, String>(mMap.size()); Set keys = mMap.keySet(); for (MStringList key : keys) { - map.put(new SkewedValueList(new ArrayList(key.getInternalList())), mMap.get(key)); + map.put(new ArrayList(key.getInternalList()), mMap.get(key)); } } return map; @@ -1072,12 +1071,13 @@ * @param mMap * @return */ - private Map convertToMapMStringList(Map mMap) { + private Map covertToMapMStringList(Map, String> mMap) { Map map = null; if (mMap != null) { map = new HashMap(mMap.size()); - for (Map.Entry entry : mMap.entrySet()) { - map.put(new MStringList(entry.getKey().getSkewedValueList()), entry.getValue()); + Set> keys = mMap.keySet(); + for (List key : keys) { + map.put(new MStringList(key), mMap.get(key)); } } return map; @@ -1124,7 +1124,7 @@ : sd.getSkewedInfo().getSkewedColNames(), convertToMStringLists((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo() .getSkewedColValues()), - convertToMapMStringList((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo() + covertToMapMStringList((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo() .getSkewedColValueLocationMaps()), sd.isStoredAsSubDirectories()); } Index: metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py =================================================================== --- metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (revision 1478985) +++ metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (working copy) @@ -1232,74 +1232,6 @@ def __ne__(self, other): return not (self == other) -class SkewedValueList: - """ - Attributes: - - skewedValueList - """ - - thrift_spec = ( - None, # 0 - (1, TType.LIST, 'skewedValueList', (TType.STRING,None), None, ), # 1 - ) - - def __init__(self, skewedValueList=None,): - self.skewedValueList = skewedValueList - - def read(self, iprot): - if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None: - fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec)) - return - iprot.readStructBegin() - while True: - (fname, ftype, fid) = iprot.readFieldBegin() - if ftype == TType.STOP: - break - if fid == 1: - if ftype == TType.LIST: - self.skewedValueList = [] - (_etype90, _size87) = iprot.readListBegin() - for _i91 in xrange(_size87): - _elem92 = iprot.readString(); - self.skewedValueList.append(_elem92) - iprot.readListEnd() - else: - iprot.skip(ftype) - else: - iprot.skip(ftype) - iprot.readFieldEnd() - iprot.readStructEnd() - - def write(self, oprot): - if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None: - oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec))) - return - oprot.writeStructBegin('SkewedValueList') - if self.skewedValueList is not None: - oprot.writeFieldBegin('skewedValueList', TType.LIST, 1) - oprot.writeListBegin(TType.STRING, len(self.skewedValueList)) - for iter93 in self.skewedValueList: - oprot.writeString(iter93) - oprot.writeListEnd() - oprot.writeFieldEnd() - oprot.writeFieldStop() - oprot.writeStructEnd() - - def validate(self): - return - - - def __repr__(self): - L = ['%s=%r' % (key, value) - for key, value in self.__dict__.iteritems()] - return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) - - def __eq__(self, other): - return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ - - def __ne__(self, other): - return not (self == other) - class SkewedInfo: """ Attributes: @@ -1312,7 +1244,7 @@ None, # 0 (1, TType.LIST, 'skewedColNames', (TType.STRING,None), None, ), # 1 (2, TType.LIST, 'skewedColValues', (TType.LIST,(TType.STRING,None)), None, ), # 2 - (3, TType.MAP, 'skewedColValueLocationMaps', (TType.STRUCT,(SkewedValueList, SkewedValueList.thrift_spec),TType.STRING,None), None, ), # 3 + (3, TType.MAP, 'skewedColValueLocationMaps', (TType.LIST,(TType.STRING,None),TType.STRING,None), None, ), # 3 ) def __init__(self, skewedColNames=None, skewedColValues=None, skewedColValueLocationMaps=None,): @@ -1332,37 +1264,41 @@ if fid == 1: if ftype == TType.LIST: self.skewedColNames = [] - (_etype97, _size94) = iprot.readListBegin() - for _i98 in xrange(_size94): - _elem99 = iprot.readString(); - self.skewedColNames.append(_elem99) + (_etype90, _size87) = iprot.readListBegin() + for _i91 in xrange(_size87): + _elem92 = iprot.readString(); + self.skewedColNames.append(_elem92) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 2: if ftype == TType.LIST: self.skewedColValues = [] - (_etype103, _size100) = iprot.readListBegin() - for _i104 in xrange(_size100): - _elem105 = [] - (_etype109, _size106) = iprot.readListBegin() - for _i110 in xrange(_size106): - _elem111 = iprot.readString(); - _elem105.append(_elem111) + (_etype96, _size93) = iprot.readListBegin() + for _i97 in xrange(_size93): + _elem98 = [] + (_etype102, _size99) = iprot.readListBegin() + for _i103 in xrange(_size99): + _elem104 = iprot.readString(); + _elem98.append(_elem104) iprot.readListEnd() - self.skewedColValues.append(_elem105) + self.skewedColValues.append(_elem98) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 3: if ftype == TType.MAP: self.skewedColValueLocationMaps = {} - (_ktype113, _vtype114, _size112 ) = iprot.readMapBegin() - for _i116 in xrange(_size112): - _key117 = SkewedValueList() - _key117.read(iprot) - _val118 = iprot.readString(); - self.skewedColValueLocationMaps[_key117] = _val118 + (_ktype106, _vtype107, _size105 ) = iprot.readMapBegin() + for _i109 in xrange(_size105): + _key110 = [] + (_etype115, _size112) = iprot.readListBegin() + for _i116 in xrange(_size112): + _elem117 = iprot.readString(); + _key110.append(_elem117) + iprot.readListEnd() + _val111 = iprot.readString(); + self.skewedColValueLocationMaps[_key110] = _val111 iprot.readMapEnd() else: iprot.skip(ftype) @@ -1379,26 +1315,29 @@ if self.skewedColNames is not None: oprot.writeFieldBegin('skewedColNames', TType.LIST, 1) oprot.writeListBegin(TType.STRING, len(self.skewedColNames)) - for iter119 in self.skewedColNames: - oprot.writeString(iter119) + for iter118 in self.skewedColNames: + oprot.writeString(iter118) oprot.writeListEnd() oprot.writeFieldEnd() if self.skewedColValues is not None: oprot.writeFieldBegin('skewedColValues', TType.LIST, 2) oprot.writeListBegin(TType.LIST, len(self.skewedColValues)) - for iter120 in self.skewedColValues: - oprot.writeListBegin(TType.STRING, len(iter120)) - for iter121 in iter120: - oprot.writeString(iter121) + for iter119 in self.skewedColValues: + oprot.writeListBegin(TType.STRING, len(iter119)) + for iter120 in iter119: + oprot.writeString(iter120) oprot.writeListEnd() oprot.writeListEnd() oprot.writeFieldEnd() if self.skewedColValueLocationMaps is not None: oprot.writeFieldBegin('skewedColValueLocationMaps', TType.MAP, 3) - oprot.writeMapBegin(TType.STRUCT, TType.STRING, len(self.skewedColValueLocationMaps)) - for kiter122,viter123 in self.skewedColValueLocationMaps.items(): - kiter122.write(oprot) - oprot.writeString(viter123) + oprot.writeMapBegin(TType.LIST, TType.STRING, len(self.skewedColValueLocationMaps)) + for kiter121,viter122 in self.skewedColValueLocationMaps.items(): + oprot.writeListBegin(TType.STRING, len(kiter121)) + for iter123 in kiter121: + oprot.writeString(iter123) + oprot.writeListEnd() + oprot.writeString(viter122) oprot.writeMapEnd() oprot.writeFieldEnd() oprot.writeFieldStop() Index: metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp =================================================================== --- metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp (revision 1478985) +++ metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp (working copy) @@ -1404,10 +1404,10 @@ swap(a.__isset, b.__isset); } -const char* SkewedValueList::ascii_fingerprint = "ACE4F644F0FDD289DDC4EE5B83BC13C0"; -const uint8_t SkewedValueList::binary_fingerprint[16] = {0xAC,0xE4,0xF6,0x44,0xF0,0xFD,0xD2,0x89,0xDD,0xC4,0xEE,0x5B,0x83,0xBC,0x13,0xC0}; +const char* SkewedInfo::ascii_fingerprint = "4BF2ED84BC3C3EB297A2AE2FA8427EB1"; +const uint8_t SkewedInfo::binary_fingerprint[16] = {0x4B,0xF2,0xED,0x84,0xBC,0x3C,0x3E,0xB2,0x97,0xA2,0xAE,0x2F,0xA8,0x42,0x7E,0xB1}; -uint32_t SkewedValueList::read(::apache::thrift::protocol::TProtocol* iprot) { +uint32_t SkewedInfo::read(::apache::thrift::protocol::TProtocol* iprot) { uint32_t xfer = 0; std::string fname; @@ -1430,100 +1430,18 @@ case 1: if (ftype == ::apache::thrift::protocol::T_LIST) { { - this->skewedValueList.clear(); + this->skewedColNames.clear(); uint32_t _size79; ::apache::thrift::protocol::TType _etype82; xfer += iprot->readListBegin(_etype82, _size79); - this->skewedValueList.resize(_size79); + this->skewedColNames.resize(_size79); uint32_t _i83; for (_i83 = 0; _i83 < _size79; ++_i83) { - xfer += iprot->readString(this->skewedValueList[_i83]); + xfer += iprot->readString(this->skewedColNames[_i83]); } xfer += iprot->readListEnd(); } - this->__isset.skewedValueList = true; - } else { - xfer += iprot->skip(ftype); - } - break; - default: - xfer += iprot->skip(ftype); - break; - } - xfer += iprot->readFieldEnd(); - } - - xfer += iprot->readStructEnd(); - - return xfer; -} - -uint32_t SkewedValueList::write(::apache::thrift::protocol::TProtocol* oprot) const { - uint32_t xfer = 0; - xfer += oprot->writeStructBegin("SkewedValueList"); - - xfer += oprot->writeFieldBegin("skewedValueList", ::apache::thrift::protocol::T_LIST, 1); - { - xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->skewedValueList.size())); - std::vector ::const_iterator _iter84; - for (_iter84 = this->skewedValueList.begin(); _iter84 != this->skewedValueList.end(); ++_iter84) - { - xfer += oprot->writeString((*_iter84)); - } - xfer += oprot->writeListEnd(); - } - xfer += oprot->writeFieldEnd(); - - xfer += oprot->writeFieldStop(); - xfer += oprot->writeStructEnd(); - return xfer; -} - -void swap(SkewedValueList &a, SkewedValueList &b) { - using ::std::swap; - swap(a.skewedValueList, b.skewedValueList); - swap(a.__isset, b.__isset); -} - -const char* SkewedInfo::ascii_fingerprint = "F4A067072461B8071E4F5A6BE5276FC0"; -const uint8_t SkewedInfo::binary_fingerprint[16] = {0xF4,0xA0,0x67,0x07,0x24,0x61,0xB8,0x07,0x1E,0x4F,0x5A,0x6B,0xE5,0x27,0x6F,0xC0}; - -uint32_t SkewedInfo::read(::apache::thrift::protocol::TProtocol* iprot) { - - uint32_t xfer = 0; - std::string fname; - ::apache::thrift::protocol::TType ftype; - int16_t fid; - - xfer += iprot->readStructBegin(fname); - - using ::apache::thrift::protocol::TProtocolException; - - - while (true) - { - xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::apache::thrift::protocol::T_STOP) { - break; - } - switch (fid) - { - case 1: - if (ftype == ::apache::thrift::protocol::T_LIST) { - { - this->skewedColNames.clear(); - uint32_t _size85; - ::apache::thrift::protocol::TType _etype88; - xfer += iprot->readListBegin(_etype88, _size85); - this->skewedColNames.resize(_size85); - uint32_t _i89; - for (_i89 = 0; _i89 < _size85; ++_i89) - { - xfer += iprot->readString(this->skewedColNames[_i89]); - } - xfer += iprot->readListEnd(); - } this->__isset.skewedColNames = true; } else { xfer += iprot->skip(ftype); @@ -1533,23 +1451,23 @@ if (ftype == ::apache::thrift::protocol::T_LIST) { { this->skewedColValues.clear(); - uint32_t _size90; - ::apache::thrift::protocol::TType _etype93; - xfer += iprot->readListBegin(_etype93, _size90); - this->skewedColValues.resize(_size90); - uint32_t _i94; - for (_i94 = 0; _i94 < _size90; ++_i94) + uint32_t _size84; + ::apache::thrift::protocol::TType _etype87; + xfer += iprot->readListBegin(_etype87, _size84); + this->skewedColValues.resize(_size84); + uint32_t _i88; + for (_i88 = 0; _i88 < _size84; ++_i88) { { - this->skewedColValues[_i94].clear(); - uint32_t _size95; - ::apache::thrift::protocol::TType _etype98; - xfer += iprot->readListBegin(_etype98, _size95); - this->skewedColValues[_i94].resize(_size95); - uint32_t _i99; - for (_i99 = 0; _i99 < _size95; ++_i99) + this->skewedColValues[_i88].clear(); + uint32_t _size89; + ::apache::thrift::protocol::TType _etype92; + xfer += iprot->readListBegin(_etype92, _size89); + this->skewedColValues[_i88].resize(_size89); + uint32_t _i93; + for (_i93 = 0; _i93 < _size89; ++_i93) { - xfer += iprot->readString(this->skewedColValues[_i94][_i99]); + xfer += iprot->readString(this->skewedColValues[_i88][_i93]); } xfer += iprot->readListEnd(); } @@ -1565,17 +1483,29 @@ if (ftype == ::apache::thrift::protocol::T_MAP) { { this->skewedColValueLocationMaps.clear(); - uint32_t _size100; - ::apache::thrift::protocol::TType _ktype101; - ::apache::thrift::protocol::TType _vtype102; - xfer += iprot->readMapBegin(_ktype101, _vtype102, _size100); - uint32_t _i104; - for (_i104 = 0; _i104 < _size100; ++_i104) + uint32_t _size94; + ::apache::thrift::protocol::TType _ktype95; + ::apache::thrift::protocol::TType _vtype96; + xfer += iprot->readMapBegin(_ktype95, _vtype96, _size94); + uint32_t _i98; + for (_i98 = 0; _i98 < _size94; ++_i98) { - SkewedValueList _key105; - xfer += _key105.read(iprot); - std::string& _val106 = this->skewedColValueLocationMaps[_key105]; - xfer += iprot->readString(_val106); + std::vector _key99; + { + _key99.clear(); + uint32_t _size101; + ::apache::thrift::protocol::TType _etype104; + xfer += iprot->readListBegin(_etype104, _size101); + _key99.resize(_size101); + uint32_t _i105; + for (_i105 = 0; _i105 < _size101; ++_i105) + { + xfer += iprot->readString(_key99[_i105]); + } + xfer += iprot->readListEnd(); + } + std::string& _val100 = this->skewedColValueLocationMaps[_key99]; + xfer += iprot->readString(_val100); } xfer += iprot->readMapEnd(); } @@ -1603,10 +1533,10 @@ xfer += oprot->writeFieldBegin("skewedColNames", ::apache::thrift::protocol::T_LIST, 1); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->skewedColNames.size())); - std::vector ::const_iterator _iter107; - for (_iter107 = this->skewedColNames.begin(); _iter107 != this->skewedColNames.end(); ++_iter107) + std::vector ::const_iterator _iter106; + for (_iter106 = this->skewedColNames.begin(); _iter106 != this->skewedColNames.end(); ++_iter106) { - xfer += oprot->writeString((*_iter107)); + xfer += oprot->writeString((*_iter106)); } xfer += oprot->writeListEnd(); } @@ -1615,15 +1545,15 @@ xfer += oprot->writeFieldBegin("skewedColValues", ::apache::thrift::protocol::T_LIST, 2); { xfer += oprot->writeListBegin(::apache::thrift::protocol::T_LIST, static_cast(this->skewedColValues.size())); - std::vector > ::const_iterator _iter108; - for (_iter108 = this->skewedColValues.begin(); _iter108 != this->skewedColValues.end(); ++_iter108) + std::vector > ::const_iterator _iter107; + for (_iter107 = this->skewedColValues.begin(); _iter107 != this->skewedColValues.end(); ++_iter107) { { - xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*_iter108).size())); - std::vector ::const_iterator _iter109; - for (_iter109 = (*_iter108).begin(); _iter109 != (*_iter108).end(); ++_iter109) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast((*_iter107).size())); + std::vector ::const_iterator _iter108; + for (_iter108 = (*_iter107).begin(); _iter108 != (*_iter107).end(); ++_iter108) { - xfer += oprot->writeString((*_iter109)); + xfer += oprot->writeString((*_iter108)); } xfer += oprot->writeListEnd(); } @@ -1634,12 +1564,20 @@ xfer += oprot->writeFieldBegin("skewedColValueLocationMaps", ::apache::thrift::protocol::T_MAP, 3); { - xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRUCT, ::apache::thrift::protocol::T_STRING, static_cast(this->skewedColValueLocationMaps.size())); - std::map ::const_iterator _iter110; - for (_iter110 = this->skewedColValueLocationMaps.begin(); _iter110 != this->skewedColValueLocationMaps.end(); ++_iter110) + xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_LIST, ::apache::thrift::protocol::T_STRING, static_cast(this->skewedColValueLocationMaps.size())); + std::map , std::string> ::const_iterator _iter109; + for (_iter109 = this->skewedColValueLocationMaps.begin(); _iter109 != this->skewedColValueLocationMaps.end(); ++_iter109) { - xfer += _iter110->first.write(oprot); - xfer += oprot->writeString(_iter110->second); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(_iter109->first.size())); + std::vector ::const_iterator _iter110; + for (_iter110 = _iter109->first.begin(); _iter110 != _iter109->first.end(); ++_iter110) + { + xfer += oprot->writeString((*_iter110)); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeString(_iter109->second); } xfer += oprot->writeMapEnd(); } @@ -1658,8 +1596,8 @@ swap(a.__isset, b.__isset); } -const char* StorageDescriptor::ascii_fingerprint = "283664579DDA891300CFDE15F5771323"; -const uint8_t StorageDescriptor::binary_fingerprint[16] = {0x28,0x36,0x64,0x57,0x9D,0xDA,0x89,0x13,0x00,0xCF,0xDE,0x15,0xF5,0x77,0x13,0x23}; +const char* StorageDescriptor::ascii_fingerprint = "CA8C9AA5FE4C32643757D8639CEF0CD7"; +const uint8_t StorageDescriptor::binary_fingerprint[16] = {0xCA,0x8C,0x9A,0xA5,0xFE,0x4C,0x32,0x64,0x37,0x57,0xD8,0x63,0x9C,0xEF,0x0C,0xD7}; uint32_t StorageDescriptor::read(::apache::thrift::protocol::TProtocol* iprot) { @@ -1949,8 +1887,8 @@ swap(a.__isset, b.__isset); } -const char* Table::ascii_fingerprint = "AEBB39149C622C62B239988E19489807"; -const uint8_t Table::binary_fingerprint[16] = {0xAE,0xBB,0x39,0x14,0x9C,0x62,0x2C,0x62,0xB2,0x39,0x98,0x8E,0x19,0x48,0x98,0x07}; +const char* Table::ascii_fingerprint = "68640B4B66B355CF317429AF70D2C260"; +const uint8_t Table::binary_fingerprint[16] = {0x68,0x64,0x0B,0x4B,0x66,0xB3,0x55,0xCF,0x31,0x74,0x29,0xAF,0x70,0xD2,0xC2,0x60}; uint32_t Table::read(::apache::thrift::protocol::TProtocol* iprot) { @@ -2212,8 +2150,8 @@ swap(a.__isset, b.__isset); } -const char* Partition::ascii_fingerprint = "81AD5F7E827DDC1A37C18BF73ECA603F"; -const uint8_t Partition::binary_fingerprint[16] = {0x81,0xAD,0x5F,0x7E,0x82,0x7D,0xDC,0x1A,0x37,0xC1,0x8B,0xF7,0x3E,0xCA,0x60,0x3F}; +const char* Partition::ascii_fingerprint = "31A52241B88A426C34087FE38343FF51"; +const uint8_t Partition::binary_fingerprint[16] = {0x31,0xA5,0x22,0x41,0xB8,0x8A,0x42,0x6C,0x34,0x08,0x7F,0xE3,0x83,0x43,0xFF,0x51}; uint32_t Partition::read(::apache::thrift::protocol::TProtocol* iprot) { @@ -2410,8 +2348,8 @@ swap(a.__isset, b.__isset); } -const char* Index::ascii_fingerprint = "A2822E71566DF57594774A6CF56D11B5"; -const uint8_t Index::binary_fingerprint[16] = {0xA2,0x82,0x2E,0x71,0x56,0x6D,0xF5,0x75,0x94,0x77,0x4A,0x6C,0xF5,0x6D,0x11,0xB5}; +const char* Index::ascii_fingerprint = "09EEF655216AC81802850988D6C470A6"; +const uint8_t Index::binary_fingerprint[16] = {0x09,0xEE,0xF6,0x55,0x21,0x6A,0xC8,0x18,0x02,0x85,0x09,0x88,0xD6,0xC4,0x70,0xA6}; uint32_t Index::read(::apache::thrift::protocol::TProtocol* iprot) { Index: metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h =================================================================== --- metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h (revision 1478985) +++ metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h (working copy) @@ -799,49 +799,6 @@ void swap(Order &a, Order &b); -typedef struct _SkewedValueList__isset { - _SkewedValueList__isset() : skewedValueList(false) {} - bool skewedValueList; -} _SkewedValueList__isset; - -class SkewedValueList { - public: - - static const char* ascii_fingerprint; // = "ACE4F644F0FDD289DDC4EE5B83BC13C0"; - static const uint8_t binary_fingerprint[16]; // = {0xAC,0xE4,0xF6,0x44,0xF0,0xFD,0xD2,0x89,0xDD,0xC4,0xEE,0x5B,0x83,0xBC,0x13,0xC0}; - - SkewedValueList() { - } - - virtual ~SkewedValueList() throw() {} - - std::vector skewedValueList; - - _SkewedValueList__isset __isset; - - void __set_skewedValueList(const std::vector & val) { - skewedValueList = val; - } - - bool operator == (const SkewedValueList & rhs) const - { - if (!(skewedValueList == rhs.skewedValueList)) - return false; - return true; - } - bool operator != (const SkewedValueList &rhs) const { - return !(*this == rhs); - } - - bool operator < (const SkewedValueList & ) const; - - uint32_t read(::apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const; - -}; - -void swap(SkewedValueList &a, SkewedValueList &b); - typedef struct _SkewedInfo__isset { _SkewedInfo__isset() : skewedColNames(false), skewedColValues(false), skewedColValueLocationMaps(false) {} bool skewedColNames; @@ -852,8 +809,8 @@ class SkewedInfo { public: - static const char* ascii_fingerprint; // = "F4A067072461B8071E4F5A6BE5276FC0"; - static const uint8_t binary_fingerprint[16]; // = {0xF4,0xA0,0x67,0x07,0x24,0x61,0xB8,0x07,0x1E,0x4F,0x5A,0x6B,0xE5,0x27,0x6F,0xC0}; + static const char* ascii_fingerprint; // = "4BF2ED84BC3C3EB297A2AE2FA8427EB1"; + static const uint8_t binary_fingerprint[16]; // = {0x4B,0xF2,0xED,0x84,0xBC,0x3C,0x3E,0xB2,0x97,0xA2,0xAE,0x2F,0xA8,0x42,0x7E,0xB1}; SkewedInfo() { } @@ -862,7 +819,7 @@ std::vector skewedColNames; std::vector > skewedColValues; - std::map skewedColValueLocationMaps; + std::map , std::string> skewedColValueLocationMaps; _SkewedInfo__isset __isset; @@ -874,7 +831,7 @@ skewedColValues = val; } - void __set_skewedColValueLocationMaps(const std::map & val) { + void __set_skewedColValueLocationMaps(const std::map , std::string> & val) { skewedColValueLocationMaps = val; } @@ -920,8 +877,8 @@ class StorageDescriptor { public: - static const char* ascii_fingerprint; // = "283664579DDA891300CFDE15F5771323"; - static const uint8_t binary_fingerprint[16]; // = {0x28,0x36,0x64,0x57,0x9D,0xDA,0x89,0x13,0x00,0xCF,0xDE,0x15,0xF5,0x77,0x13,0x23}; + static const char* ascii_fingerprint; // = "CA8C9AA5FE4C32643757D8639CEF0CD7"; + static const uint8_t binary_fingerprint[16]; // = {0xCA,0x8C,0x9A,0xA5,0xFE,0x4C,0x32,0x64,0x37,0x57,0xD8,0x63,0x9C,0xEF,0x0C,0xD7}; StorageDescriptor() : location(), inputFormat(), outputFormat(), compressed(0), numBuckets(0), storedAsSubDirectories(0) { } @@ -1058,8 +1015,8 @@ class Table { public: - static const char* ascii_fingerprint; // = "AEBB39149C622C62B239988E19489807"; - static const uint8_t binary_fingerprint[16]; // = {0xAE,0xBB,0x39,0x14,0x9C,0x62,0x2C,0x62,0xB2,0x39,0x98,0x8E,0x19,0x48,0x98,0x07}; + static const char* ascii_fingerprint; // = "68640B4B66B355CF317429AF70D2C260"; + static const uint8_t binary_fingerprint[16]; // = {0x68,0x64,0x0B,0x4B,0x66,0xB3,0x55,0xCF,0x31,0x74,0x29,0xAF,0x70,0xD2,0xC2,0x60}; Table() : tableName(), dbName(), owner(), createTime(0), lastAccessTime(0), retention(0), viewOriginalText(), viewExpandedText(), tableType() { } @@ -1195,8 +1152,8 @@ class Partition { public: - static const char* ascii_fingerprint; // = "81AD5F7E827DDC1A37C18BF73ECA603F"; - static const uint8_t binary_fingerprint[16]; // = {0x81,0xAD,0x5F,0x7E,0x82,0x7D,0xDC,0x1A,0x37,0xC1,0x8B,0xF7,0x3E,0xCA,0x60,0x3F}; + static const char* ascii_fingerprint; // = "31A52241B88A426C34087FE38343FF51"; + static const uint8_t binary_fingerprint[16]; // = {0x31,0xA5,0x22,0x41,0xB8,0x8A,0x42,0x6C,0x34,0x08,0x7F,0xE3,0x83,0x43,0xFF,0x51}; Partition() : dbName(), tableName(), createTime(0), lastAccessTime(0) { } @@ -1299,8 +1256,8 @@ class Index { public: - static const char* ascii_fingerprint; // = "A2822E71566DF57594774A6CF56D11B5"; - static const uint8_t binary_fingerprint[16]; // = {0xA2,0x82,0x2E,0x71,0x56,0x6D,0xF5,0x75,0x94,0x77,0x4A,0x6C,0xF5,0x6D,0x11,0xB5}; + static const char* ascii_fingerprint; // = "09EEF655216AC81802850988D6C470A6"; + static const uint8_t binary_fingerprint[16]; // = {0x09,0xEE,0xF6,0x55,0x21,0x6A,0xC8,0x18,0x02,0x85,0x09,0x88,0xD6,0xC4,0x70,0xA6}; Index() : indexName(), indexHandlerClass(), dbName(), origTableName(), createTime(0), lastAccessTime(0), indexTableName(), deferredRebuild(0) { } Index: metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb =================================================================== --- metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (revision 1478985) +++ metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (working copy) @@ -289,22 +289,6 @@ ::Thrift::Struct.generate_accessors self end -class SkewedValueList - include ::Thrift::Struct, ::Thrift::Struct_Union - SKEWEDVALUELIST = 1 - - FIELDS = { - SKEWEDVALUELIST => {:type => ::Thrift::Types::LIST, :name => 'skewedValueList', :element => {:type => ::Thrift::Types::STRING}} - } - - def struct_fields; FIELDS; end - - def validate - end - - ::Thrift::Struct.generate_accessors self -end - class SkewedInfo include ::Thrift::Struct, ::Thrift::Struct_Union SKEWEDCOLNAMES = 1 @@ -314,7 +298,7 @@ FIELDS = { SKEWEDCOLNAMES => {:type => ::Thrift::Types::LIST, :name => 'skewedColNames', :element => {:type => ::Thrift::Types::STRING}}, SKEWEDCOLVALUES => {:type => ::Thrift::Types::LIST, :name => 'skewedColValues', :element => {:type => ::Thrift::Types::LIST, :element => {:type => ::Thrift::Types::STRING}}}, - SKEWEDCOLVALUELOCATIONMAPS => {:type => ::Thrift::Types::MAP, :name => 'skewedColValueLocationMaps', :key => {:type => ::Thrift::Types::STRUCT, :class => ::SkewedValueList}, :value => {:type => ::Thrift::Types::STRING}} + SKEWEDCOLVALUELOCATIONMAPS => {:type => ::Thrift::Types::MAP, :name => 'skewedColValueLocationMaps', :key => {:type => ::Thrift::Types::LIST, :element => {:type => ::Thrift::Types::STRING}}, :value => {:type => ::Thrift::Types::STRING}} } def struct_fields; FIELDS; end Index: metastore/src/gen/thrift/gen-php/metastore/Types.php =================================================================== --- metastore/src/gen/thrift/gen-php/metastore/Types.php (revision 1478985) +++ metastore/src/gen/thrift/gen-php/metastore/Types.php (working copy) @@ -1815,104 +1815,6 @@ } -class SkewedValueList { - static $_TSPEC; - - public $skewedValueList = null; - - public function __construct($vals=null) { - if (!isset(self::$_TSPEC)) { - self::$_TSPEC = array( - 1 => array( - 'var' => 'skewedValueList', - 'type' => TType::LST, - 'etype' => TType::STRING, - 'elem' => array( - 'type' => TType::STRING, - ), - ), - ); - } - if (is_array($vals)) { - if (isset($vals['skewedValueList'])) { - $this->skewedValueList = $vals['skewedValueList']; - } - } - } - - public function getName() { - return 'SkewedValueList'; - } - - public function read($input) - { - $xfer = 0; - $fname = null; - $ftype = 0; - $fid = 0; - $xfer += $input->readStructBegin($fname); - while (true) - { - $xfer += $input->readFieldBegin($fname, $ftype, $fid); - if ($ftype == TType::STOP) { - break; - } - switch ($fid) - { - case 1: - if ($ftype == TType::LST) { - $this->skewedValueList = array(); - $_size87 = 0; - $_etype90 = 0; - $xfer += $input->readListBegin($_etype90, $_size87); - for ($_i91 = 0; $_i91 < $_size87; ++$_i91) - { - $elem92 = null; - $xfer += $input->readString($elem92); - $this->skewedValueList []= $elem92; - } - $xfer += $input->readListEnd(); - } else { - $xfer += $input->skip($ftype); - } - break; - default: - $xfer += $input->skip($ftype); - break; - } - $xfer += $input->readFieldEnd(); - } - $xfer += $input->readStructEnd(); - return $xfer; - } - - public function write($output) { - $xfer = 0; - $xfer += $output->writeStructBegin('SkewedValueList'); - if ($this->skewedValueList !== null) { - if (!is_array($this->skewedValueList)) { - throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA); - } - $xfer += $output->writeFieldBegin('skewedValueList', TType::LST, 1); - { - $output->writeListBegin(TType::STRING, count($this->skewedValueList)); - { - foreach ($this->skewedValueList as $iter93) - { - $xfer += $output->writeString($iter93); - } - } - $output->writeListEnd(); - } - $xfer += $output->writeFieldEnd(); - } - $xfer += $output->writeFieldStop(); - $xfer += $output->writeStructEnd(); - return $xfer; - } - -} - class SkewedInfo { static $_TSPEC; @@ -1946,11 +1848,14 @@ 3 => array( 'var' => 'skewedColValueLocationMaps', 'type' => TType::MAP, - 'ktype' => TType::STRUCT, + 'ktype' => TType::LST, 'vtype' => TType::STRING, 'key' => array( - 'type' => TType::STRUCT, - 'class' => '\metastore\SkewedValueList', + 'type' => TType::LST, + 'etype' => TType::STRING, + 'elem' => array( + 'type' => TType::STRING, + ), ), 'val' => array( 'type' => TType::STRING, @@ -1993,14 +1898,14 @@ case 1: if ($ftype == TType::LST) { $this->skewedColNames = array(); - $_size94 = 0; - $_etype97 = 0; - $xfer += $input->readListBegin($_etype97, $_size94); - for ($_i98 = 0; $_i98 < $_size94; ++$_i98) + $_size87 = 0; + $_etype90 = 0; + $xfer += $input->readListBegin($_etype90, $_size87); + for ($_i91 = 0; $_i91 < $_size87; ++$_i91) { - $elem99 = null; - $xfer += $input->readString($elem99); - $this->skewedColNames []= $elem99; + $elem92 = null; + $xfer += $input->readString($elem92); + $this->skewedColNames []= $elem92; } $xfer += $input->readListEnd(); } else { @@ -2010,24 +1915,24 @@ case 2: if ($ftype == TType::LST) { $this->skewedColValues = array(); - $_size100 = 0; - $_etype103 = 0; - $xfer += $input->readListBegin($_etype103, $_size100); - for ($_i104 = 0; $_i104 < $_size100; ++$_i104) + $_size93 = 0; + $_etype96 = 0; + $xfer += $input->readListBegin($_etype96, $_size93); + for ($_i97 = 0; $_i97 < $_size93; ++$_i97) { - $elem105 = null; - $elem105 = array(); - $_size106 = 0; - $_etype109 = 0; - $xfer += $input->readListBegin($_etype109, $_size106); - for ($_i110 = 0; $_i110 < $_size106; ++$_i110) + $elem98 = null; + $elem98 = array(); + $_size99 = 0; + $_etype102 = 0; + $xfer += $input->readListBegin($_etype102, $_size99); + for ($_i103 = 0; $_i103 < $_size99; ++$_i103) { - $elem111 = null; - $xfer += $input->readString($elem111); - $elem105 []= $elem111; + $elem104 = null; + $xfer += $input->readString($elem104); + $elem98 []= $elem104; } $xfer += $input->readListEnd(); - $this->skewedColValues []= $elem105; + $this->skewedColValues []= $elem98; } $xfer += $input->readListEnd(); } else { @@ -2037,18 +1942,27 @@ case 3: if ($ftype == TType::MAP) { $this->skewedColValueLocationMaps = array(); - $_size112 = 0; - $_ktype113 = 0; - $_vtype114 = 0; - $xfer += $input->readMapBegin($_ktype113, $_vtype114, $_size112); - for ($_i116 = 0; $_i116 < $_size112; ++$_i116) + $_size105 = 0; + $_ktype106 = 0; + $_vtype107 = 0; + $xfer += $input->readMapBegin($_ktype106, $_vtype107, $_size105); + for ($_i109 = 0; $_i109 < $_size105; ++$_i109) { - $key117 = new \metastore\SkewedValueList(); - $val118 = ''; - $key117 = new \metastore\SkewedValueList(); - $xfer += $key117->read($input); - $xfer += $input->readString($val118); - $this->skewedColValueLocationMaps[$key117] = $val118; + $key110 = array(); + $val111 = ''; + $key110 = array(); + $_size112 = 0; + $_etype115 = 0; + $xfer += $input->readListBegin($_etype115, $_size112); + for ($_i116 = 0; $_i116 < $_size112; ++$_i116) + { + $elem117 = null; + $xfer += $input->readString($elem117); + $key110 []= $elem117; + } + $xfer += $input->readListEnd(); + $xfer += $input->readString($val111); + $this->skewedColValueLocationMaps[$key110] = $val111; } $xfer += $input->readMapEnd(); } else { @@ -2076,9 +1990,9 @@ { $output->writeListBegin(TType::STRING, count($this->skewedColNames)); { - foreach ($this->skewedColNames as $iter119) + foreach ($this->skewedColNames as $iter118) { - $xfer += $output->writeString($iter119); + $xfer += $output->writeString($iter118); } } $output->writeListEnd(); @@ -2093,14 +2007,14 @@ { $output->writeListBegin(TType::LST, count($this->skewedColValues)); { - foreach ($this->skewedColValues as $iter120) + foreach ($this->skewedColValues as $iter119) { { - $output->writeListBegin(TType::STRING, count($iter120)); + $output->writeListBegin(TType::STRING, count($iter119)); { - foreach ($iter120 as $iter121) + foreach ($iter119 as $iter120) { - $xfer += $output->writeString($iter121); + $xfer += $output->writeString($iter120); } } $output->writeListEnd(); @@ -2117,12 +2031,21 @@ } $xfer += $output->writeFieldBegin('skewedColValueLocationMaps', TType::MAP, 3); { - $output->writeMapBegin(TType::STRUCT, TType::STRING, count($this->skewedColValueLocationMaps)); + $output->writeMapBegin(TType::LST, TType::STRING, count($this->skewedColValueLocationMaps)); { - foreach ($this->skewedColValueLocationMaps as $kiter122 => $viter123) + foreach ($this->skewedColValueLocationMaps as $kiter121 => $viter122) { - $xfer += $kiter122->write($output); - $xfer += $output->writeString($viter123); + { + $output->writeListBegin(TType::STRING, count($kiter121)); + { + foreach ($kiter121 as $iter123) + { + $xfer += $output->writeString($iter123); + } + } + $output->writeListEnd(); + } + $xfer += $output->writeString($viter122); } } $output->writeMapEnd(); Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java (revision 1478985) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java (working copy) @@ -46,7 +46,7 @@ private List skewedColNames; // required private List> skewedColValues; // required - private Map skewedColValueLocationMaps; // required + private Map,String> skewedColValueLocationMaps; // required /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -125,7 +125,8 @@ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))))); tmpMap.put(_Fields.SKEWED_COL_VALUE_LOCATION_MAPS, new org.apache.thrift.meta_data.FieldMetaData("skewedColValueLocationMaps", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SkewedValueList.class), + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)), new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SkewedInfo.class, metaDataMap); @@ -137,7 +138,7 @@ public SkewedInfo( List skewedColNames, List> skewedColValues, - Map skewedColValueLocationMaps) + Map,String> skewedColValueLocationMaps) { this(); this.skewedColNames = skewedColNames; @@ -168,13 +169,16 @@ this.skewedColValues = __this__skewedColValues; } if (other.isSetSkewedColValueLocationMaps()) { - Map __this__skewedColValueLocationMaps = new HashMap(); - for (Map.Entry other_element : other.skewedColValueLocationMaps.entrySet()) { + Map,String> __this__skewedColValueLocationMaps = new HashMap,String>(); + for (Map.Entry, String> other_element : other.skewedColValueLocationMaps.entrySet()) { - SkewedValueList other_element_key = other_element.getKey(); + List other_element_key = other_element.getKey(); String other_element_value = other_element.getValue(); - SkewedValueList __this__skewedColValueLocationMaps_copy_key = new SkewedValueList(other_element_key); + List __this__skewedColValueLocationMaps_copy_key = new ArrayList(); + for (String other_element_key_element : other_element_key) { + __this__skewedColValueLocationMaps_copy_key.add(other_element_key_element); + } String __this__skewedColValueLocationMaps_copy_value = other_element_value; @@ -275,18 +279,18 @@ return (this.skewedColValueLocationMaps == null) ? 0 : this.skewedColValueLocationMaps.size(); } - public void putToSkewedColValueLocationMaps(SkewedValueList key, String val) { + public void putToSkewedColValueLocationMaps(List key, String val) { if (this.skewedColValueLocationMaps == null) { - this.skewedColValueLocationMaps = new HashMap(); + this.skewedColValueLocationMaps = new HashMap,String>(); } this.skewedColValueLocationMaps.put(key, val); } - public Map getSkewedColValueLocationMaps() { + public Map,String> getSkewedColValueLocationMaps() { return this.skewedColValueLocationMaps; } - public void setSkewedColValueLocationMaps(Map skewedColValueLocationMaps) { + public void setSkewedColValueLocationMaps(Map,String> skewedColValueLocationMaps) { this.skewedColValueLocationMaps = skewedColValueLocationMaps; } @@ -327,7 +331,7 @@ if (value == null) { unsetSkewedColValueLocationMaps(); } else { - setSkewedColValueLocationMaps((Map)value); + setSkewedColValueLocationMaps((Map,String>)value); } break; @@ -558,13 +562,13 @@ case 1: // SKEWED_COL_NAMES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list106 = iprot.readListBegin(); - struct.skewedColNames = new ArrayList(_list106.size); - for (int _i107 = 0; _i107 < _list106.size; ++_i107) + org.apache.thrift.protocol.TList _list98 = iprot.readListBegin(); + struct.skewedColNames = new ArrayList(_list98.size); + for (int _i99 = 0; _i99 < _list98.size; ++_i99) { - String _elem108; // required - _elem108 = iprot.readString(); - struct.skewedColNames.add(_elem108); + String _elem100; // required + _elem100 = iprot.readString(); + struct.skewedColNames.add(_elem100); } iprot.readListEnd(); } @@ -576,23 +580,23 @@ case 2: // SKEWED_COL_VALUES if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { { - org.apache.thrift.protocol.TList _list109 = iprot.readListBegin(); - struct.skewedColValues = new ArrayList>(_list109.size); - for (int _i110 = 0; _i110 < _list109.size; ++_i110) + org.apache.thrift.protocol.TList _list101 = iprot.readListBegin(); + struct.skewedColValues = new ArrayList>(_list101.size); + for (int _i102 = 0; _i102 < _list101.size; ++_i102) { - List _elem111; // required + List _elem103; // required { - org.apache.thrift.protocol.TList _list112 = iprot.readListBegin(); - _elem111 = new ArrayList(_list112.size); - for (int _i113 = 0; _i113 < _list112.size; ++_i113) + org.apache.thrift.protocol.TList _list104 = iprot.readListBegin(); + _elem103 = new ArrayList(_list104.size); + for (int _i105 = 0; _i105 < _list104.size; ++_i105) { - String _elem114; // required - _elem114 = iprot.readString(); - _elem111.add(_elem114); + String _elem106; // required + _elem106 = iprot.readString(); + _elem103.add(_elem106); } iprot.readListEnd(); } - struct.skewedColValues.add(_elem111); + struct.skewedColValues.add(_elem103); } iprot.readListEnd(); } @@ -604,16 +608,25 @@ case 3: // SKEWED_COL_VALUE_LOCATION_MAPS if (schemeField.type == org.apache.thrift.protocol.TType.MAP) { { - org.apache.thrift.protocol.TMap _map115 = iprot.readMapBegin(); - struct.skewedColValueLocationMaps = new HashMap(2*_map115.size); - for (int _i116 = 0; _i116 < _map115.size; ++_i116) + org.apache.thrift.protocol.TMap _map107 = iprot.readMapBegin(); + struct.skewedColValueLocationMaps = new HashMap,String>(2*_map107.size); + for (int _i108 = 0; _i108 < _map107.size; ++_i108) { - SkewedValueList _key117; // required - String _val118; // required - _key117 = new SkewedValueList(); - _key117.read(iprot); - _val118 = iprot.readString(); - struct.skewedColValueLocationMaps.put(_key117, _val118); + List _key109; // required + String _val110; // required + { + org.apache.thrift.protocol.TList _list111 = iprot.readListBegin(); + _key109 = new ArrayList(_list111.size); + for (int _i112 = 0; _i112 < _list111.size; ++_i112) + { + String _elem113; // required + _elem113 = iprot.readString(); + _key109.add(_elem113); + } + iprot.readListEnd(); + } + _val110 = iprot.readString(); + struct.skewedColValueLocationMaps.put(_key109, _val110); } iprot.readMapEnd(); } @@ -639,9 +652,9 @@ oprot.writeFieldBegin(SKEWED_COL_NAMES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.skewedColNames.size())); - for (String _iter119 : struct.skewedColNames) + for (String _iter114 : struct.skewedColNames) { - oprot.writeString(_iter119); + oprot.writeString(_iter114); } oprot.writeListEnd(); } @@ -651,13 +664,13 @@ oprot.writeFieldBegin(SKEWED_COL_VALUES_FIELD_DESC); { oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.LIST, struct.skewedColValues.size())); - for (List _iter120 : struct.skewedColValues) + for (List _iter115 : struct.skewedColValues) { { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter120.size())); - for (String _iter121 : _iter120) + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter115.size())); + for (String _iter116 : _iter115) { - oprot.writeString(_iter121); + oprot.writeString(_iter116); } oprot.writeListEnd(); } @@ -669,11 +682,18 @@ if (struct.skewedColValueLocationMaps != null) { oprot.writeFieldBegin(SKEWED_COL_VALUE_LOCATION_MAPS_FIELD_DESC); { - oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRING, struct.skewedColValueLocationMaps.size())); - for (Map.Entry _iter122 : struct.skewedColValueLocationMaps.entrySet()) + oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRING, struct.skewedColValueLocationMaps.size())); + for (Map.Entry, String> _iter117 : struct.skewedColValueLocationMaps.entrySet()) { - _iter122.getKey().write(oprot); - oprot.writeString(_iter122.getValue()); + { + oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter117.getKey().size())); + for (String _iter118 : _iter117.getKey()) + { + oprot.writeString(_iter118); + } + oprot.writeListEnd(); + } + oprot.writeString(_iter117.getValue()); } oprot.writeMapEnd(); } @@ -710,22 +730,22 @@ if (struct.isSetSkewedColNames()) { { oprot.writeI32(struct.skewedColNames.size()); - for (String _iter123 : struct.skewedColNames) + for (String _iter119 : struct.skewedColNames) { - oprot.writeString(_iter123); + oprot.writeString(_iter119); } } } if (struct.isSetSkewedColValues()) { { oprot.writeI32(struct.skewedColValues.size()); - for (List _iter124 : struct.skewedColValues) + for (List _iter120 : struct.skewedColValues) { { - oprot.writeI32(_iter124.size()); - for (String _iter125 : _iter124) + oprot.writeI32(_iter120.size()); + for (String _iter121 : _iter120) { - oprot.writeString(_iter125); + oprot.writeString(_iter121); } } } @@ -734,10 +754,16 @@ if (struct.isSetSkewedColValueLocationMaps()) { { oprot.writeI32(struct.skewedColValueLocationMaps.size()); - for (Map.Entry _iter126 : struct.skewedColValueLocationMaps.entrySet()) + for (Map.Entry, String> _iter122 : struct.skewedColValueLocationMaps.entrySet()) { - _iter126.getKey().write(oprot); - oprot.writeString(_iter126.getValue()); + { + oprot.writeI32(_iter122.getKey().size()); + for (String _iter123 : _iter122.getKey()) + { + oprot.writeString(_iter123); + } + } + oprot.writeString(_iter122.getValue()); } } } @@ -749,51 +775,59 @@ BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { { - org.apache.thrift.protocol.TList _list127 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.skewedColNames = new ArrayList(_list127.size); - for (int _i128 = 0; _i128 < _list127.size; ++_i128) + org.apache.thrift.protocol.TList _list124 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.skewedColNames = new ArrayList(_list124.size); + for (int _i125 = 0; _i125 < _list124.size; ++_i125) { - String _elem129; // required - _elem129 = iprot.readString(); - struct.skewedColNames.add(_elem129); + String _elem126; // required + _elem126 = iprot.readString(); + struct.skewedColNames.add(_elem126); } } struct.setSkewedColNamesIsSet(true); } if (incoming.get(1)) { { - org.apache.thrift.protocol.TList _list130 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.LIST, iprot.readI32()); - struct.skewedColValues = new ArrayList>(_list130.size); - for (int _i131 = 0; _i131 < _list130.size; ++_i131) + org.apache.thrift.protocol.TList _list127 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.LIST, iprot.readI32()); + struct.skewedColValues = new ArrayList>(_list127.size); + for (int _i128 = 0; _i128 < _list127.size; ++_i128) { - List _elem132; // required + List _elem129; // required { - org.apache.thrift.protocol.TList _list133 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - _elem132 = new ArrayList(_list133.size); - for (int _i134 = 0; _i134 < _list133.size; ++_i134) + org.apache.thrift.protocol.TList _list130 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + _elem129 = new ArrayList(_list130.size); + for (int _i131 = 0; _i131 < _list130.size; ++_i131) { - String _elem135; // required - _elem135 = iprot.readString(); - _elem132.add(_elem135); + String _elem132; // required + _elem132 = iprot.readString(); + _elem129.add(_elem132); } } - struct.skewedColValues.add(_elem132); + struct.skewedColValues.add(_elem129); } } struct.setSkewedColValuesIsSet(true); } if (incoming.get(2)) { { - org.apache.thrift.protocol.TMap _map136 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.skewedColValueLocationMaps = new HashMap(2*_map136.size); - for (int _i137 = 0; _i137 < _map136.size; ++_i137) + org.apache.thrift.protocol.TMap _map133 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + struct.skewedColValueLocationMaps = new HashMap,String>(2*_map133.size); + for (int _i134 = 0; _i134 < _map133.size; ++_i134) { - SkewedValueList _key138; // required - String _val139; // required - _key138 = new SkewedValueList(); - _key138.read(iprot); - _val139 = iprot.readString(); - struct.skewedColValueLocationMaps.put(_key138, _val139); + List _key135; // required + String _val136; // required + { + org.apache.thrift.protocol.TList _list137 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); + _key135 = new ArrayList(_list137.size); + for (int _i138 = 0; _i138 < _list137.size; ++_i138) + { + String _elem139; // required + _elem139 = iprot.readString(); + _key135.add(_elem139); + } + } + _val136 = iprot.readString(); + struct.skewedColValueLocationMaps.put(_key135, _val136); } } struct.setSkewedColValueLocationMapsIsSet(true); Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedValueList.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedValueList.java (revision 1478985) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedValueList.java (working copy) @@ -1,443 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.9.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -package org.apache.hadoop.hive.metastore.api; - -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.thrift.scheme.IScheme; -import org.apache.thrift.scheme.SchemeFactory; -import org.apache.thrift.scheme.StandardScheme; - -import org.apache.thrift.scheme.TupleScheme; -import org.apache.thrift.protocol.TTupleProtocol; -import org.apache.thrift.protocol.TProtocolException; -import org.apache.thrift.EncodingUtils; -import org.apache.thrift.TException; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.util.EnumMap; -import java.util.Set; -import java.util.HashSet; -import java.util.EnumSet; -import java.util.Collections; -import java.util.BitSet; -import java.nio.ByteBuffer; -import java.util.Arrays; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class SkewedValueList implements org.apache.thrift.TBase, java.io.Serializable, Cloneable { - private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SkewedValueList"); - - private static final org.apache.thrift.protocol.TField SKEWED_VALUE_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("skewedValueList", org.apache.thrift.protocol.TType.LIST, (short)1); - - private static final Map, SchemeFactory> schemes = new HashMap, SchemeFactory>(); - static { - schemes.put(StandardScheme.class, new SkewedValueListStandardSchemeFactory()); - schemes.put(TupleScheme.class, new SkewedValueListTupleSchemeFactory()); - } - - private List skewedValueList; // required - - /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ - public enum _Fields implements org.apache.thrift.TFieldIdEnum { - SKEWED_VALUE_LIST((short)1, "skewedValueList"); - - private static final Map byName = new HashMap(); - - static { - for (_Fields field : EnumSet.allOf(_Fields.class)) { - byName.put(field.getFieldName(), field); - } - } - - /** - * Find the _Fields constant that matches fieldId, or null if its not found. - */ - public static _Fields findByThriftId(int fieldId) { - switch(fieldId) { - case 1: // SKEWED_VALUE_LIST - return SKEWED_VALUE_LIST; - default: - return null; - } - } - - /** - * Find the _Fields constant that matches fieldId, throwing an exception - * if it is not found. - */ - public static _Fields findByThriftIdOrThrow(int fieldId) { - _Fields fields = findByThriftId(fieldId); - if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); - return fields; - } - - /** - * Find the _Fields constant that matches name, or null if its not found. - */ - public static _Fields findByName(String name) { - return byName.get(name); - } - - private final short _thriftId; - private final String _fieldName; - - _Fields(short thriftId, String fieldName) { - _thriftId = thriftId; - _fieldName = fieldName; - } - - public short getThriftFieldId() { - return _thriftId; - } - - public String getFieldName() { - return _fieldName; - } - } - - // isset id assignments - public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; - static { - Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SKEWED_VALUE_LIST, new org.apache.thrift.meta_data.FieldMetaData("skewedValueList", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); - metaDataMap = Collections.unmodifiableMap(tmpMap); - org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SkewedValueList.class, metaDataMap); - } - - public SkewedValueList() { - } - - public SkewedValueList( - List skewedValueList) - { - this(); - this.skewedValueList = skewedValueList; - } - - /** - * Performs a deep copy on other. - */ - public SkewedValueList(SkewedValueList other) { - if (other.isSetSkewedValueList()) { - List __this__skewedValueList = new ArrayList(); - for (String other_element : other.skewedValueList) { - __this__skewedValueList.add(other_element); - } - this.skewedValueList = __this__skewedValueList; - } - } - - public SkewedValueList deepCopy() { - return new SkewedValueList(this); - } - - @Override - public void clear() { - this.skewedValueList = null; - } - - public int getSkewedValueListSize() { - return (this.skewedValueList == null) ? 0 : this.skewedValueList.size(); - } - - public java.util.Iterator getSkewedValueListIterator() { - return (this.skewedValueList == null) ? null : this.skewedValueList.iterator(); - } - - public void addToSkewedValueList(String elem) { - if (this.skewedValueList == null) { - this.skewedValueList = new ArrayList(); - } - this.skewedValueList.add(elem); - } - - public List getSkewedValueList() { - return this.skewedValueList; - } - - public void setSkewedValueList(List skewedValueList) { - this.skewedValueList = skewedValueList; - } - - public void unsetSkewedValueList() { - this.skewedValueList = null; - } - - /** Returns true if field skewedValueList is set (has been assigned a value) and false otherwise */ - public boolean isSetSkewedValueList() { - return this.skewedValueList != null; - } - - public void setSkewedValueListIsSet(boolean value) { - if (!value) { - this.skewedValueList = null; - } - } - - public void setFieldValue(_Fields field, Object value) { - switch (field) { - case SKEWED_VALUE_LIST: - if (value == null) { - unsetSkewedValueList(); - } else { - setSkewedValueList((List)value); - } - break; - - } - } - - public Object getFieldValue(_Fields field) { - switch (field) { - case SKEWED_VALUE_LIST: - return getSkewedValueList(); - - } - throw new IllegalStateException(); - } - - /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ - public boolean isSet(_Fields field) { - if (field == null) { - throw new IllegalArgumentException(); - } - - switch (field) { - case SKEWED_VALUE_LIST: - return isSetSkewedValueList(); - } - throw new IllegalStateException(); - } - - @Override - public boolean equals(Object that) { - if (that == null) - return false; - if (that instanceof SkewedValueList) - return this.equals((SkewedValueList)that); - return false; - } - - public boolean equals(SkewedValueList that) { - if (that == null) - return false; - - boolean this_present_skewedValueList = true && this.isSetSkewedValueList(); - boolean that_present_skewedValueList = true && that.isSetSkewedValueList(); - if (this_present_skewedValueList || that_present_skewedValueList) { - if (!(this_present_skewedValueList && that_present_skewedValueList)) - return false; - if (!this.skewedValueList.equals(that.skewedValueList)) - return false; - } - - return true; - } - - @Override - public int hashCode() { - HashCodeBuilder builder = new HashCodeBuilder(); - - boolean present_skewedValueList = true && (isSetSkewedValueList()); - builder.append(present_skewedValueList); - if (present_skewedValueList) - builder.append(skewedValueList); - - return builder.toHashCode(); - } - - public int compareTo(SkewedValueList other) { - if (!getClass().equals(other.getClass())) { - return getClass().getName().compareTo(other.getClass().getName()); - } - - int lastComparison = 0; - SkewedValueList typedOther = (SkewedValueList)other; - - lastComparison = Boolean.valueOf(isSetSkewedValueList()).compareTo(typedOther.isSetSkewedValueList()); - if (lastComparison != 0) { - return lastComparison; - } - if (isSetSkewedValueList()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.skewedValueList, typedOther.skewedValueList); - if (lastComparison != 0) { - return lastComparison; - } - } - return 0; - } - - public _Fields fieldForId(int fieldId) { - return _Fields.findByThriftId(fieldId); - } - - public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { - schemes.get(iprot.getScheme()).getScheme().read(iprot, this); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { - schemes.get(oprot.getScheme()).getScheme().write(oprot, this); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("SkewedValueList("); - boolean first = true; - - sb.append("skewedValueList:"); - if (this.skewedValueList == null) { - sb.append("null"); - } else { - sb.append(this.skewedValueList); - } - first = false; - sb.append(")"); - return sb.toString(); - } - - public void validate() throws org.apache.thrift.TException { - // check for required fields - // check for sub-struct validity - } - - private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { - try { - write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { - try { - read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); - } catch (org.apache.thrift.TException te) { - throw new java.io.IOException(te); - } - } - - private static class SkewedValueListStandardSchemeFactory implements SchemeFactory { - public SkewedValueListStandardScheme getScheme() { - return new SkewedValueListStandardScheme(); - } - } - - private static class SkewedValueListStandardScheme extends StandardScheme { - - public void read(org.apache.thrift.protocol.TProtocol iprot, SkewedValueList struct) throws org.apache.thrift.TException { - org.apache.thrift.protocol.TField schemeField; - iprot.readStructBegin(); - while (true) - { - schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { - break; - } - switch (schemeField.id) { - case 1: // SKEWED_VALUE_LIST - if (schemeField.type == org.apache.thrift.protocol.TType.LIST) { - { - org.apache.thrift.protocol.TList _list98 = iprot.readListBegin(); - struct.skewedValueList = new ArrayList(_list98.size); - for (int _i99 = 0; _i99 < _list98.size; ++_i99) - { - String _elem100; // required - _elem100 = iprot.readString(); - struct.skewedValueList.add(_elem100); - } - iprot.readListEnd(); - } - struct.setSkewedValueListIsSet(true); - } else { - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - break; - default: - org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); - } - iprot.readFieldEnd(); - } - iprot.readStructEnd(); - struct.validate(); - } - - public void write(org.apache.thrift.protocol.TProtocol oprot, SkewedValueList struct) throws org.apache.thrift.TException { - struct.validate(); - - oprot.writeStructBegin(STRUCT_DESC); - if (struct.skewedValueList != null) { - oprot.writeFieldBegin(SKEWED_VALUE_LIST_FIELD_DESC); - { - oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.skewedValueList.size())); - for (String _iter101 : struct.skewedValueList) - { - oprot.writeString(_iter101); - } - oprot.writeListEnd(); - } - oprot.writeFieldEnd(); - } - oprot.writeFieldStop(); - oprot.writeStructEnd(); - } - - } - - private static class SkewedValueListTupleSchemeFactory implements SchemeFactory { - public SkewedValueListTupleScheme getScheme() { - return new SkewedValueListTupleScheme(); - } - } - - private static class SkewedValueListTupleScheme extends TupleScheme { - - @Override - public void write(org.apache.thrift.protocol.TProtocol prot, SkewedValueList struct) throws org.apache.thrift.TException { - TTupleProtocol oprot = (TTupleProtocol) prot; - BitSet optionals = new BitSet(); - if (struct.isSetSkewedValueList()) { - optionals.set(0); - } - oprot.writeBitSet(optionals, 1); - if (struct.isSetSkewedValueList()) { - { - oprot.writeI32(struct.skewedValueList.size()); - for (String _iter102 : struct.skewedValueList) - { - oprot.writeString(_iter102); - } - } - } - } - - @Override - public void read(org.apache.thrift.protocol.TProtocol prot, SkewedValueList struct) throws org.apache.thrift.TException { - TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(1); - if (incoming.get(0)) { - { - org.apache.thrift.protocol.TList _list103 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32()); - struct.skewedValueList = new ArrayList(_list103.size); - for (int _i104 = 0; _i104 < _list103.size; ++_i104) - { - String _elem105; // required - _elem105 = iprot.readString(); - struct.skewedValueList.add(_elem105); - } - } - struct.setSkewedValueListIsSet(true); - } - } - } - -} - Index: metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java =================================================================== --- metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java (revision 1478985) +++ metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java (working copy) @@ -47102,17 +47102,17 @@ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.PARTITION_SPECS, new org.apache.thrift.meta_data.FieldMetaData("partitionSpecs", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, - new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), + tmpMap.put(_Fields.PARTITION_SPECS, new org.apache.thrift.meta_data.FieldMetaData("partitionSpecs", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); - tmpMap.put(_Fields.SOURCE_DB, new org.apache.thrift.meta_data.FieldMetaData("source_db", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.SOURCE_DB, new org.apache.thrift.meta_data.FieldMetaData("source_db", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.SOURCE_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("source_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.SOURCE_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("source_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.DEST_DB, new org.apache.thrift.meta_data.FieldMetaData("dest_db", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.DEST_DB, new org.apache.thrift.meta_data.FieldMetaData("dest_db", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.DEST_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("dest_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.DEST_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("dest_table_name", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partition_args.class, metaDataMap); @@ -47945,9 +47945,9 @@ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.O3, new org.apache.thrift.meta_data.FieldMetaData("o3", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.O4, new org.apache.thrift.meta_data.FieldMetaData("o4", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(exchange_partition_result.class, metaDataMap); @@ -48459,7 +48459,7 @@ while (true) { schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { break; } switch (schemeField.id) { @@ -48468,7 +48468,7 @@ struct.success = new Partition(); struct.success.read(iprot); struct.setSuccessIsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -48477,7 +48477,7 @@ struct.o1 = new MetaException(); struct.o1.read(iprot); struct.setO1IsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -48486,7 +48486,7 @@ struct.o2 = new NoSuchObjectException(); struct.o2.read(iprot); struct.setO2IsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -48495,7 +48495,7 @@ struct.o3 = new InvalidObjectException(); struct.o3.read(iprot); struct.setO3IsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -48504,7 +48504,7 @@ struct.o4 = new InvalidInputException(); struct.o4.read(iprot); struct.setO4IsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -48726,17 +48726,17 @@ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.DB_NAME, new org.apache.thrift.meta_data.FieldMetaData("db_name", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.TBL_NAME, new org.apache.thrift.meta_data.FieldMetaData("tbl_name", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + tmpMap.put(_Fields.PART_VALS, new org.apache.thrift.meta_data.FieldMetaData("part_vals", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); - tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("user_name", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, - new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, + tmpMap.put(_Fields.GROUP_NAMES, new org.apache.thrift.meta_data.FieldMetaData("group_names", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_with_auth_args.class, metaDataMap); @@ -49283,7 +49283,7 @@ while (true) { schemeField = iprot.readFieldBegin(); - if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { break; } switch (schemeField.id) { @@ -49291,7 +49291,7 @@ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { struct.db_name = iprot.readString(); struct.setDb_nameIsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -49299,7 +49299,7 @@ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { struct.tbl_name = iprot.readString(); struct.setTbl_nameIsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -49317,7 +49317,7 @@ iprot.readListEnd(); } struct.setPart_valsIsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -49325,7 +49325,7 @@ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) { struct.user_name = iprot.readString(); struct.setUser_nameIsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -49343,7 +49343,7 @@ iprot.readListEnd(); } struct.setGroup_namesIsSet(true); - } else { + } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; @@ -49594,11 +49594,11 @@ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); - tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))); - tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.O1, new org.apache.thrift.meta_data.FieldMetaData("o1", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); - tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, + tmpMap.put(_Fields.O2, new org.apache.thrift.meta_data.FieldMetaData("o2", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_partition_with_auth_result.class, metaDataMap); Index: metastore/if/hive_metastore.thrift =================================================================== --- metastore/if/hive_metastore.thrift (revision 1478985) +++ metastore/if/hive_metastore.thrift (working copy) @@ -131,16 +131,11 @@ 2: i32 order // asc(1) or desc(0) } -// Workaround for HIVE-4322 -struct SkewedValueList { - 1: list skewedValueList -} - // this object holds all the information about skewed table struct SkewedInfo { 1: list skewedColNames, // skewed column names 2: list> skewedColValues, //skewed values - 3: map skewedColValueLocationMaps, //skewed value to location mappings + 3: map, string> skewedColValueLocationMaps, //skewed value to location mappings } // this object holds all the information about physical storage of the data belonging to a table Index: ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPruner.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPruner.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/listbucketingpruner/ListBucketingPruner.java (working copy) @@ -27,7 +27,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.common.FileUtils; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx; import org.apache.hadoop.hive.ql.metadata.Partition; import org.apache.hadoop.hive.ql.optimizer.PrunerUtils; @@ -291,13 +290,12 @@ List> uniqSkewedValues) throws SemanticException { // For each entry in dynamic-multi-dimension collection. List skewedCols = part.getSkewedColNames(); // Retrieve skewed column. - Map mappings = part.getSkewedColValueLocationMaps(); // Retrieve skewed + Map, String> mappings = part.getSkewedColValueLocationMaps(); // Retrieve skewed // map. assert ListBucketingPrunerUtils.isListBucketingPart(part) : part.getName() + " skewed metadata is corrupted. No skewed column and/or location mappings information."; List> skewedValues = part.getSkewedColValues(); List nonSkewedValueMatchResult = new ArrayList(); - SkewedValueList skewedValueList = new SkewedValueList(); for (List cell : collections) { // Walk through the tree to decide value. // Example: skewed column: C1, C2 ; @@ -311,9 +309,8 @@ /* It's valid case if a partition: */ /* 1. is defined with skewed columns and skewed values in metadata */ /* 2. doesn't have all skewed values within its data */ - skewedValueList.setSkewedValueList(cell); - if (mappings.get(skewedValueList) != null) { - selectedPaths.add(new Path(mappings.get(skewedValueList))); + if (mappings.get(cell) != null) { + selectedPaths.add(new Path(mappings.get(cell))); } } } else { Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java (working copy) @@ -40,7 +40,6 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.MetaException; import org.apache.hadoop.hive.metastore.api.Order; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; import org.apache.hadoop.hive.ql.exec.Utilities; import org.apache.hadoop.hive.ql.io.HiveFileFormatUtils; @@ -648,18 +647,18 @@ public void setSkewedValueLocationMap(List valList, String dirName) throws HiveException { - Map mappings = tPartition.getSd().getSkewedInfo() + Map, String> mappings = tPartition.getSd().getSkewedInfo() .getSkewedColValueLocationMaps(); if (null == mappings) { - mappings = new HashMap(); + mappings = new HashMap, String>(); tPartition.getSd().getSkewedInfo().setSkewedColValueLocationMaps(mappings); } // Add or update new mapping - mappings.put(new SkewedValueList(valList), dirName); + mappings.put(valList, dirName); } - public Map getSkewedColValueLocationMaps() { + public Map, String> getSkewedColValueLocationMaps() { return tPartition.getSd().getSkewedInfo().getSkewedColValueLocationMaps(); } } Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (working copy) @@ -45,7 +45,6 @@ import org.apache.hadoop.hive.metastore.api.Order; import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.SkewedInfo; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; import org.apache.hadoop.hive.ql.io.HiveFileFormatUtils; import org.apache.hadoop.hive.ql.io.HiveOutputFormat; @@ -145,7 +144,7 @@ SkewedInfo skewInfo = new SkewedInfo(); skewInfo.setSkewedColNames(new ArrayList()); skewInfo.setSkewedColValues(new ArrayList>()); - skewInfo.setSkewedColValueLocationMaps(new HashMap()); + skewInfo.setSkewedColValueLocationMaps(new HashMap, String>()); sd.setSkewedInfo(skewInfo); } @@ -519,20 +518,20 @@ public void setSkewedValueLocationMap(List valList, String dirName) throws HiveException { - Map mappings = tTable.getSd().getSkewedInfo() + Map, String> mappings = tTable.getSd().getSkewedInfo() .getSkewedColValueLocationMaps(); if (null == mappings) { - mappings = new HashMap(); + mappings = new HashMap, String>(); tTable.getSd().getSkewedInfo().setSkewedColValueLocationMaps(mappings); } // Add or update new mapping - mappings.put(new SkewedValueList(valList), dirName); + mappings.put(valList, dirName); } - public Map getSkewedColValueLocationMaps() { + public Map,String> getSkewedColValueLocationMaps() { return (tTable.getSd().getSkewedInfo() != null) ? tTable.getSd().getSkewedInfo() - .getSkewedColValueLocationMaps() : new HashMap(); + .getSkewedColValueLocationMaps() : new HashMap, String>(); } public void setSkewedColValues(List> skewedValues) throws HiveException { Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java (working copy) @@ -31,7 +31,6 @@ import org.apache.hadoop.hive.metastore.TableType; import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.Index; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.metastore.api.StorageDescriptor; import org.apache.hadoop.hive.ql.index.HiveIndex; import org.apache.hadoop.hive.ql.index.HiveIndex.IndexType; @@ -200,7 +199,7 @@ formatOutput("Skewed Values:", skewedColValues.toString(), tableInfo); } - Map skewedColMap = storageDesc.getSkewedInfo() + Map, String> skewedColMap = storageDesc.getSkewedInfo() .getSkewedColValueLocationMaps(); if ((skewedColMap!=null) && (skewedColMap.size() > 0)) { formatOutput("Skewed Value to Path:", skewedColMap.toString(), @@ -208,8 +207,9 @@ Map, String> truncatedSkewedColMap = new HashMap, String>(); // walk through existing map to truncate path so that test won't mask it // then we can verify location is right - for (Entry entry : skewedColMap.entrySet()) { - truncatedSkewedColMap.put(entry.getKey().getSkewedValueList(), + Set, String>> entries = skewedColMap.entrySet(); + for (Entry, String> entry : entries) { + truncatedSkewedColMap.put(entry.getKey(), PlanUtils.removePrefixFromWarehouseConfig(entry.getValue())); } formatOutput("Skewed Value to Truncated Path:", Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java (working copy) @@ -76,7 +76,6 @@ import org.apache.hadoop.hive.metastore.api.Role; import org.apache.hadoop.hive.metastore.api.SerDeInfo; import org.apache.hadoop.hive.metastore.api.SkewedInfo; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.metastore.api.hive_metastoreConstants; import org.apache.hadoop.hive.ql.exec.Utilities; import org.apache.hadoop.hive.ql.index.HiveIndexHandler; @@ -1221,8 +1220,8 @@ org.apache.hadoop.hive.metastore.api.Partition newCreatedTpart = newTPart.getTPartition(); SkewedInfo skewedInfo = newCreatedTpart.getSd().getSkewedInfo(); /* Construct list bucketing location mappings from sub-directory name. */ - Map skewedColValueLocationMaps = - constructListBucketingLocationMap(newPartPath, skewedInfo); + Map, String> skewedColValueLocationMaps = constructListBucketingLocationMap( + newPartPath, skewedInfo); /* Add list bucketing location mappings. */ skewedInfo.setSkewedColValueLocationMaps(skewedColValueLocationMaps); newCreatedTpart.getSd().setSkewedInfo(skewedInfo); @@ -1255,8 +1254,7 @@ * @throws IOException */ private void walkDirTree(FileStatus fSta, FileSystem fSys, - Map skewedColValueLocationMaps, - Path newPartPath, SkewedInfo skewedInfo) + Map, String> skewedColValueLocationMaps, Path newPartPath, SkewedInfo skewedInfo) throws IOException { /* Base Case. It's leaf. */ if (!fSta.isDir()) { @@ -1282,7 +1280,7 @@ * @param skewedInfo */ private void constructOneLBLocationMap(FileStatus fSta, - Map skewedColValueLocationMaps, + Map, String> skewedColValueLocationMaps, Path newPartPath, SkewedInfo skewedInfo) { Path lbdPath = fSta.getPath().getParent(); List skewedValue = new ArrayList(); @@ -1305,7 +1303,7 @@ } if ((skewedValue.size() > 0) && (skewedValue.size() == skewedInfo.getSkewedColNames().size()) && !skewedColValueLocationMaps.containsKey(skewedValue)) { - skewedColValueLocationMaps.put(new SkewedValueList(skewedValue), lbdPath.toString()); + skewedColValueLocationMaps.put(skewedValue, lbdPath.toString()); } } @@ -1318,10 +1316,9 @@ * @throws IOException * @throws FileNotFoundException */ - private Map constructListBucketingLocationMap(Path newPartPath, + private Map, String> constructListBucketingLocationMap(Path newPartPath, SkewedInfo skewedInfo) throws IOException, FileNotFoundException { - Map skewedColValueLocationMaps = - new HashMap(); + Map, String> skewedColValueLocationMaps = new HashMap, String>(); FileSystem fSys = newPartPath.getFileSystem(conf); walkDirTree(fSys.getFileStatus(newPartPath), fSys, skewedColValueLocationMaps, newPartPath, skewedInfo); Index: ql/src/java/org/apache/hadoop/hive/ql/exec/FileSinkOperator.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/FileSinkOperator.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/FileSinkOperator.java (working copy) @@ -34,7 +34,6 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.common.FileUtils; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.ql.ErrorMsg; import org.apache.hadoop.hive.ql.io.HiveFileFormatUtils; import org.apache.hadoop.hive.ql.io.HiveKey; @@ -709,7 +708,7 @@ List skewedCols = lbCtx.getSkewedColNames(); List> allSkewedVals = lbCtx.getSkewedColValues(); List skewedValsCandidate = null; - Map locationMap = lbCtx.getLbLocationMap(); + Map, String> locationMap = lbCtx.getLbLocationMap(); /* Convert input row to standard objects. */ ObjectInspectorUtils.copyToStandardObject(standObjs, row, @@ -727,14 +726,14 @@ if (allSkewedVals.contains(skewedValsCandidate)) { /* matches skewed values. */ lbDirName = FileUtils.makeListBucketingDirName(skewedCols, skewedValsCandidate); - locationMap.put(new SkewedValueList(skewedValsCandidate), lbDirName); + locationMap.put(skewedValsCandidate, lbDirName); } else { /* create default directory. */ lbDirName = FileUtils.makeDefaultListBucketingDirName(skewedCols, lbCtx.getDefaultDirName()); List defaultKey = Arrays.asList(lbCtx.getDefaultKey()); if (!locationMap.containsKey(defaultKey)) { - locationMap.put(new SkewedValueList(defaultKey), lbDirName); + locationMap.put(defaultKey, lbDirName); } } return lbDirName; Index: ql/src/java/org/apache/hadoop/hive/ql/plan/ListBucketingCtx.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/plan/ListBucketingCtx.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/plan/ListBucketingCtx.java (working copy) @@ -23,7 +23,6 @@ import java.util.Map; import org.apache.hadoop.hive.common.FileUtils; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.ql.exec.ColumnInfo; import org.apache.hadoop.hive.ql.exec.FileSinkOperator; import org.apache.hadoop.hive.ql.exec.RowSchema; @@ -40,7 +39,7 @@ private static final long serialVersionUID = 1L; private List skewedColNames; private List> skewedColValues; - private Map lbLocationMap; + private Map, String> lbLocationMap; private List rowSkewedIndex; private boolean isStoredAsSubDirectories; private String defaultKey; @@ -83,14 +82,14 @@ /** * @return the lbLocationMap */ - public Map getLbLocationMap() { + public Map, String> getLbLocationMap() { return lbLocationMap; } /** * @param lbLocationMap the lbLocationMap to set */ - public void setLbLocationMap(Map lbLocationMap) { + public void setLbLocationMap(Map, String> lbLocationMap) { this.lbLocationMap = lbLocationMap; } Index: ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (revision 1478985) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (working copy) @@ -37,7 +37,6 @@ import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.Order; -import org.apache.hadoop.hive.metastore.api.SkewedValueList; import org.apache.hadoop.hive.ql.Context; import org.apache.hadoop.hive.ql.ErrorMsg; import org.apache.hadoop.hive.ql.QueryProperties; @@ -966,7 +965,7 @@ * @return */ protected ListBucketingCtx constructListBucketingCtx(List skewedColNames, - List> skewedValues, Map skewedColValueLocationMaps, + List> skewedValues, Map, String> skewedColValueLocationMaps, boolean isStoredAsSubDirectories, HiveConf conf) { ListBucketingCtx lbCtx = new ListBucketingCtx(); lbCtx.setSkewedColNames(skewedColNames);