Repository: hive Updated Branches: refs/heads/master f5618d922 -> 10cfba200
http://git-wip-us.apache.org/repos/asf/hive/blob/10cfba20/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py b/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py index bdfb480..4ef4aad 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py @@ -12141,6 +12141,7 @@ class CommitTxnRequest: - replPolicy - writeEventInfos - keyValue + - replLastIdInfo """ thrift_spec = ( @@ -12149,13 +12150,15 @@ class CommitTxnRequest: (2, TType.STRING, 'replPolicy', None, None, ), # 2 (3, TType.LIST, 'writeEventInfos', (TType.STRUCT,(WriteEventInfo, WriteEventInfo.thrift_spec)), None, ), # 3 (4, TType.STRUCT, 'keyValue', (CommitTxnKeyValue, CommitTxnKeyValue.thrift_spec), None, ), # 4 + (5, TType.STRUCT, 'replLastIdInfo', (ReplLastIdInfo, ReplLastIdInfo.thrift_spec), None, ), # 5 ) - def __init__(self, txnid=None, replPolicy=None, writeEventInfos=None, keyValue=None,): + def __init__(self, txnid=None, replPolicy=None, writeEventInfos=None, keyValue=None, replLastIdInfo=None,): self.txnid = txnid self.replPolicy = replPolicy self.writeEventInfos = writeEventInfos self.keyValue = keyValue + self.replLastIdInfo = replLastIdInfo 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: @@ -12193,6 +12196,12 @@ class CommitTxnRequest: self.keyValue.read(iprot) else: iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.replLastIdInfo = ReplLastIdInfo() + self.replLastIdInfo.read(iprot) + else: + iprot.skip(ftype) else: iprot.skip(ftype) iprot.readFieldEnd() @@ -12222,6 +12231,10 @@ class CommitTxnRequest: oprot.writeFieldBegin('keyValue', TType.STRUCT, 4) self.keyValue.write(oprot) oprot.writeFieldEnd() + if self.replLastIdInfo is not None: + oprot.writeFieldBegin('replLastIdInfo', TType.STRUCT, 5) + self.replLastIdInfo.write(oprot) + oprot.writeFieldEnd() oprot.writeFieldStop() oprot.writeStructEnd() @@ -12237,6 +12250,149 @@ class CommitTxnRequest: value = (value * 31) ^ hash(self.replPolicy) value = (value * 31) ^ hash(self.writeEventInfos) value = (value * 31) ^ hash(self.keyValue) + value = (value * 31) ^ hash(self.replLastIdInfo) + return value + + 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 ReplLastIdInfo: + """ + Attributes: + - database + - lastReplId + - table + - catalog + - partitionList + - needUpdateDBReplId + """ + + thrift_spec = ( + None, # 0 + (1, TType.STRING, 'database', None, None, ), # 1 + (2, TType.I64, 'lastReplId', None, None, ), # 2 + (3, TType.STRING, 'table', None, None, ), # 3 + (4, TType.STRING, 'catalog', None, None, ), # 4 + (5, TType.LIST, 'partitionList', (TType.STRING,None), None, ), # 5 + (6, TType.BOOL, 'needUpdateDBReplId', None, None, ), # 6 + ) + + def __init__(self, database=None, lastReplId=None, table=None, catalog=None, partitionList=None, needUpdateDBReplId=None,): + self.database = database + self.lastReplId = lastReplId + self.table = table + self.catalog = catalog + self.partitionList = partitionList + self.needUpdateDBReplId = needUpdateDBReplId + + 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.STRING: + self.database = iprot.readString() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I64: + self.lastReplId = iprot.readI64() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + self.table = iprot.readString() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + self.catalog = iprot.readString() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.LIST: + self.partitionList = [] + (_etype540, _size537) = iprot.readListBegin() + for _i541 in xrange(_size537): + _elem542 = iprot.readString() + self.partitionList.append(_elem542) + iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.BOOL: + self.needUpdateDBReplId = iprot.readBool() + 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('ReplLastIdInfo') + if self.database is not None: + oprot.writeFieldBegin('database', TType.STRING, 1) + oprot.writeString(self.database) + oprot.writeFieldEnd() + if self.lastReplId is not None: + oprot.writeFieldBegin('lastReplId', TType.I64, 2) + oprot.writeI64(self.lastReplId) + oprot.writeFieldEnd() + if self.table is not None: + oprot.writeFieldBegin('table', TType.STRING, 3) + oprot.writeString(self.table) + oprot.writeFieldEnd() + if self.catalog is not None: + oprot.writeFieldBegin('catalog', TType.STRING, 4) + oprot.writeString(self.catalog) + oprot.writeFieldEnd() + if self.partitionList is not None: + oprot.writeFieldBegin('partitionList', TType.LIST, 5) + oprot.writeListBegin(TType.STRING, len(self.partitionList)) + for iter543 in self.partitionList: + oprot.writeString(iter543) + oprot.writeListEnd() + oprot.writeFieldEnd() + if self.needUpdateDBReplId is not None: + oprot.writeFieldBegin('needUpdateDBReplId', TType.BOOL, 6) + oprot.writeBool(self.needUpdateDBReplId) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + if self.database is None: + raise TProtocol.TProtocolException(message='Required field database is unset!') + if self.lastReplId is None: + raise TProtocol.TProtocolException(message='Required field lastReplId is unset!') + return + + + def __hash__(self): + value = 17 + value = (value * 31) ^ hash(self.database) + value = (value * 31) ^ hash(self.lastReplId) + value = (value * 31) ^ hash(self.table) + value = (value * 31) ^ hash(self.catalog) + value = (value * 31) ^ hash(self.partitionList) + value = (value * 31) ^ hash(self.needUpdateDBReplId) return value def __repr__(self): @@ -12467,10 +12623,10 @@ class ReplTblWriteIdStateRequest: elif fid == 6: if ftype == TType.LIST: self.partNames = [] - (_etype540, _size537) = iprot.readListBegin() - for _i541 in xrange(_size537): - _elem542 = iprot.readString() - self.partNames.append(_elem542) + (_etype547, _size544) = iprot.readListBegin() + for _i548 in xrange(_size544): + _elem549 = iprot.readString() + self.partNames.append(_elem549) iprot.readListEnd() else: iprot.skip(ftype) @@ -12507,8 +12663,8 @@ class ReplTblWriteIdStateRequest: if self.partNames is not None: oprot.writeFieldBegin('partNames', TType.LIST, 6) oprot.writeListBegin(TType.STRING, len(self.partNames)) - for iter543 in self.partNames: - oprot.writeString(iter543) + for iter550 in self.partNames: + oprot.writeString(iter550) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -12581,10 +12737,10 @@ class GetValidWriteIdsRequest: if fid == 1: if ftype == TType.LIST: self.fullTableNames = [] - (_etype547, _size544) = iprot.readListBegin() - for _i548 in xrange(_size544): - _elem549 = iprot.readString() - self.fullTableNames.append(_elem549) + (_etype554, _size551) = iprot.readListBegin() + for _i555 in xrange(_size551): + _elem556 = iprot.readString() + self.fullTableNames.append(_elem556) iprot.readListEnd() else: iprot.skip(ftype) @@ -12611,8 +12767,8 @@ class GetValidWriteIdsRequest: if self.fullTableNames is not None: oprot.writeFieldBegin('fullTableNames', TType.LIST, 1) oprot.writeListBegin(TType.STRING, len(self.fullTableNames)) - for iter550 in self.fullTableNames: - oprot.writeString(iter550) + for iter557 in self.fullTableNames: + oprot.writeString(iter557) oprot.writeListEnd() oprot.writeFieldEnd() if self.validTxnList is not None: @@ -12698,10 +12854,10 @@ class TableValidWriteIds: elif fid == 3: if ftype == TType.LIST: self.invalidWriteIds = [] - (_etype554, _size551) = iprot.readListBegin() - for _i555 in xrange(_size551): - _elem556 = iprot.readI64() - self.invalidWriteIds.append(_elem556) + (_etype561, _size558) = iprot.readListBegin() + for _i562 in xrange(_size558): + _elem563 = iprot.readI64() + self.invalidWriteIds.append(_elem563) iprot.readListEnd() else: iprot.skip(ftype) @@ -12736,8 +12892,8 @@ class TableValidWriteIds: if self.invalidWriteIds is not None: oprot.writeFieldBegin('invalidWriteIds', TType.LIST, 3) oprot.writeListBegin(TType.I64, len(self.invalidWriteIds)) - for iter557 in self.invalidWriteIds: - oprot.writeI64(iter557) + for iter564 in self.invalidWriteIds: + oprot.writeI64(iter564) oprot.writeListEnd() oprot.writeFieldEnd() if self.minOpenWriteId is not None: @@ -12809,11 +12965,11 @@ class GetValidWriteIdsResponse: if fid == 1: if ftype == TType.LIST: self.tblValidWriteIds = [] - (_etype561, _size558) = iprot.readListBegin() - for _i562 in xrange(_size558): - _elem563 = TableValidWriteIds() - _elem563.read(iprot) - self.tblValidWriteIds.append(_elem563) + (_etype568, _size565) = iprot.readListBegin() + for _i569 in xrange(_size565): + _elem570 = TableValidWriteIds() + _elem570.read(iprot) + self.tblValidWriteIds.append(_elem570) iprot.readListEnd() else: iprot.skip(ftype) @@ -12830,8 +12986,8 @@ class GetValidWriteIdsResponse: if self.tblValidWriteIds is not None: oprot.writeFieldBegin('tblValidWriteIds', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.tblValidWriteIds)) - for iter564 in self.tblValidWriteIds: - iter564.write(oprot) + for iter571 in self.tblValidWriteIds: + iter571.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -12907,10 +13063,10 @@ class AllocateTableWriteIdsRequest: elif fid == 3: if ftype == TType.LIST: self.txnIds = [] - (_etype568, _size565) = iprot.readListBegin() - for _i569 in xrange(_size565): - _elem570 = iprot.readI64() - self.txnIds.append(_elem570) + (_etype575, _size572) = iprot.readListBegin() + for _i576 in xrange(_size572): + _elem577 = iprot.readI64() + self.txnIds.append(_elem577) iprot.readListEnd() else: iprot.skip(ftype) @@ -12922,11 +13078,11 @@ class AllocateTableWriteIdsRequest: elif fid == 5: if ftype == TType.LIST: self.srcTxnToWriteIdList = [] - (_etype574, _size571) = iprot.readListBegin() - for _i575 in xrange(_size571): - _elem576 = TxnToWriteId() - _elem576.read(iprot) - self.srcTxnToWriteIdList.append(_elem576) + (_etype581, _size578) = iprot.readListBegin() + for _i582 in xrange(_size578): + _elem583 = TxnToWriteId() + _elem583.read(iprot) + self.srcTxnToWriteIdList.append(_elem583) iprot.readListEnd() else: iprot.skip(ftype) @@ -12951,8 +13107,8 @@ class AllocateTableWriteIdsRequest: if self.txnIds is not None: oprot.writeFieldBegin('txnIds', TType.LIST, 3) oprot.writeListBegin(TType.I64, len(self.txnIds)) - for iter577 in self.txnIds: - oprot.writeI64(iter577) + for iter584 in self.txnIds: + oprot.writeI64(iter584) oprot.writeListEnd() oprot.writeFieldEnd() if self.replPolicy is not None: @@ -12962,8 +13118,8 @@ class AllocateTableWriteIdsRequest: if self.srcTxnToWriteIdList is not None: oprot.writeFieldBegin('srcTxnToWriteIdList', TType.LIST, 5) oprot.writeListBegin(TType.STRUCT, len(self.srcTxnToWriteIdList)) - for iter578 in self.srcTxnToWriteIdList: - iter578.write(oprot) + for iter585 in self.srcTxnToWriteIdList: + iter585.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -13105,11 +13261,11 @@ class AllocateTableWriteIdsResponse: if fid == 1: if ftype == TType.LIST: self.txnToWriteIds = [] - (_etype582, _size579) = iprot.readListBegin() - for _i583 in xrange(_size579): - _elem584 = TxnToWriteId() - _elem584.read(iprot) - self.txnToWriteIds.append(_elem584) + (_etype589, _size586) = iprot.readListBegin() + for _i590 in xrange(_size586): + _elem591 = TxnToWriteId() + _elem591.read(iprot) + self.txnToWriteIds.append(_elem591) iprot.readListEnd() else: iprot.skip(ftype) @@ -13126,8 +13282,8 @@ class AllocateTableWriteIdsResponse: if self.txnToWriteIds is not None: oprot.writeFieldBegin('txnToWriteIds', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.txnToWriteIds)) - for iter585 in self.txnToWriteIds: - iter585.write(oprot) + for iter592 in self.txnToWriteIds: + iter592.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -13355,11 +13511,11 @@ class LockRequest: if fid == 1: if ftype == TType.LIST: self.component = [] - (_etype589, _size586) = iprot.readListBegin() - for _i590 in xrange(_size586): - _elem591 = LockComponent() - _elem591.read(iprot) - self.component.append(_elem591) + (_etype596, _size593) = iprot.readListBegin() + for _i597 in xrange(_size593): + _elem598 = LockComponent() + _elem598.read(iprot) + self.component.append(_elem598) iprot.readListEnd() else: iprot.skip(ftype) @@ -13396,8 +13552,8 @@ class LockRequest: if self.component is not None: oprot.writeFieldBegin('component', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.component)) - for iter592 in self.component: - iter592.write(oprot) + for iter599 in self.component: + iter599.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.txnid is not None: @@ -14095,11 +14251,11 @@ class ShowLocksResponse: if fid == 1: if ftype == TType.LIST: self.locks = [] - (_etype596, _size593) = iprot.readListBegin() - for _i597 in xrange(_size593): - _elem598 = ShowLocksResponseElement() - _elem598.read(iprot) - self.locks.append(_elem598) + (_etype603, _size600) = iprot.readListBegin() + for _i604 in xrange(_size600): + _elem605 = ShowLocksResponseElement() + _elem605.read(iprot) + self.locks.append(_elem605) iprot.readListEnd() else: iprot.skip(ftype) @@ -14116,8 +14272,8 @@ class ShowLocksResponse: if self.locks is not None: oprot.writeFieldBegin('locks', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.locks)) - for iter599 in self.locks: - iter599.write(oprot) + for iter606 in self.locks: + iter606.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -14332,20 +14488,20 @@ class HeartbeatTxnRangeResponse: if fid == 1: if ftype == TType.SET: self.aborted = set() - (_etype603, _size600) = iprot.readSetBegin() - for _i604 in xrange(_size600): - _elem605 = iprot.readI64() - self.aborted.add(_elem605) + (_etype610, _size607) = iprot.readSetBegin() + for _i611 in xrange(_size607): + _elem612 = iprot.readI64() + self.aborted.add(_elem612) iprot.readSetEnd() else: iprot.skip(ftype) elif fid == 2: if ftype == TType.SET: self.nosuch = set() - (_etype609, _size606) = iprot.readSetBegin() - for _i610 in xrange(_size606): - _elem611 = iprot.readI64() - self.nosuch.add(_elem611) + (_etype616, _size613) = iprot.readSetBegin() + for _i617 in xrange(_size613): + _elem618 = iprot.readI64() + self.nosuch.add(_elem618) iprot.readSetEnd() else: iprot.skip(ftype) @@ -14362,15 +14518,15 @@ class HeartbeatTxnRangeResponse: if self.aborted is not None: oprot.writeFieldBegin('aborted', TType.SET, 1) oprot.writeSetBegin(TType.I64, len(self.aborted)) - for iter612 in self.aborted: - oprot.writeI64(iter612) + for iter619 in self.aborted: + oprot.writeI64(iter619) oprot.writeSetEnd() oprot.writeFieldEnd() if self.nosuch is not None: oprot.writeFieldBegin('nosuch', TType.SET, 2) oprot.writeSetBegin(TType.I64, len(self.nosuch)) - for iter613 in self.nosuch: - oprot.writeI64(iter613) + for iter620 in self.nosuch: + oprot.writeI64(iter620) oprot.writeSetEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -14467,11 +14623,11 @@ class CompactionRequest: elif fid == 6: if ftype == TType.MAP: self.properties = {} - (_ktype615, _vtype616, _size614 ) = iprot.readMapBegin() - for _i618 in xrange(_size614): - _key619 = iprot.readString() - _val620 = iprot.readString() - self.properties[_key619] = _val620 + (_ktype622, _vtype623, _size621 ) = iprot.readMapBegin() + for _i625 in xrange(_size621): + _key626 = iprot.readString() + _val627 = iprot.readString() + self.properties[_key626] = _val627 iprot.readMapEnd() else: iprot.skip(ftype) @@ -14508,9 +14664,9 @@ class CompactionRequest: if self.properties is not None: oprot.writeFieldBegin('properties', TType.MAP, 6) oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.properties)) - for kiter621,viter622 in self.properties.items(): - oprot.writeString(kiter621) - oprot.writeString(viter622) + for kiter628,viter629 in self.properties.items(): + oprot.writeString(kiter628) + oprot.writeString(viter629) oprot.writeMapEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -14945,11 +15101,11 @@ class ShowCompactResponse: if fid == 1: if ftype == TType.LIST: self.compacts = [] - (_etype626, _size623) = iprot.readListBegin() - for _i627 in xrange(_size623): - _elem628 = ShowCompactResponseElement() - _elem628.read(iprot) - self.compacts.append(_elem628) + (_etype633, _size630) = iprot.readListBegin() + for _i634 in xrange(_size630): + _elem635 = ShowCompactResponseElement() + _elem635.read(iprot) + self.compacts.append(_elem635) iprot.readListEnd() else: iprot.skip(ftype) @@ -14966,8 +15122,8 @@ class ShowCompactResponse: if self.compacts is not None: oprot.writeFieldBegin('compacts', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.compacts)) - for iter629 in self.compacts: - iter629.write(oprot) + for iter636 in self.compacts: + iter636.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -15056,10 +15212,10 @@ class AddDynamicPartitions: elif fid == 5: if ftype == TType.LIST: self.partitionnames = [] - (_etype633, _size630) = iprot.readListBegin() - for _i634 in xrange(_size630): - _elem635 = iprot.readString() - self.partitionnames.append(_elem635) + (_etype640, _size637) = iprot.readListBegin() + for _i641 in xrange(_size637): + _elem642 = iprot.readString() + self.partitionnames.append(_elem642) iprot.readListEnd() else: iprot.skip(ftype) @@ -15097,8 +15253,8 @@ class AddDynamicPartitions: if self.partitionnames is not None: oprot.writeFieldBegin('partitionnames', TType.LIST, 5) oprot.writeListBegin(TType.STRING, len(self.partitionnames)) - for iter636 in self.partitionnames: - oprot.writeString(iter636) + for iter643 in self.partitionnames: + oprot.writeString(iter643) oprot.writeListEnd() oprot.writeFieldEnd() if self.operationType is not None: @@ -15331,10 +15487,10 @@ class CreationMetadata: elif fid == 4: if ftype == TType.SET: self.tablesUsed = set() - (_etype640, _size637) = iprot.readSetBegin() - for _i641 in xrange(_size637): - _elem642 = iprot.readString() - self.tablesUsed.add(_elem642) + (_etype647, _size644) = iprot.readSetBegin() + for _i648 in xrange(_size644): + _elem649 = iprot.readString() + self.tablesUsed.add(_elem649) iprot.readSetEnd() else: iprot.skip(ftype) @@ -15373,8 +15529,8 @@ class CreationMetadata: if self.tablesUsed is not None: oprot.writeFieldBegin('tablesUsed', TType.SET, 4) oprot.writeSetBegin(TType.STRING, len(self.tablesUsed)) - for iter643 in self.tablesUsed: - oprot.writeString(iter643) + for iter650 in self.tablesUsed: + oprot.writeString(iter650) oprot.writeSetEnd() oprot.writeFieldEnd() if self.validTxnList is not None: @@ -15691,11 +15847,11 @@ class NotificationEventResponse: if fid == 1: if ftype == TType.LIST: self.events = [] - (_etype647, _size644) = iprot.readListBegin() - for _i648 in xrange(_size644): - _elem649 = NotificationEvent() - _elem649.read(iprot) - self.events.append(_elem649) + (_etype654, _size651) = iprot.readListBegin() + for _i655 in xrange(_size651): + _elem656 = NotificationEvent() + _elem656.read(iprot) + self.events.append(_elem656) iprot.readListEnd() else: iprot.skip(ftype) @@ -15712,8 +15868,8 @@ class NotificationEventResponse: if self.events is not None: oprot.writeFieldBegin('events', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.events)) - for iter650 in self.events: - iter650.write(oprot) + for iter657 in self.events: + iter657.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -16036,30 +16192,30 @@ class InsertEventRequestData: elif fid == 2: if ftype == TType.LIST: self.filesAdded = [] - (_etype654, _size651) = iprot.readListBegin() - for _i655 in xrange(_size651): - _elem656 = iprot.readString() - self.filesAdded.append(_elem656) + (_etype661, _size658) = iprot.readListBegin() + for _i662 in xrange(_size658): + _elem663 = iprot.readString() + self.filesAdded.append(_elem663) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 3: if ftype == TType.LIST: self.filesAddedChecksum = [] - (_etype660, _size657) = iprot.readListBegin() - for _i661 in xrange(_size657): - _elem662 = iprot.readString() - self.filesAddedChecksum.append(_elem662) + (_etype667, _size664) = iprot.readListBegin() + for _i668 in xrange(_size664): + _elem669 = iprot.readString() + self.filesAddedChecksum.append(_elem669) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 4: if ftype == TType.LIST: self.subDirectoryList = [] - (_etype666, _size663) = iprot.readListBegin() - for _i667 in xrange(_size663): - _elem668 = iprot.readString() - self.subDirectoryList.append(_elem668) + (_etype673, _size670) = iprot.readListBegin() + for _i674 in xrange(_size670): + _elem675 = iprot.readString() + self.subDirectoryList.append(_elem675) iprot.readListEnd() else: iprot.skip(ftype) @@ -16080,22 +16236,22 @@ class InsertEventRequestData: if self.filesAdded is not None: oprot.writeFieldBegin('filesAdded', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.filesAdded)) - for iter669 in self.filesAdded: - oprot.writeString(iter669) + for iter676 in self.filesAdded: + oprot.writeString(iter676) oprot.writeListEnd() oprot.writeFieldEnd() if self.filesAddedChecksum is not None: oprot.writeFieldBegin('filesAddedChecksum', TType.LIST, 3) oprot.writeListBegin(TType.STRING, len(self.filesAddedChecksum)) - for iter670 in self.filesAddedChecksum: - oprot.writeString(iter670) + for iter677 in self.filesAddedChecksum: + oprot.writeString(iter677) oprot.writeListEnd() oprot.writeFieldEnd() if self.subDirectoryList is not None: oprot.writeFieldBegin('subDirectoryList', TType.LIST, 4) oprot.writeListBegin(TType.STRING, len(self.subDirectoryList)) - for iter671 in self.subDirectoryList: - oprot.writeString(iter671) + for iter678 in self.subDirectoryList: + oprot.writeString(iter678) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -16254,10 +16410,10 @@ class FireEventRequest: elif fid == 5: if ftype == TType.LIST: self.partitionVals = [] - (_etype675, _size672) = iprot.readListBegin() - for _i676 in xrange(_size672): - _elem677 = iprot.readString() - self.partitionVals.append(_elem677) + (_etype682, _size679) = iprot.readListBegin() + for _i683 in xrange(_size679): + _elem684 = iprot.readString() + self.partitionVals.append(_elem684) iprot.readListEnd() else: iprot.skip(ftype) @@ -16295,8 +16451,8 @@ class FireEventRequest: if self.partitionVals is not None: oprot.writeFieldBegin('partitionVals', TType.LIST, 5) oprot.writeListBegin(TType.STRING, len(self.partitionVals)) - for iter678 in self.partitionVals: - oprot.writeString(iter678) + for iter685 in self.partitionVals: + oprot.writeString(iter685) oprot.writeListEnd() oprot.writeFieldEnd() if self.catName is not None: @@ -16448,10 +16604,10 @@ class WriteNotificationLogRequest: elif fid == 6: if ftype == TType.LIST: self.partitionVals = [] - (_etype682, _size679) = iprot.readListBegin() - for _i683 in xrange(_size679): - _elem684 = iprot.readString() - self.partitionVals.append(_elem684) + (_etype689, _size686) = iprot.readListBegin() + for _i690 in xrange(_size686): + _elem691 = iprot.readString() + self.partitionVals.append(_elem691) iprot.readListEnd() else: iprot.skip(ftype) @@ -16488,8 +16644,8 @@ class WriteNotificationLogRequest: if self.partitionVals is not None: oprot.writeFieldBegin('partitionVals', TType.LIST, 6) oprot.writeListBegin(TType.STRING, len(self.partitionVals)) - for iter685 in self.partitionVals: - oprot.writeString(iter685) + for iter692 in self.partitionVals: + oprot.writeString(iter692) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -16683,12 +16839,12 @@ class GetFileMetadataByExprResult: if fid == 1: if ftype == TType.MAP: self.metadata = {} - (_ktype687, _vtype688, _size686 ) = iprot.readMapBegin() - for _i690 in xrange(_size686): - _key691 = iprot.readI64() - _val692 = MetadataPpdResult() - _val692.read(iprot) - self.metadata[_key691] = _val692 + (_ktype694, _vtype695, _size693 ) = iprot.readMapBegin() + for _i697 in xrange(_size693): + _key698 = iprot.readI64() + _val699 = MetadataPpdResult() + _val699.read(iprot) + self.metadata[_key698] = _val699 iprot.readMapEnd() else: iprot.skip(ftype) @@ -16710,9 +16866,9 @@ class GetFileMetadataByExprResult: if self.metadata is not None: oprot.writeFieldBegin('metadata', TType.MAP, 1) oprot.writeMapBegin(TType.I64, TType.STRUCT, len(self.metadata)) - for kiter693,viter694 in self.metadata.items(): - oprot.writeI64(kiter693) - viter694.write(oprot) + for kiter700,viter701 in self.metadata.items(): + oprot.writeI64(kiter700) + viter701.write(oprot) oprot.writeMapEnd() oprot.writeFieldEnd() if self.isSupported is not None: @@ -16782,10 +16938,10 @@ class GetFileMetadataByExprRequest: if fid == 1: if ftype == TType.LIST: self.fileIds = [] - (_etype698, _size695) = iprot.readListBegin() - for _i699 in xrange(_size695): - _elem700 = iprot.readI64() - self.fileIds.append(_elem700) + (_etype705, _size702) = iprot.readListBegin() + for _i706 in xrange(_size702): + _elem707 = iprot.readI64() + self.fileIds.append(_elem707) iprot.readListEnd() else: iprot.skip(ftype) @@ -16817,8 +16973,8 @@ class GetFileMetadataByExprRequest: if self.fileIds is not None: oprot.writeFieldBegin('fileIds', TType.LIST, 1) oprot.writeListBegin(TType.I64, len(self.fileIds)) - for iter701 in self.fileIds: - oprot.writeI64(iter701) + for iter708 in self.fileIds: + oprot.writeI64(iter708) oprot.writeListEnd() oprot.writeFieldEnd() if self.expr is not None: @@ -16892,11 +17048,11 @@ class GetFileMetadataResult: if fid == 1: if ftype == TType.MAP: self.metadata = {} - (_ktype703, _vtype704, _size702 ) = iprot.readMapBegin() - for _i706 in xrange(_size702): - _key707 = iprot.readI64() - _val708 = iprot.readString() - self.metadata[_key707] = _val708 + (_ktype710, _vtype711, _size709 ) = iprot.readMapBegin() + for _i713 in xrange(_size709): + _key714 = iprot.readI64() + _val715 = iprot.readString() + self.metadata[_key714] = _val715 iprot.readMapEnd() else: iprot.skip(ftype) @@ -16918,9 +17074,9 @@ class GetFileMetadataResult: if self.metadata is not None: oprot.writeFieldBegin('metadata', TType.MAP, 1) oprot.writeMapBegin(TType.I64, TType.STRING, len(self.metadata)) - for kiter709,viter710 in self.metadata.items(): - oprot.writeI64(kiter709) - oprot.writeString(viter710) + for kiter716,viter717 in self.metadata.items(): + oprot.writeI64(kiter716) + oprot.writeString(viter717) oprot.writeMapEnd() oprot.writeFieldEnd() if self.isSupported is not None: @@ -16981,10 +17137,10 @@ class GetFileMetadataRequest: if fid == 1: if ftype == TType.LIST: self.fileIds = [] - (_etype714, _size711) = iprot.readListBegin() - for _i715 in xrange(_size711): - _elem716 = iprot.readI64() - self.fileIds.append(_elem716) + (_etype721, _size718) = iprot.readListBegin() + for _i722 in xrange(_size718): + _elem723 = iprot.readI64() + self.fileIds.append(_elem723) iprot.readListEnd() else: iprot.skip(ftype) @@ -17001,8 +17157,8 @@ class GetFileMetadataRequest: if self.fileIds is not None: oprot.writeFieldBegin('fileIds', TType.LIST, 1) oprot.writeListBegin(TType.I64, len(self.fileIds)) - for iter717 in self.fileIds: - oprot.writeI64(iter717) + for iter724 in self.fileIds: + oprot.writeI64(iter724) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -17108,20 +17264,20 @@ class PutFileMetadataRequest: if fid == 1: if ftype == TType.LIST: self.fileIds = [] - (_etype721, _size718) = iprot.readListBegin() - for _i722 in xrange(_size718): - _elem723 = iprot.readI64() - self.fileIds.append(_elem723) + (_etype728, _size725) = iprot.readListBegin() + for _i729 in xrange(_size725): + _elem730 = iprot.readI64() + self.fileIds.append(_elem730) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 2: if ftype == TType.LIST: self.metadata = [] - (_etype727, _size724) = iprot.readListBegin() - for _i728 in xrange(_size724): - _elem729 = iprot.readString() - self.metadata.append(_elem729) + (_etype734, _size731) = iprot.readListBegin() + for _i735 in xrange(_size731): + _elem736 = iprot.readString() + self.metadata.append(_elem736) iprot.readListEnd() else: iprot.skip(ftype) @@ -17143,15 +17299,15 @@ class PutFileMetadataRequest: if self.fileIds is not None: oprot.writeFieldBegin('fileIds', TType.LIST, 1) oprot.writeListBegin(TType.I64, len(self.fileIds)) - for iter730 in self.fileIds: - oprot.writeI64(iter730) + for iter737 in self.fileIds: + oprot.writeI64(iter737) oprot.writeListEnd() oprot.writeFieldEnd() if self.metadata is not None: oprot.writeFieldBegin('metadata', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.metadata)) - for iter731 in self.metadata: - oprot.writeString(iter731) + for iter738 in self.metadata: + oprot.writeString(iter738) oprot.writeListEnd() oprot.writeFieldEnd() if self.type is not None: @@ -17259,10 +17415,10 @@ class ClearFileMetadataRequest: if fid == 1: if ftype == TType.LIST: self.fileIds = [] - (_etype735, _size732) = iprot.readListBegin() - for _i736 in xrange(_size732): - _elem737 = iprot.readI64() - self.fileIds.append(_elem737) + (_etype742, _size739) = iprot.readListBegin() + for _i743 in xrange(_size739): + _elem744 = iprot.readI64() + self.fileIds.append(_elem744) iprot.readListEnd() else: iprot.skip(ftype) @@ -17279,8 +17435,8 @@ class ClearFileMetadataRequest: if self.fileIds is not None: oprot.writeFieldBegin('fileIds', TType.LIST, 1) oprot.writeListBegin(TType.I64, len(self.fileIds)) - for iter738 in self.fileIds: - oprot.writeI64(iter738) + for iter745 in self.fileIds: + oprot.writeI64(iter745) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -17509,11 +17665,11 @@ class GetAllFunctionsResponse: if fid == 1: if ftype == TType.LIST: self.functions = [] - (_etype742, _size739) = iprot.readListBegin() - for _i743 in xrange(_size739): - _elem744 = Function() - _elem744.read(iprot) - self.functions.append(_elem744) + (_etype749, _size746) = iprot.readListBegin() + for _i750 in xrange(_size746): + _elem751 = Function() + _elem751.read(iprot) + self.functions.append(_elem751) iprot.readListEnd() else: iprot.skip(ftype) @@ -17530,8 +17686,8 @@ class GetAllFunctionsResponse: if self.functions is not None: oprot.writeFieldBegin('functions', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.functions)) - for iter745 in self.functions: - iter745.write(oprot) + for iter752 in self.functions: + iter752.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -17583,10 +17739,10 @@ class ClientCapabilities: if fid == 1: if ftype == TType.LIST: self.values = [] - (_etype749, _size746) = iprot.readListBegin() - for _i750 in xrange(_size746): - _elem751 = iprot.readI32() - self.values.append(_elem751) + (_etype756, _size753) = iprot.readListBegin() + for _i757 in xrange(_size753): + _elem758 = iprot.readI32() + self.values.append(_elem758) iprot.readListEnd() else: iprot.skip(ftype) @@ -17603,8 +17759,8 @@ class ClientCapabilities: if self.values is not None: oprot.writeFieldBegin('values', TType.LIST, 1) oprot.writeListBegin(TType.I32, len(self.values)) - for iter752 in self.values: - oprot.writeI32(iter752) + for iter759 in self.values: + oprot.writeI32(iter759) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -17876,10 +18032,10 @@ class GetTablesRequest: elif fid == 2: if ftype == TType.LIST: self.tblNames = [] - (_etype756, _size753) = iprot.readListBegin() - for _i757 in xrange(_size753): - _elem758 = iprot.readString() - self.tblNames.append(_elem758) + (_etype763, _size760) = iprot.readListBegin() + for _i764 in xrange(_size760): + _elem765 = iprot.readString() + self.tblNames.append(_elem765) iprot.readListEnd() else: iprot.skip(ftype) @@ -17911,8 +18067,8 @@ class GetTablesRequest: if self.tblNames is not None: oprot.writeFieldBegin('tblNames', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.tblNames)) - for iter759 in self.tblNames: - oprot.writeString(iter759) + for iter766 in self.tblNames: + oprot.writeString(iter766) oprot.writeListEnd() oprot.writeFieldEnd() if self.capabilities is not None: @@ -17977,11 +18133,11 @@ class GetTablesResult: if fid == 1: if ftype == TType.LIST: self.tables = [] - (_etype763, _size760) = iprot.readListBegin() - for _i764 in xrange(_size760): - _elem765 = Table() - _elem765.read(iprot) - self.tables.append(_elem765) + (_etype770, _size767) = iprot.readListBegin() + for _i771 in xrange(_size767): + _elem772 = Table() + _elem772.read(iprot) + self.tables.append(_elem772) iprot.readListEnd() else: iprot.skip(ftype) @@ -17998,8 +18154,8 @@ class GetTablesResult: if self.tables is not None: oprot.writeFieldBegin('tables', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.tables)) - for iter766 in self.tables: - iter766.write(oprot) + for iter773 in self.tables: + iter773.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -19298,44 +19454,44 @@ class WMFullResourcePlan: elif fid == 2: if ftype == TType.LIST: self.pools = [] - (_etype770, _size767) = iprot.readListBegin() - for _i771 in xrange(_size767): - _elem772 = WMPool() - _elem772.read(iprot) - self.pools.append(_elem772) + (_etype777, _size774) = iprot.readListBegin() + for _i778 in xrange(_size774): + _elem779 = WMPool() + _elem779.read(iprot) + self.pools.append(_elem779) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 3: if ftype == TType.LIST: self.mappings = [] - (_etype776, _size773) = iprot.readListBegin() - for _i777 in xrange(_size773): - _elem778 = WMMapping() - _elem778.read(iprot) - self.mappings.append(_elem778) + (_etype783, _size780) = iprot.readListBegin() + for _i784 in xrange(_size780): + _elem785 = WMMapping() + _elem785.read(iprot) + self.mappings.append(_elem785) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 4: if ftype == TType.LIST: self.triggers = [] - (_etype782, _size779) = iprot.readListBegin() - for _i783 in xrange(_size779): - _elem784 = WMTrigger() - _elem784.read(iprot) - self.triggers.append(_elem784) + (_etype789, _size786) = iprot.readListBegin() + for _i790 in xrange(_size786): + _elem791 = WMTrigger() + _elem791.read(iprot) + self.triggers.append(_elem791) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 5: if ftype == TType.LIST: self.poolTriggers = [] - (_etype788, _size785) = iprot.readListBegin() - for _i789 in xrange(_size785): - _elem790 = WMPoolTrigger() - _elem790.read(iprot) - self.poolTriggers.append(_elem790) + (_etype795, _size792) = iprot.readListBegin() + for _i796 in xrange(_size792): + _elem797 = WMPoolTrigger() + _elem797.read(iprot) + self.poolTriggers.append(_elem797) iprot.readListEnd() else: iprot.skip(ftype) @@ -19356,29 +19512,29 @@ class WMFullResourcePlan: if self.pools is not None: oprot.writeFieldBegin('pools', TType.LIST, 2) oprot.writeListBegin(TType.STRUCT, len(self.pools)) - for iter791 in self.pools: - iter791.write(oprot) + for iter798 in self.pools: + iter798.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.mappings is not None: oprot.writeFieldBegin('mappings', TType.LIST, 3) oprot.writeListBegin(TType.STRUCT, len(self.mappings)) - for iter792 in self.mappings: - iter792.write(oprot) + for iter799 in self.mappings: + iter799.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.triggers is not None: oprot.writeFieldBegin('triggers', TType.LIST, 4) oprot.writeListBegin(TType.STRUCT, len(self.triggers)) - for iter793 in self.triggers: - iter793.write(oprot) + for iter800 in self.triggers: + iter800.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.poolTriggers is not None: oprot.writeFieldBegin('poolTriggers', TType.LIST, 5) oprot.writeListBegin(TType.STRUCT, len(self.poolTriggers)) - for iter794 in self.poolTriggers: - iter794.write(oprot) + for iter801 in self.poolTriggers: + iter801.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -19903,11 +20059,11 @@ class WMGetAllResourcePlanResponse: if fid == 1: if ftype == TType.LIST: self.resourcePlans = [] - (_etype798, _size795) = iprot.readListBegin() - for _i799 in xrange(_size795): - _elem800 = WMResourcePlan() - _elem800.read(iprot) - self.resourcePlans.append(_elem800) + (_etype805, _size802) = iprot.readListBegin() + for _i806 in xrange(_size802): + _elem807 = WMResourcePlan() + _elem807.read(iprot) + self.resourcePlans.append(_elem807) iprot.readListEnd() else: iprot.skip(ftype) @@ -19924,8 +20080,8 @@ class WMGetAllResourcePlanResponse: if self.resourcePlans is not None: oprot.writeFieldBegin('resourcePlans', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.resourcePlans)) - for iter801 in self.resourcePlans: - iter801.write(oprot) + for iter808 in self.resourcePlans: + iter808.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -20255,20 +20411,20 @@ class WMValidateResourcePlanResponse: if fid == 1: if ftype == TType.LIST: self.errors = [] - (_etype805, _size802) = iprot.readListBegin() - for _i806 in xrange(_size802): - _elem807 = iprot.readString() - self.errors.append(_elem807) + (_etype812, _size809) = iprot.readListBegin() + for _i813 in xrange(_size809): + _elem814 = iprot.readString() + self.errors.append(_elem814) iprot.readListEnd() else: iprot.skip(ftype) elif fid == 2: if ftype == TType.LIST: self.warnings = [] - (_etype811, _size808) = iprot.readListBegin() - for _i812 in xrange(_size808): - _elem813 = iprot.readString() - self.warnings.append(_elem813) + (_etype818, _size815) = iprot.readListBegin() + for _i819 in xrange(_size815): + _elem820 = iprot.readString() + self.warnings.append(_elem820) iprot.readListEnd() else: iprot.skip(ftype) @@ -20285,15 +20441,15 @@ class WMValidateResourcePlanResponse: if self.errors is not None: oprot.writeFieldBegin('errors', TType.LIST, 1) oprot.writeListBegin(TType.STRING, len(self.errors)) - for iter814 in self.errors: - oprot.writeString(iter814) + for iter821 in self.errors: + oprot.writeString(iter821) oprot.writeListEnd() oprot.writeFieldEnd() if self.warnings is not None: oprot.writeFieldBegin('warnings', TType.LIST, 2) oprot.writeListBegin(TType.STRING, len(self.warnings)) - for iter815 in self.warnings: - oprot.writeString(iter815) + for iter822 in self.warnings: + oprot.writeString(iter822) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -20909,11 +21065,11 @@ class WMGetTriggersForResourePlanResponse: if fid == 1: if ftype == TType.LIST: self.triggers = [] - (_etype819, _size816) = iprot.readListBegin() - for _i820 in xrange(_size816): - _elem821 = WMTrigger() - _elem821.read(iprot) - self.triggers.append(_elem821) + (_etype826, _size823) = iprot.readListBegin() + for _i827 in xrange(_size823): + _elem828 = WMTrigger() + _elem828.read(iprot) + self.triggers.append(_elem828) iprot.readListEnd() else: iprot.skip(ftype) @@ -20930,8 +21086,8 @@ class WMGetTriggersForResourePlanResponse: if self.triggers is not None: oprot.writeFieldBegin('triggers', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.triggers)) - for iter822 in self.triggers: - iter822.write(oprot) + for iter829 in self.triggers: + iter829.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -22141,11 +22297,11 @@ class SchemaVersion: elif fid == 4: if ftype == TType.LIST: self.cols = [] - (_etype826, _size823) = iprot.readListBegin() - for _i827 in xrange(_size823): - _elem828 = FieldSchema() - _elem828.read(iprot) - self.cols.append(_elem828) + (_etype833, _size830) = iprot.readListBegin() + for _i834 in xrange(_size830): + _elem835 = FieldSchema() + _elem835.read(iprot) + self.cols.append(_elem835) iprot.readListEnd() else: iprot.skip(ftype) @@ -22205,8 +22361,8 @@ class SchemaVersion: if self.cols is not None: oprot.writeFieldBegin('cols', TType.LIST, 4) oprot.writeListBegin(TType.STRUCT, len(self.cols)) - for iter829 in self.cols: - iter829.write(oprot) + for iter836 in self.cols: + iter836.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.state is not None: @@ -22461,11 +22617,11 @@ class FindSchemasByColsResp: if fid == 1: if ftype == TType.LIST: self.schemaVersions = [] - (_etype833, _size830) = iprot.readListBegin() - for _i834 in xrange(_size830): - _elem835 = SchemaVersionDescriptor() - _elem835.read(iprot) - self.schemaVersions.append(_elem835) + (_etype840, _size837) = iprot.readListBegin() + for _i841 in xrange(_size837): + _elem842 = SchemaVersionDescriptor() + _elem842.read(iprot) + self.schemaVersions.append(_elem842) iprot.readListEnd() else: iprot.skip(ftype) @@ -22482,8 +22638,8 @@ class FindSchemasByColsResp: if self.schemaVersions is not None: oprot.writeFieldBegin('schemaVersions', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.schemaVersions)) - for iter836 in self.schemaVersions: - iter836.write(oprot) + for iter843 in self.schemaVersions: + iter843.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -22968,11 +23124,11 @@ class AlterPartitionsRequest: elif fid == 4: if ftype == TType.LIST: self.partitions = [] - (_etype840, _size837) = iprot.readListBegin() - for _i841 in xrange(_size837): - _elem842 = Partition() - _elem842.read(iprot) - self.partitions.append(_elem842) + (_etype847, _size844) = iprot.readListBegin() + for _i848 in xrange(_size844): + _elem849 = Partition() + _elem849.read(iprot) + self.partitions.append(_elem849) iprot.readListEnd() else: iprot.skip(ftype) @@ -23017,8 +23173,8 @@ class AlterPartitionsRequest: if self.partitions is not None: oprot.writeFieldBegin('partitions', TType.LIST, 4) oprot.writeListBegin(TType.STRUCT, len(self.partitions)) - for iter843 in self.partitions: - iter843.write(oprot) + for iter850 in self.partitions: + iter850.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() if self.environmentContext is not None: @@ -23170,10 +23326,10 @@ class RenamePartitionRequest: elif fid == 4: if ftype == TType.LIST: self.partVals = [] - (_etype847, _size844) = iprot.readListBegin() - for _i848 in xrange(_size844): - _elem849 = iprot.readString() - self.partVals.append(_elem849) + (_etype854, _size851) = iprot.readListBegin() + for _i855 in xrange(_size851): + _elem856 = iprot.readString() + self.partVals.append(_elem856) iprot.readListEnd() else: iprot.skip(ftype) @@ -23213,8 +23369,8 @@ class RenamePartitionRequest: if self.partVals is not None: oprot.writeFieldBegin('partVals', TType.LIST, 4) oprot.writeListBegin(TType.STRING, len(self.partVals)) - for iter850 in self.partVals: - oprot.writeString(iter850) + for iter857 in self.partVals: + oprot.writeString(iter857) oprot.writeListEnd() oprot.writeFieldEnd() if self.newPart is not None: @@ -23536,10 +23692,10 @@ class GetPartitionsProjectionSpec: if fid == 1: if ftype == TType.LIST: self.fieldList = [] - (_etype854, _size851) = iprot.readListBegin() - for _i855 in xrange(_size851): - _elem856 = iprot.readString() - self.fieldList.append(_elem856) + (_etype861, _size858) = iprot.readListBegin() + for _i862 in xrange(_size858): + _elem863 = iprot.readString() + self.fieldList.append(_elem863) iprot.readListEnd() else: iprot.skip(ftype) @@ -23566,8 +23722,8 @@ class GetPartitionsProjectionSpec: if self.fieldList is not None: oprot.writeFieldBegin('fieldList', TType.LIST, 1) oprot.writeListBegin(TType.STRING, len(self.fieldList)) - for iter857 in self.fieldList: - oprot.writeString(iter857) + for iter864 in self.fieldList: + oprot.writeString(iter864) oprot.writeListEnd() oprot.writeFieldEnd() if self.includeParamKeyPattern is not None: @@ -23643,10 +23799,10 @@ class GetPartitionsFilterSpec: elif fid == 8: if ftype == TType.LIST: self.filters = [] - (_etype861, _size858) = iprot.readListBegin() - for _i862 in xrange(_size858): - _elem863 = iprot.readString() - self.filters.append(_elem863) + (_etype868, _size865) = iprot.readListBegin() + for _i869 in xrange(_size865): + _elem870 = iprot.readString() + self.filters.append(_elem870) iprot.readListEnd() else: iprot.skip(ftype) @@ -23667,8 +23823,8 @@ class GetPartitionsFilterSpec: if self.filters is not None: oprot.writeFieldBegin('filters', TType.LIST, 8) oprot.writeListBegin(TType.STRING, len(self.filters)) - for iter864 in self.filters: - oprot.writeString(iter864) + for iter871 in self.filters: + oprot.writeString(iter871) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -23721,11 +23877,11 @@ class GetPartitionsResponse: if fid == 1: if ftype == TType.LIST: self.partitionSpec = [] - (_etype868, _size865) = iprot.readListBegin() - for _i869 in xrange(_size865): - _elem870 = PartitionSpec() - _elem870.read(iprot) - self.partitionSpec.append(_elem870) + (_etype875, _size872) = iprot.readListBegin() + for _i876 in xrange(_size872): + _elem877 = PartitionSpec() + _elem877.read(iprot) + self.partitionSpec.append(_elem877) iprot.readListEnd() else: iprot.skip(ftype) @@ -23742,8 +23898,8 @@ class GetPartitionsResponse: if self.partitionSpec is not None: oprot.writeFieldBegin('partitionSpec', TType.LIST, 1) oprot.writeListBegin(TType.STRUCT, len(self.partitionSpec)) - for iter871 in self.partitionSpec: - iter871.write(oprot) + for iter878 in self.partitionSpec: + iter878.write(oprot) oprot.writeListEnd() oprot.writeFieldEnd() oprot.writeFieldStop() @@ -23841,10 +23997,10 @@ class GetPartitionsRequest: elif fid == 6: if ftype == TType.LIST: self.groupNames = [] - (_etype875, _size872) = iprot.readListBegin() - for _i876 in xrange(_size872): - _elem877 = iprot.readString() - self.groupNames.append(_elem877) + (_etype882, _size879) = iprot.readListBegin() + for _i883 in xrange(_size879): + _elem884 = iprot.readString() + self.groupNames.append(_elem884) iprot.readListEnd() else: iprot.skip(ftype) @@ -23893,8 +24049,8 @@ class GetPartitionsRequest: if self.groupNames is not None: oprot.writeFieldBegin('groupNames', TType.LIST, 6) oprot.writeListBegin(TType.STRING, len(self.groupNames)) - for iter878 in self.groupNames: - oprot.writeString(iter878) + for iter885 in self.groupNames: + oprot.writeString(iter885) oprot.writeListEnd() oprot.writeFieldEnd() if self.projectionSpec is not None: http://git-wip-us.apache.org/repos/asf/hive/blob/10cfba20/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb b/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb index 46973bf..97dc069 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb @@ -2707,12 +2707,14 @@ class CommitTxnRequest REPLPOLICY = 2 WRITEEVENTINFOS = 3 KEYVALUE = 4 + REPLLASTIDINFO = 5 FIELDS = { TXNID => {:type => ::Thrift::Types::I64, :name => 'txnid'}, REPLPOLICY => {:type => ::Thrift::Types::STRING, :name => 'replPolicy', :optional => true}, WRITEEVENTINFOS => {:type => ::Thrift::Types::LIST, :name => 'writeEventInfos', :element => {:type => ::Thrift::Types::STRUCT, :class => ::WriteEventInfo}, :optional => true}, - KEYVALUE => {:type => ::Thrift::Types::STRUCT, :name => 'keyValue', :class => ::CommitTxnKeyValue, :optional => true} + KEYVALUE => {:type => ::Thrift::Types::STRUCT, :name => 'keyValue', :class => ::CommitTxnKeyValue, :optional => true}, + REPLLASTIDINFO => {:type => ::Thrift::Types::STRUCT, :name => 'replLastIdInfo', :class => ::ReplLastIdInfo, :optional => true} } def struct_fields; FIELDS; end @@ -2724,6 +2726,34 @@ class CommitTxnRequest ::Thrift::Struct.generate_accessors self end +class ReplLastIdInfo + include ::Thrift::Struct, ::Thrift::Struct_Union + DATABASE = 1 + LASTREPLID = 2 + TABLE = 3 + CATALOG = 4 + PARTITIONLIST = 5 + NEEDUPDATEDBREPLID = 6 + + FIELDS = { + DATABASE => {:type => ::Thrift::Types::STRING, :name => 'database'}, + LASTREPLID => {:type => ::Thrift::Types::I64, :name => 'lastReplId'}, + TABLE => {:type => ::Thrift::Types::STRING, :name => 'table', :optional => true}, + CATALOG => {:type => ::Thrift::Types::STRING, :name => 'catalog', :optional => true}, + PARTITIONLIST => {:type => ::Thrift::Types::LIST, :name => 'partitionList', :element => {:type => ::Thrift::Types::STRING}, :optional => true}, + NEEDUPDATEDBREPLID => {:type => ::Thrift::Types::BOOL, :name => 'needUpdateDBReplId', :optional => true} + } + + def struct_fields; FIELDS; end + + def validate + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field database is unset!') unless @database + raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastReplId is unset!') unless @lastReplId + end + + ::Thrift::Struct.generate_accessors self +end + class WriteEventInfo include ::Thrift::Struct, ::Thrift::Struct_Union WRITEID = 1 http://git-wip-us.apache.org/repos/asf/hive/blob/10cfba20/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java index 1ff749e..9eb1193 100644 --- a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java +++ b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java @@ -2802,7 +2802,7 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { public List<Long> replOpenTxn(String replPolicy, List<Long> srcTxnIds, String user) throws TException { // As this is called from replication task, the user is the user who has fired the repl command. // This is required for standalone metastore authentication. - OpenTxnsResponse txns = openTxnsIntr(user, srcTxnIds.size(), replPolicy, srcTxnIds); + OpenTxnsResponse txns = openTxnsIntr(user, srcTxnIds != null ? srcTxnIds.size() : 1, replPolicy, srcTxnIds); return txns.getTxn_ids(); } http://git-wip-us.apache.org/repos/asf/hive/blob/10cfba20/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift index 1676b4c..cb899d7 100644 --- a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift +++ b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift @@ -912,6 +912,18 @@ struct CommitTxnRequest { // An optional key/value to store atomically with the transaction 4: optional CommitTxnKeyValue keyValue, + + // Information to update the last repl id of table/partition along with commit txn (replication from 2.6 to 3.0) + 5: optional ReplLastIdInfo replLastIdInfo, +} + +struct ReplLastIdInfo { + 1: required string database, + 2: required i64 lastReplId, + 3: optional string table, + 4: optional string catalog, + 5: optional list<string> partitionList, + 6: optional bool needUpdateDBReplId, } struct WriteEventInfo { http://git-wip-us.apache.org/repos/asf/hive/blob/10cfba20/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java index a38c1aa..414402f 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterPartitionMessage.java @@ -146,7 +146,7 @@ public class JSONAlterPartitionMessage extends AlterPartitionMessage { @Override public Long getWriteId() { - return writeId; + return writeId == null ? 0 : writeId; } @Override http://git-wip-us.apache.org/repos/asf/hive/blob/10cfba20/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java index d6ec826..8c621b2 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/messaging/json/JSONAlterTableMessage.java @@ -121,7 +121,7 @@ public class JSONAlterTableMessage extends AlterTableMessage { @Override public Long getWriteId() { - return writeId ; + return writeId == null ? 0 : writeId; } @Override http://git-wip-us.apache.org/repos/asf/hive/blob/10cfba20/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java index 25d79ad..3928d69 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java @@ -83,10 +83,13 @@ import org.apache.hadoop.hive.metastore.metrics.MetricsConstants; import org.apache.hadoop.hive.metastore.tools.SQLGenerator; import org.apache.hadoop.hive.metastore.utils.JavaUtils; import org.apache.hadoop.hive.metastore.utils.MetaStoreServerUtils; +import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils; import org.apache.hadoop.hive.metastore.utils.StringableMap; import org.apache.hadoop.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.hadoop.hive.metastore.DatabaseProduct.MYSQL; +import static org.apache.hadoop.hive.metastore.utils.StringUtils.normalizeIdentifier; import com.google.common.annotations.VisibleForTesting; @@ -864,6 +867,168 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI { } } + private void updateReplId(Connection dbConn, ReplLastIdInfo replLastIdInfo) throws SQLException, MetaException { + PreparedStatement pst = null; + PreparedStatement pstInt = null; + ResultSet rs = null; + ResultSet prs = null; + Statement stmt = null; + String lastReplId = Long.toString(replLastIdInfo.getLastReplId()); + String catalog = replLastIdInfo.isSetCatalog() ? normalizeIdentifier(replLastIdInfo.getCatalog()) : + MetaStoreUtils.getDefaultCatalog(conf); + String db = normalizeIdentifier(replLastIdInfo.getDatabase()); + String table = replLastIdInfo.isSetTable() ? normalizeIdentifier(replLastIdInfo.getTable()) : null; + List<String> partList = replLastIdInfo.isSetPartitionList() ? replLastIdInfo.getPartitionList() : null; + boolean needUpdateDBReplId = replLastIdInfo.isSetNeedUpdateDBReplId() && replLastIdInfo.isNeedUpdateDBReplId(); + + try { + stmt = dbConn.createStatement(); + + if (sqlGenerator.getDbProduct() == MYSQL) { + stmt.execute("SET @@session.sql_mode=ANSI_QUOTES"); + } + + String query = "select \"DB_ID\" from \"DBS\" where \"NAME\" = ? and \"CTLG_NAME\" = ?"; + List<String> params = Arrays.asList(db, catalog); + pst = sqlGenerator.prepareStmtWithParameters(dbConn, query, params); + LOG.debug("Going to execute query <" + query.replaceAll("\\?", "{}") + ">", + quoteString(db), quoteString(catalog)); + rs = pst.executeQuery(); + if (!rs.next()) { + throw new MetaException("DB with name " + db + " does not exist in catalog " + catalog); + } + long dbId = rs.getLong(1); + rs.close(); + pst.close(); + + if (needUpdateDBReplId) { + // not used select for update as it will be updated by single thread only from repl load + rs = stmt.executeQuery("select PARAM_VALUE from DATABASE_PARAMS where PARAM_KEY = " + + "'repl.last.id' and DB_ID = " + dbId); + if (!rs.next()) { + query = "insert into DATABASE_PARAMS values ( " + dbId + " , 'repl.last.id' , ? )"; + } else { + query = "update DATABASE_PARAMS set PARAM_VALUE = ? where DB_ID = " + dbId + + " and PARAM_KEY = 'repl.last.id'"; + } + close(rs); + params = Arrays.asList(lastReplId); + pst = sqlGenerator.prepareStmtWithParameters(dbConn, query, params); + LOG.debug("Updating repl id for db <" + query.replaceAll("\\?", "{}") + ">", lastReplId); + if (pst.executeUpdate() != 1) { + //only one row insert or update should happen + throw new RuntimeException("DATABASE_PARAMS is corrupted for db " + db); + } + pst.close(); + } + + if (table == null) { + // if only database last repl id to be updated. + return; + } + + query = "select \"TBL_ID\" from \"TBLS\" where \"TBL_NAME\" = ? and \"DB_ID\" = " + dbId; + params = Arrays.asList(table); + pst = sqlGenerator.prepareStmtWithParameters(dbConn, query, params); + LOG.debug("Going to execute query <" + query.replaceAll("\\?", "{}") + ">", quoteString(table)); + + rs = pst.executeQuery(); + if (!rs.next()) { + throw new MetaException("Table with name " + table + " does not exist in db " + catalog + "." + db); + } + long tblId = rs.getLong(1); + rs.close(); + pst.close(); + + // select for update is not required as only one task will update this during repl load. + rs = stmt.executeQuery("select PARAM_VALUE from TABLE_PARAMS where PARAM_KEY = " + + "'repl.last.id' and TBL_ID = " + tblId); + if (!rs.next()) { + query = "insert into TABLE_PARAMS values ( " + tblId + " , 'repl.last.id' , ? )"; + } else { + query = "update TABLE_PARAMS set PARAM_VALUE = ? where TBL_ID = " + tblId + + " and PARAM_KEY = 'repl.last.id'"; + } + rs.close(); + + params = Arrays.asList(lastReplId); + pst = sqlGenerator.prepareStmtWithParameters(dbConn, query, params); + LOG.debug("Updating repl id for table <" + query.replaceAll("\\?", "{}") + ">", lastReplId); + if (pst.executeUpdate() != 1) { + //only one row insert or update should happen + throw new RuntimeException("TABLE_PARAMS is corrupted for table " + table); + } + pst.close(); + + if (partList == null || partList.isEmpty()) { + return; + } + + List<String> questions = new ArrayList<>(); + for(int i = 0; i < partList.size(); ++i) { + questions.add("?"); + } + + List<String> queries = new ArrayList<>(); + StringBuilder prefix = new StringBuilder(); + StringBuilder suffix = new StringBuilder(); + prefix.append("select \"PART_ID\" from \"PARTITIONS\" where \"TBL_ID\" = " + tblId + " and "); + + // Populate the complete query with provided prefix and suffix + List<Integer> counts = TxnUtils.buildQueryWithINClauseStrings(conf, queries, prefix, suffix, + questions, "\"PART_NAME\"", true, false); + int totalCount = 0; + assert queries.size() == counts.size(); + params = Arrays.asList(lastReplId); + for (int i = 0; i < queries.size(); i++) { + query = queries.get(i); + int partCount = counts.get(i); + + LOG.debug("Going to execute query " + query + " with partitions " + + partList.subList(totalCount, (totalCount + partCount))); + pst = dbConn.prepareStatement(query); + for (int j = 0; j < partCount; j++) { + pst.setString(j + 1, partList.get(totalCount + j)); + } + totalCount += partCount; + prs = pst.executeQuery(); + while (prs.next()) { + long partId = prs.getLong(1); + rs = stmt.executeQuery("select PARAM_VALUE from PARTITION_PARAMS where PARAM_KEY " + + " = 'repl.last.id' and PART_ID = " + partId); + if (!rs.next()) { + query = "insert into PARTITION_PARAMS values ( " + partId + " , 'repl.last.id' , ? )"; + } else { + query = "update PARTITION_PARAMS set PARAM_VALUE = ? " + + " where PART_ID = " + partId + " and PARAM_KEY = 'repl.last.id'"; + } + rs.close(); + + pstInt = sqlGenerator.prepareStmtWithParameters(dbConn, query, params); + LOG.debug("Updating repl id for part <" + query.replaceAll("\\?", "{}") + ">", lastReplId); + if (pstInt.executeUpdate() != 1) { + //only one row insert or update should happen + throw new RuntimeException("PARTITION_PARAMS is corrupted for partition " + partId); + } + partCount--; + pstInt.close(); + } + if (partCount != 0) { + throw new MetaException(partCount + " Number of partition among " + partList + " does not exist in table " + + catalog + "." + db + "." + table); + } + prs.close(); + pst.close(); + } + } finally { + closeStmt(stmt); + close(rs); + close(prs); + closeStmt(pst); + closeStmt(pstInt); + } + } + /** * Concurrency/isolation notes: * This is mutexed with {@link #openTxns(OpenTxnRequest)} and other {@link #commitTxn(CommitTxnRequest)} @@ -908,6 +1073,10 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI { dbConn = getDbConn(Connection.TRANSACTION_READ_COMMITTED); stmt = dbConn.createStatement(); + if (rqst.isSetReplLastIdInfo()) { + updateReplId(dbConn, rqst.getReplLastIdInfo()); + } + if (rqst.isSetReplPolicy()) { sourceTxnId = rqst.getTxnid(); List<Long> targetTxnIds = getTargetTxnIdList(rqst.getReplPolicy(),
