You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sa...@apache.org on 2018/04/02 04:32:51 UTC
[02/12] hive git commit: HIVE-18781: Create/Replicate Open,
Commit (without writes) and Abort Txn events (Mahesh Kumar Behera,
reviewed by Sankar Hariappan)
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
index faeeea0..972db1f 100644
--- a/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
+++ b/standalone-metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
@@ -11085,6 +11085,8 @@ class OpenTxnRequest:
- user
- hostname
- agentInfo
+ - replPolicy
+ - replSrcTxnIds
"""
thrift_spec = (
@@ -11093,13 +11095,17 @@ class OpenTxnRequest:
(2, TType.STRING, 'user', None, None, ), # 2
(3, TType.STRING, 'hostname', None, None, ), # 3
(4, TType.STRING, 'agentInfo', None, "Unknown", ), # 4
+ (5, TType.STRING, 'replPolicy', None, None, ), # 5
+ (6, TType.LIST, 'replSrcTxnIds', (TType.I64,None), None, ), # 6
)
- def __init__(self, num_txns=None, user=None, hostname=None, agentInfo=thrift_spec[4][4],):
+ def __init__(self, num_txns=None, user=None, hostname=None, agentInfo=thrift_spec[4][4], replPolicy=None, replSrcTxnIds=None,):
self.num_txns = num_txns
self.user = user
self.hostname = hostname
self.agentInfo = agentInfo
+ self.replPolicy = replPolicy
+ self.replSrcTxnIds = replSrcTxnIds
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:
@@ -11130,6 +11136,21 @@ class OpenTxnRequest:
self.agentInfo = iprot.readString()
else:
iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.replPolicy = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.LIST:
+ self.replSrcTxnIds = []
+ (_etype505, _size502) = iprot.readListBegin()
+ for _i506 in xrange(_size502):
+ _elem507 = iprot.readI64()
+ self.replSrcTxnIds.append(_elem507)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -11156,6 +11177,17 @@ class OpenTxnRequest:
oprot.writeFieldBegin('agentInfo', TType.STRING, 4)
oprot.writeString(self.agentInfo)
oprot.writeFieldEnd()
+ if self.replPolicy is not None:
+ oprot.writeFieldBegin('replPolicy', TType.STRING, 5)
+ oprot.writeString(self.replPolicy)
+ oprot.writeFieldEnd()
+ if self.replSrcTxnIds is not None:
+ oprot.writeFieldBegin('replSrcTxnIds', TType.LIST, 6)
+ oprot.writeListBegin(TType.I64, len(self.replSrcTxnIds))
+ for iter508 in self.replSrcTxnIds:
+ oprot.writeI64(iter508)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
@@ -11175,6 +11207,8 @@ class OpenTxnRequest:
value = (value * 31) ^ hash(self.user)
value = (value * 31) ^ hash(self.hostname)
value = (value * 31) ^ hash(self.agentInfo)
+ value = (value * 31) ^ hash(self.replPolicy)
+ value = (value * 31) ^ hash(self.replSrcTxnIds)
return value
def __repr__(self):
@@ -11214,10 +11248,10 @@ class OpenTxnsResponse:
if fid == 1:
if ftype == TType.LIST:
self.txn_ids = []
- (_etype505, _size502) = iprot.readListBegin()
- for _i506 in xrange(_size502):
- _elem507 = iprot.readI64()
- self.txn_ids.append(_elem507)
+ (_etype512, _size509) = iprot.readListBegin()
+ for _i513 in xrange(_size509):
+ _elem514 = iprot.readI64()
+ self.txn_ids.append(_elem514)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11234,8 +11268,8 @@ class OpenTxnsResponse:
if self.txn_ids is not None:
oprot.writeFieldBegin('txn_ids', TType.LIST, 1)
oprot.writeListBegin(TType.I64, len(self.txn_ids))
- for iter508 in self.txn_ids:
- oprot.writeI64(iter508)
+ for iter515 in self.txn_ids:
+ oprot.writeI64(iter515)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -11267,15 +11301,18 @@ class AbortTxnRequest:
"""
Attributes:
- txnid
+ - replPolicy
"""
thrift_spec = (
None, # 0
(1, TType.I64, 'txnid', None, None, ), # 1
+ (2, TType.STRING, 'replPolicy', None, None, ), # 2
)
- def __init__(self, txnid=None,):
+ def __init__(self, txnid=None, replPolicy=None,):
self.txnid = txnid
+ self.replPolicy = replPolicy
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:
@@ -11291,6 +11328,11 @@ class AbortTxnRequest:
self.txnid = iprot.readI64()
else:
iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.replPolicy = iprot.readString()
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -11305,6 +11347,10 @@ class AbortTxnRequest:
oprot.writeFieldBegin('txnid', TType.I64, 1)
oprot.writeI64(self.txnid)
oprot.writeFieldEnd()
+ if self.replPolicy is not None:
+ oprot.writeFieldBegin('replPolicy', TType.STRING, 2)
+ oprot.writeString(self.replPolicy)
+ oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
@@ -11317,6 +11363,7 @@ class AbortTxnRequest:
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.txnid)
+ value = (value * 31) ^ hash(self.replPolicy)
return value
def __repr__(self):
@@ -11356,10 +11403,10 @@ class AbortTxnsRequest:
if fid == 1:
if ftype == TType.LIST:
self.txn_ids = []
- (_etype512, _size509) = iprot.readListBegin()
- for _i513 in xrange(_size509):
- _elem514 = iprot.readI64()
- self.txn_ids.append(_elem514)
+ (_etype519, _size516) = iprot.readListBegin()
+ for _i520 in xrange(_size516):
+ _elem521 = iprot.readI64()
+ self.txn_ids.append(_elem521)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11376,8 +11423,8 @@ class AbortTxnsRequest:
if self.txn_ids is not None:
oprot.writeFieldBegin('txn_ids', TType.LIST, 1)
oprot.writeListBegin(TType.I64, len(self.txn_ids))
- for iter515 in self.txn_ids:
- oprot.writeI64(iter515)
+ for iter522 in self.txn_ids:
+ oprot.writeI64(iter522)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -11409,15 +11456,18 @@ class CommitTxnRequest:
"""
Attributes:
- txnid
+ - replPolicy
"""
thrift_spec = (
None, # 0
(1, TType.I64, 'txnid', None, None, ), # 1
+ (2, TType.STRING, 'replPolicy', None, None, ), # 2
)
- def __init__(self, txnid=None,):
+ def __init__(self, txnid=None, replPolicy=None,):
self.txnid = txnid
+ self.replPolicy = replPolicy
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:
@@ -11433,6 +11483,11 @@ class CommitTxnRequest:
self.txnid = iprot.readI64()
else:
iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.replPolicy = iprot.readString()
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -11447,6 +11502,10 @@ class CommitTxnRequest:
oprot.writeFieldBegin('txnid', TType.I64, 1)
oprot.writeI64(self.txnid)
oprot.writeFieldEnd()
+ if self.replPolicy is not None:
+ oprot.writeFieldBegin('replPolicy', TType.STRING, 2)
+ oprot.writeString(self.replPolicy)
+ oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
@@ -11459,6 +11518,7 @@ class CommitTxnRequest:
def __hash__(self):
value = 17
value = (value * 31) ^ hash(self.txnid)
+ value = (value * 31) ^ hash(self.replPolicy)
return value
def __repr__(self):
@@ -11501,10 +11561,10 @@ class GetValidWriteIdsRequest:
if fid == 1:
if ftype == TType.LIST:
self.fullTableNames = []
- (_etype519, _size516) = iprot.readListBegin()
- for _i520 in xrange(_size516):
- _elem521 = iprot.readString()
- self.fullTableNames.append(_elem521)
+ (_etype526, _size523) = iprot.readListBegin()
+ for _i527 in xrange(_size523):
+ _elem528 = iprot.readString()
+ self.fullTableNames.append(_elem528)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11526,8 +11586,8 @@ class GetValidWriteIdsRequest:
if self.fullTableNames is not None:
oprot.writeFieldBegin('fullTableNames', TType.LIST, 1)
oprot.writeListBegin(TType.STRING, len(self.fullTableNames))
- for iter522 in self.fullTableNames:
- oprot.writeString(iter522)
+ for iter529 in self.fullTableNames:
+ oprot.writeString(iter529)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.validTxnList is not None:
@@ -11610,10 +11670,10 @@ class TableValidWriteIds:
elif fid == 3:
if ftype == TType.LIST:
self.invalidWriteIds = []
- (_etype526, _size523) = iprot.readListBegin()
- for _i527 in xrange(_size523):
- _elem528 = iprot.readI64()
- self.invalidWriteIds.append(_elem528)
+ (_etype533, _size530) = iprot.readListBegin()
+ for _i534 in xrange(_size530):
+ _elem535 = iprot.readI64()
+ self.invalidWriteIds.append(_elem535)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11648,8 +11708,8 @@ class TableValidWriteIds:
if self.invalidWriteIds is not None:
oprot.writeFieldBegin('invalidWriteIds', TType.LIST, 3)
oprot.writeListBegin(TType.I64, len(self.invalidWriteIds))
- for iter529 in self.invalidWriteIds:
- oprot.writeI64(iter529)
+ for iter536 in self.invalidWriteIds:
+ oprot.writeI64(iter536)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.minOpenWriteId is not None:
@@ -11721,11 +11781,11 @@ class GetValidWriteIdsResponse:
if fid == 1:
if ftype == TType.LIST:
self.tblValidWriteIds = []
- (_etype533, _size530) = iprot.readListBegin()
- for _i534 in xrange(_size530):
- _elem535 = TableValidWriteIds()
- _elem535.read(iprot)
- self.tblValidWriteIds.append(_elem535)
+ (_etype540, _size537) = iprot.readListBegin()
+ for _i541 in xrange(_size537):
+ _elem542 = TableValidWriteIds()
+ _elem542.read(iprot)
+ self.tblValidWriteIds.append(_elem542)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11742,8 +11802,8 @@ class GetValidWriteIdsResponse:
if self.tblValidWriteIds is not None:
oprot.writeFieldBegin('tblValidWriteIds', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.tblValidWriteIds))
- for iter536 in self.tblValidWriteIds:
- iter536.write(oprot)
+ for iter543 in self.tblValidWriteIds:
+ iter543.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -11803,10 +11863,10 @@ class AllocateTableWriteIdsRequest:
if fid == 1:
if ftype == TType.LIST:
self.txnIds = []
- (_etype540, _size537) = iprot.readListBegin()
- for _i541 in xrange(_size537):
- _elem542 = iprot.readI64()
- self.txnIds.append(_elem542)
+ (_etype547, _size544) = iprot.readListBegin()
+ for _i548 in xrange(_size544):
+ _elem549 = iprot.readI64()
+ self.txnIds.append(_elem549)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11833,8 +11893,8 @@ class AllocateTableWriteIdsRequest:
if self.txnIds is not None:
oprot.writeFieldBegin('txnIds', TType.LIST, 1)
oprot.writeListBegin(TType.I64, len(self.txnIds))
- for iter543 in self.txnIds:
- oprot.writeI64(iter543)
+ for iter550 in self.txnIds:
+ oprot.writeI64(iter550)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.dbName is not None:
@@ -11984,11 +12044,11 @@ class AllocateTableWriteIdsResponse:
if fid == 1:
if ftype == TType.LIST:
self.txnToWriteIds = []
- (_etype547, _size544) = iprot.readListBegin()
- for _i548 in xrange(_size544):
- _elem549 = TxnToWriteId()
- _elem549.read(iprot)
- self.txnToWriteIds.append(_elem549)
+ (_etype554, _size551) = iprot.readListBegin()
+ for _i555 in xrange(_size551):
+ _elem556 = TxnToWriteId()
+ _elem556.read(iprot)
+ self.txnToWriteIds.append(_elem556)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -12005,8 +12065,8 @@ class AllocateTableWriteIdsResponse:
if self.txnToWriteIds is not None:
oprot.writeFieldBegin('txnToWriteIds', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.txnToWriteIds))
- for iter550 in self.txnToWriteIds:
- iter550.write(oprot)
+ for iter557 in self.txnToWriteIds:
+ iter557.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -12234,11 +12294,11 @@ class LockRequest:
if fid == 1:
if ftype == TType.LIST:
self.component = []
- (_etype554, _size551) = iprot.readListBegin()
- for _i555 in xrange(_size551):
- _elem556 = LockComponent()
- _elem556.read(iprot)
- self.component.append(_elem556)
+ (_etype561, _size558) = iprot.readListBegin()
+ for _i562 in xrange(_size558):
+ _elem563 = LockComponent()
+ _elem563.read(iprot)
+ self.component.append(_elem563)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -12275,8 +12335,8 @@ class LockRequest:
if self.component is not None:
oprot.writeFieldBegin('component', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.component))
- for iter557 in self.component:
- iter557.write(oprot)
+ for iter564 in self.component:
+ iter564.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.txnid is not None:
@@ -12974,11 +13034,11 @@ class ShowLocksResponse:
if fid == 1:
if ftype == TType.LIST:
self.locks = []
- (_etype561, _size558) = iprot.readListBegin()
- for _i562 in xrange(_size558):
- _elem563 = ShowLocksResponseElement()
- _elem563.read(iprot)
- self.locks.append(_elem563)
+ (_etype568, _size565) = iprot.readListBegin()
+ for _i569 in xrange(_size565):
+ _elem570 = ShowLocksResponseElement()
+ _elem570.read(iprot)
+ self.locks.append(_elem570)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -12995,8 +13055,8 @@ class ShowLocksResponse:
if self.locks is not None:
oprot.writeFieldBegin('locks', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.locks))
- for iter564 in self.locks:
- iter564.write(oprot)
+ for iter571 in self.locks:
+ iter571.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -13211,20 +13271,20 @@ class HeartbeatTxnRangeResponse:
if fid == 1:
if ftype == TType.SET:
self.aborted = set()
- (_etype568, _size565) = iprot.readSetBegin()
- for _i569 in xrange(_size565):
- _elem570 = iprot.readI64()
- self.aborted.add(_elem570)
+ (_etype575, _size572) = iprot.readSetBegin()
+ for _i576 in xrange(_size572):
+ _elem577 = iprot.readI64()
+ self.aborted.add(_elem577)
iprot.readSetEnd()
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.SET:
self.nosuch = set()
- (_etype574, _size571) = iprot.readSetBegin()
- for _i575 in xrange(_size571):
- _elem576 = iprot.readI64()
- self.nosuch.add(_elem576)
+ (_etype581, _size578) = iprot.readSetBegin()
+ for _i582 in xrange(_size578):
+ _elem583 = iprot.readI64()
+ self.nosuch.add(_elem583)
iprot.readSetEnd()
else:
iprot.skip(ftype)
@@ -13241,15 +13301,15 @@ class HeartbeatTxnRangeResponse:
if self.aborted is not None:
oprot.writeFieldBegin('aborted', TType.SET, 1)
oprot.writeSetBegin(TType.I64, len(self.aborted))
- for iter577 in self.aborted:
- oprot.writeI64(iter577)
+ for iter584 in self.aborted:
+ oprot.writeI64(iter584)
oprot.writeSetEnd()
oprot.writeFieldEnd()
if self.nosuch is not None:
oprot.writeFieldBegin('nosuch', TType.SET, 2)
oprot.writeSetBegin(TType.I64, len(self.nosuch))
- for iter578 in self.nosuch:
- oprot.writeI64(iter578)
+ for iter585 in self.nosuch:
+ oprot.writeI64(iter585)
oprot.writeSetEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -13346,11 +13406,11 @@ class CompactionRequest:
elif fid == 6:
if ftype == TType.MAP:
self.properties = {}
- (_ktype580, _vtype581, _size579 ) = iprot.readMapBegin()
- for _i583 in xrange(_size579):
- _key584 = iprot.readString()
- _val585 = iprot.readString()
- self.properties[_key584] = _val585
+ (_ktype587, _vtype588, _size586 ) = iprot.readMapBegin()
+ for _i590 in xrange(_size586):
+ _key591 = iprot.readString()
+ _val592 = iprot.readString()
+ self.properties[_key591] = _val592
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -13387,9 +13447,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 kiter586,viter587 in self.properties.items():
- oprot.writeString(kiter586)
- oprot.writeString(viter587)
+ for kiter593,viter594 in self.properties.items():
+ oprot.writeString(kiter593)
+ oprot.writeString(viter594)
oprot.writeMapEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -13824,11 +13884,11 @@ class ShowCompactResponse:
if fid == 1:
if ftype == TType.LIST:
self.compacts = []
- (_etype591, _size588) = iprot.readListBegin()
- for _i592 in xrange(_size588):
- _elem593 = ShowCompactResponseElement()
- _elem593.read(iprot)
- self.compacts.append(_elem593)
+ (_etype598, _size595) = iprot.readListBegin()
+ for _i599 in xrange(_size595):
+ _elem600 = ShowCompactResponseElement()
+ _elem600.read(iprot)
+ self.compacts.append(_elem600)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13845,8 +13905,8 @@ class ShowCompactResponse:
if self.compacts is not None:
oprot.writeFieldBegin('compacts', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.compacts))
- for iter594 in self.compacts:
- iter594.write(oprot)
+ for iter601 in self.compacts:
+ iter601.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -13935,10 +13995,10 @@ class AddDynamicPartitions:
elif fid == 5:
if ftype == TType.LIST:
self.partitionnames = []
- (_etype598, _size595) = iprot.readListBegin()
- for _i599 in xrange(_size595):
- _elem600 = iprot.readString()
- self.partitionnames.append(_elem600)
+ (_etype605, _size602) = iprot.readListBegin()
+ for _i606 in xrange(_size602):
+ _elem607 = iprot.readString()
+ self.partitionnames.append(_elem607)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13976,8 +14036,8 @@ class AddDynamicPartitions:
if self.partitionnames is not None:
oprot.writeFieldBegin('partitionnames', TType.LIST, 5)
oprot.writeListBegin(TType.STRING, len(self.partitionnames))
- for iter601 in self.partitionnames:
- oprot.writeString(iter601)
+ for iter608 in self.partitionnames:
+ oprot.writeString(iter608)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.operationType is not None:
@@ -14207,10 +14267,10 @@ class CreationMetadata:
elif fid == 4:
if ftype == TType.SET:
self.tablesUsed = set()
- (_etype605, _size602) = iprot.readSetBegin()
- for _i606 in xrange(_size602):
- _elem607 = iprot.readString()
- self.tablesUsed.add(_elem607)
+ (_etype612, _size609) = iprot.readSetBegin()
+ for _i613 in xrange(_size609):
+ _elem614 = iprot.readString()
+ self.tablesUsed.add(_elem614)
iprot.readSetEnd()
else:
iprot.skip(ftype)
@@ -14244,8 +14304,8 @@ class CreationMetadata:
if self.tablesUsed is not None:
oprot.writeFieldBegin('tablesUsed', TType.SET, 4)
oprot.writeSetBegin(TType.STRING, len(self.tablesUsed))
- for iter608 in self.tablesUsed:
- oprot.writeString(iter608)
+ for iter615 in self.tablesUsed:
+ oprot.writeString(iter615)
oprot.writeSetEnd()
oprot.writeFieldEnd()
if self.validTxnList is not None:
@@ -14557,11 +14617,11 @@ class NotificationEventResponse:
if fid == 1:
if ftype == TType.LIST:
self.events = []
- (_etype612, _size609) = iprot.readListBegin()
- for _i613 in xrange(_size609):
- _elem614 = NotificationEvent()
- _elem614.read(iprot)
- self.events.append(_elem614)
+ (_etype619, _size616) = iprot.readListBegin()
+ for _i620 in xrange(_size616):
+ _elem621 = NotificationEvent()
+ _elem621.read(iprot)
+ self.events.append(_elem621)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14578,8 +14638,8 @@ class NotificationEventResponse:
if self.events is not None:
oprot.writeFieldBegin('events', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.events))
- for iter615 in self.events:
- iter615.write(oprot)
+ for iter622 in self.events:
+ iter622.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -14873,20 +14933,20 @@ class InsertEventRequestData:
elif fid == 2:
if ftype == TType.LIST:
self.filesAdded = []
- (_etype619, _size616) = iprot.readListBegin()
- for _i620 in xrange(_size616):
- _elem621 = iprot.readString()
- self.filesAdded.append(_elem621)
+ (_etype626, _size623) = iprot.readListBegin()
+ for _i627 in xrange(_size623):
+ _elem628 = iprot.readString()
+ self.filesAdded.append(_elem628)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.LIST:
self.filesAddedChecksum = []
- (_etype625, _size622) = iprot.readListBegin()
- for _i626 in xrange(_size622):
- _elem627 = iprot.readString()
- self.filesAddedChecksum.append(_elem627)
+ (_etype632, _size629) = iprot.readListBegin()
+ for _i633 in xrange(_size629):
+ _elem634 = iprot.readString()
+ self.filesAddedChecksum.append(_elem634)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14907,15 +14967,15 @@ class InsertEventRequestData:
if self.filesAdded is not None:
oprot.writeFieldBegin('filesAdded', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.filesAdded))
- for iter628 in self.filesAdded:
- oprot.writeString(iter628)
+ for iter635 in self.filesAdded:
+ oprot.writeString(iter635)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.filesAddedChecksum is not None:
oprot.writeFieldBegin('filesAddedChecksum', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.filesAddedChecksum))
- for iter629 in self.filesAddedChecksum:
- oprot.writeString(iter629)
+ for iter636 in self.filesAddedChecksum:
+ oprot.writeString(iter636)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -15073,10 +15133,10 @@ class FireEventRequest:
elif fid == 5:
if ftype == TType.LIST:
self.partitionVals = []
- (_etype633, _size630) = iprot.readListBegin()
- for _i634 in xrange(_size630):
- _elem635 = iprot.readString()
- self.partitionVals.append(_elem635)
+ (_etype640, _size637) = iprot.readListBegin()
+ for _i641 in xrange(_size637):
+ _elem642 = iprot.readString()
+ self.partitionVals.append(_elem642)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15114,8 +15174,8 @@ class FireEventRequest:
if self.partitionVals is not None:
oprot.writeFieldBegin('partitionVals', TType.LIST, 5)
oprot.writeListBegin(TType.STRING, len(self.partitionVals))
- for iter636 in self.partitionVals:
- oprot.writeString(iter636)
+ for iter643 in self.partitionVals:
+ oprot.writeString(iter643)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.catName is not None:
@@ -15307,12 +15367,12 @@ class GetFileMetadataByExprResult:
if fid == 1:
if ftype == TType.MAP:
self.metadata = {}
- (_ktype638, _vtype639, _size637 ) = iprot.readMapBegin()
- for _i641 in xrange(_size637):
- _key642 = iprot.readI64()
- _val643 = MetadataPpdResult()
- _val643.read(iprot)
- self.metadata[_key642] = _val643
+ (_ktype645, _vtype646, _size644 ) = iprot.readMapBegin()
+ for _i648 in xrange(_size644):
+ _key649 = iprot.readI64()
+ _val650 = MetadataPpdResult()
+ _val650.read(iprot)
+ self.metadata[_key649] = _val650
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -15334,9 +15394,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 kiter644,viter645 in self.metadata.items():
- oprot.writeI64(kiter644)
- viter645.write(oprot)
+ for kiter651,viter652 in self.metadata.items():
+ oprot.writeI64(kiter651)
+ viter652.write(oprot)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.isSupported is not None:
@@ -15406,10 +15466,10 @@ class GetFileMetadataByExprRequest:
if fid == 1:
if ftype == TType.LIST:
self.fileIds = []
- (_etype649, _size646) = iprot.readListBegin()
- for _i650 in xrange(_size646):
- _elem651 = iprot.readI64()
- self.fileIds.append(_elem651)
+ (_etype656, _size653) = iprot.readListBegin()
+ for _i657 in xrange(_size653):
+ _elem658 = iprot.readI64()
+ self.fileIds.append(_elem658)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15441,8 +15501,8 @@ class GetFileMetadataByExprRequest:
if self.fileIds is not None:
oprot.writeFieldBegin('fileIds', TType.LIST, 1)
oprot.writeListBegin(TType.I64, len(self.fileIds))
- for iter652 in self.fileIds:
- oprot.writeI64(iter652)
+ for iter659 in self.fileIds:
+ oprot.writeI64(iter659)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.expr is not None:
@@ -15516,11 +15576,11 @@ class GetFileMetadataResult:
if fid == 1:
if ftype == TType.MAP:
self.metadata = {}
- (_ktype654, _vtype655, _size653 ) = iprot.readMapBegin()
- for _i657 in xrange(_size653):
- _key658 = iprot.readI64()
- _val659 = iprot.readString()
- self.metadata[_key658] = _val659
+ (_ktype661, _vtype662, _size660 ) = iprot.readMapBegin()
+ for _i664 in xrange(_size660):
+ _key665 = iprot.readI64()
+ _val666 = iprot.readString()
+ self.metadata[_key665] = _val666
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -15542,9 +15602,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 kiter660,viter661 in self.metadata.items():
- oprot.writeI64(kiter660)
- oprot.writeString(viter661)
+ for kiter667,viter668 in self.metadata.items():
+ oprot.writeI64(kiter667)
+ oprot.writeString(viter668)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.isSupported is not None:
@@ -15605,10 +15665,10 @@ class GetFileMetadataRequest:
if fid == 1:
if ftype == TType.LIST:
self.fileIds = []
- (_etype665, _size662) = iprot.readListBegin()
- for _i666 in xrange(_size662):
- _elem667 = iprot.readI64()
- self.fileIds.append(_elem667)
+ (_etype672, _size669) = iprot.readListBegin()
+ for _i673 in xrange(_size669):
+ _elem674 = iprot.readI64()
+ self.fileIds.append(_elem674)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15625,8 +15685,8 @@ class GetFileMetadataRequest:
if self.fileIds is not None:
oprot.writeFieldBegin('fileIds', TType.LIST, 1)
oprot.writeListBegin(TType.I64, len(self.fileIds))
- for iter668 in self.fileIds:
- oprot.writeI64(iter668)
+ for iter675 in self.fileIds:
+ oprot.writeI64(iter675)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -15732,20 +15792,20 @@ class PutFileMetadataRequest:
if fid == 1:
if ftype == TType.LIST:
self.fileIds = []
- (_etype672, _size669) = iprot.readListBegin()
- for _i673 in xrange(_size669):
- _elem674 = iprot.readI64()
- self.fileIds.append(_elem674)
+ (_etype679, _size676) = iprot.readListBegin()
+ for _i680 in xrange(_size676):
+ _elem681 = iprot.readI64()
+ self.fileIds.append(_elem681)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.LIST:
self.metadata = []
- (_etype678, _size675) = iprot.readListBegin()
- for _i679 in xrange(_size675):
- _elem680 = iprot.readString()
- self.metadata.append(_elem680)
+ (_etype685, _size682) = iprot.readListBegin()
+ for _i686 in xrange(_size682):
+ _elem687 = iprot.readString()
+ self.metadata.append(_elem687)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15767,15 +15827,15 @@ class PutFileMetadataRequest:
if self.fileIds is not None:
oprot.writeFieldBegin('fileIds', TType.LIST, 1)
oprot.writeListBegin(TType.I64, len(self.fileIds))
- for iter681 in self.fileIds:
- oprot.writeI64(iter681)
+ for iter688 in self.fileIds:
+ oprot.writeI64(iter688)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.metadata is not None:
oprot.writeFieldBegin('metadata', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.metadata))
- for iter682 in self.metadata:
- oprot.writeString(iter682)
+ for iter689 in self.metadata:
+ oprot.writeString(iter689)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.type is not None:
@@ -15883,10 +15943,10 @@ class ClearFileMetadataRequest:
if fid == 1:
if ftype == TType.LIST:
self.fileIds = []
- (_etype686, _size683) = iprot.readListBegin()
- for _i687 in xrange(_size683):
- _elem688 = iprot.readI64()
- self.fileIds.append(_elem688)
+ (_etype693, _size690) = iprot.readListBegin()
+ for _i694 in xrange(_size690):
+ _elem695 = iprot.readI64()
+ self.fileIds.append(_elem695)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15903,8 +15963,8 @@ class ClearFileMetadataRequest:
if self.fileIds is not None:
oprot.writeFieldBegin('fileIds', TType.LIST, 1)
oprot.writeListBegin(TType.I64, len(self.fileIds))
- for iter689 in self.fileIds:
- oprot.writeI64(iter689)
+ for iter696 in self.fileIds:
+ oprot.writeI64(iter696)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -16133,11 +16193,11 @@ class GetAllFunctionsResponse:
if fid == 1:
if ftype == TType.LIST:
self.functions = []
- (_etype693, _size690) = iprot.readListBegin()
- for _i694 in xrange(_size690):
- _elem695 = Function()
- _elem695.read(iprot)
- self.functions.append(_elem695)
+ (_etype700, _size697) = iprot.readListBegin()
+ for _i701 in xrange(_size697):
+ _elem702 = Function()
+ _elem702.read(iprot)
+ self.functions.append(_elem702)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -16154,8 +16214,8 @@ class GetAllFunctionsResponse:
if self.functions is not None:
oprot.writeFieldBegin('functions', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.functions))
- for iter696 in self.functions:
- iter696.write(oprot)
+ for iter703 in self.functions:
+ iter703.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -16207,10 +16267,10 @@ class ClientCapabilities:
if fid == 1:
if ftype == TType.LIST:
self.values = []
- (_etype700, _size697) = iprot.readListBegin()
- for _i701 in xrange(_size697):
- _elem702 = iprot.readI32()
- self.values.append(_elem702)
+ (_etype707, _size704) = iprot.readListBegin()
+ for _i708 in xrange(_size704):
+ _elem709 = iprot.readI32()
+ self.values.append(_elem709)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -16227,8 +16287,8 @@ class ClientCapabilities:
if self.values is not None:
oprot.writeFieldBegin('values', TType.LIST, 1)
oprot.writeListBegin(TType.I32, len(self.values))
- for iter703 in self.values:
- oprot.writeI32(iter703)
+ for iter710 in self.values:
+ oprot.writeI32(iter710)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -16473,10 +16533,10 @@ class GetTablesRequest:
elif fid == 2:
if ftype == TType.LIST:
self.tblNames = []
- (_etype707, _size704) = iprot.readListBegin()
- for _i708 in xrange(_size704):
- _elem709 = iprot.readString()
- self.tblNames.append(_elem709)
+ (_etype714, _size711) = iprot.readListBegin()
+ for _i715 in xrange(_size711):
+ _elem716 = iprot.readString()
+ self.tblNames.append(_elem716)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -16508,8 +16568,8 @@ class GetTablesRequest:
if self.tblNames is not None:
oprot.writeFieldBegin('tblNames', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.tblNames))
- for iter710 in self.tblNames:
- oprot.writeString(iter710)
+ for iter717 in self.tblNames:
+ oprot.writeString(iter717)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.capabilities is not None:
@@ -16574,11 +16634,11 @@ class GetTablesResult:
if fid == 1:
if ftype == TType.LIST:
self.tables = []
- (_etype714, _size711) = iprot.readListBegin()
- for _i715 in xrange(_size711):
- _elem716 = Table()
- _elem716.read(iprot)
- self.tables.append(_elem716)
+ (_etype721, _size718) = iprot.readListBegin()
+ for _i722 in xrange(_size718):
+ _elem723 = Table()
+ _elem723.read(iprot)
+ self.tables.append(_elem723)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -16595,8 +16655,8 @@ class GetTablesResult:
if self.tables is not None:
oprot.writeFieldBegin('tables', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.tables))
- for iter717 in self.tables:
- iter717.write(oprot)
+ for iter724 in self.tables:
+ iter724.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -16907,10 +16967,10 @@ class Materialization:
if fid == 1:
if ftype == TType.SET:
self.tablesUsed = set()
- (_etype721, _size718) = iprot.readSetBegin()
- for _i722 in xrange(_size718):
- _elem723 = iprot.readString()
- self.tablesUsed.add(_elem723)
+ (_etype728, _size725) = iprot.readSetBegin()
+ for _i729 in xrange(_size725):
+ _elem730 = iprot.readString()
+ self.tablesUsed.add(_elem730)
iprot.readSetEnd()
else:
iprot.skip(ftype)
@@ -16937,8 +16997,8 @@ class Materialization:
if self.tablesUsed is not None:
oprot.writeFieldBegin('tablesUsed', TType.SET, 1)
oprot.writeSetBegin(TType.STRING, len(self.tablesUsed))
- for iter724 in self.tablesUsed:
- oprot.writeString(iter724)
+ for iter731 in self.tablesUsed:
+ oprot.writeString(iter731)
oprot.writeSetEnd()
oprot.writeFieldEnd()
if self.validTxnList is not None:
@@ -17840,44 +17900,44 @@ class WMFullResourcePlan:
elif fid == 2:
if ftype == TType.LIST:
self.pools = []
- (_etype728, _size725) = iprot.readListBegin()
- for _i729 in xrange(_size725):
- _elem730 = WMPool()
- _elem730.read(iprot)
- self.pools.append(_elem730)
+ (_etype735, _size732) = iprot.readListBegin()
+ for _i736 in xrange(_size732):
+ _elem737 = WMPool()
+ _elem737.read(iprot)
+ self.pools.append(_elem737)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 3:
if ftype == TType.LIST:
self.mappings = []
- (_etype734, _size731) = iprot.readListBegin()
- for _i735 in xrange(_size731):
- _elem736 = WMMapping()
- _elem736.read(iprot)
- self.mappings.append(_elem736)
+ (_etype741, _size738) = iprot.readListBegin()
+ for _i742 in xrange(_size738):
+ _elem743 = WMMapping()
+ _elem743.read(iprot)
+ self.mappings.append(_elem743)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 4:
if ftype == TType.LIST:
self.triggers = []
- (_etype740, _size737) = iprot.readListBegin()
- for _i741 in xrange(_size737):
- _elem742 = WMTrigger()
- _elem742.read(iprot)
- self.triggers.append(_elem742)
+ (_etype747, _size744) = iprot.readListBegin()
+ for _i748 in xrange(_size744):
+ _elem749 = WMTrigger()
+ _elem749.read(iprot)
+ self.triggers.append(_elem749)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 5:
if ftype == TType.LIST:
self.poolTriggers = []
- (_etype746, _size743) = iprot.readListBegin()
- for _i747 in xrange(_size743):
- _elem748 = WMPoolTrigger()
- _elem748.read(iprot)
- self.poolTriggers.append(_elem748)
+ (_etype753, _size750) = iprot.readListBegin()
+ for _i754 in xrange(_size750):
+ _elem755 = WMPoolTrigger()
+ _elem755.read(iprot)
+ self.poolTriggers.append(_elem755)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -17898,29 +17958,29 @@ class WMFullResourcePlan:
if self.pools is not None:
oprot.writeFieldBegin('pools', TType.LIST, 2)
oprot.writeListBegin(TType.STRUCT, len(self.pools))
- for iter749 in self.pools:
- iter749.write(oprot)
+ for iter756 in self.pools:
+ iter756.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 iter750 in self.mappings:
- iter750.write(oprot)
+ for iter757 in self.mappings:
+ iter757.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 iter751 in self.triggers:
- iter751.write(oprot)
+ for iter758 in self.triggers:
+ iter758.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 iter752 in self.poolTriggers:
- iter752.write(oprot)
+ for iter759 in self.poolTriggers:
+ iter759.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -18394,11 +18454,11 @@ class WMGetAllResourcePlanResponse:
if fid == 1:
if ftype == TType.LIST:
self.resourcePlans = []
- (_etype756, _size753) = iprot.readListBegin()
- for _i757 in xrange(_size753):
- _elem758 = WMResourcePlan()
- _elem758.read(iprot)
- self.resourcePlans.append(_elem758)
+ (_etype763, _size760) = iprot.readListBegin()
+ for _i764 in xrange(_size760):
+ _elem765 = WMResourcePlan()
+ _elem765.read(iprot)
+ self.resourcePlans.append(_elem765)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18415,8 +18475,8 @@ class WMGetAllResourcePlanResponse:
if self.resourcePlans is not None:
oprot.writeFieldBegin('resourcePlans', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.resourcePlans))
- for iter759 in self.resourcePlans:
- iter759.write(oprot)
+ for iter766 in self.resourcePlans:
+ iter766.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -18720,20 +18780,20 @@ class WMValidateResourcePlanResponse:
if fid == 1:
if ftype == TType.LIST:
self.errors = []
- (_etype763, _size760) = iprot.readListBegin()
- for _i764 in xrange(_size760):
- _elem765 = iprot.readString()
- self.errors.append(_elem765)
+ (_etype770, _size767) = iprot.readListBegin()
+ for _i771 in xrange(_size767):
+ _elem772 = iprot.readString()
+ self.errors.append(_elem772)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.LIST:
self.warnings = []
- (_etype769, _size766) = iprot.readListBegin()
- for _i770 in xrange(_size766):
- _elem771 = iprot.readString()
- self.warnings.append(_elem771)
+ (_etype776, _size773) = iprot.readListBegin()
+ for _i777 in xrange(_size773):
+ _elem778 = iprot.readString()
+ self.warnings.append(_elem778)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18750,15 +18810,15 @@ class WMValidateResourcePlanResponse:
if self.errors is not None:
oprot.writeFieldBegin('errors', TType.LIST, 1)
oprot.writeListBegin(TType.STRING, len(self.errors))
- for iter772 in self.errors:
- oprot.writeString(iter772)
+ for iter779 in self.errors:
+ oprot.writeString(iter779)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.warnings is not None:
oprot.writeFieldBegin('warnings', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.warnings))
- for iter773 in self.warnings:
- oprot.writeString(iter773)
+ for iter780 in self.warnings:
+ oprot.writeString(iter780)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -19335,11 +19395,11 @@ class WMGetTriggersForResourePlanResponse:
if fid == 1:
if ftype == TType.LIST:
self.triggers = []
- (_etype777, _size774) = iprot.readListBegin()
- for _i778 in xrange(_size774):
- _elem779 = WMTrigger()
- _elem779.read(iprot)
- self.triggers.append(_elem779)
+ (_etype784, _size781) = iprot.readListBegin()
+ for _i785 in xrange(_size781):
+ _elem786 = WMTrigger()
+ _elem786.read(iprot)
+ self.triggers.append(_elem786)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -19356,8 +19416,8 @@ class WMGetTriggersForResourePlanResponse:
if self.triggers is not None:
oprot.writeFieldBegin('triggers', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.triggers))
- for iter780 in self.triggers:
- iter780.write(oprot)
+ for iter787 in self.triggers:
+ iter787.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -20541,11 +20601,11 @@ class SchemaVersion:
elif fid == 4:
if ftype == TType.LIST:
self.cols = []
- (_etype784, _size781) = iprot.readListBegin()
- for _i785 in xrange(_size781):
- _elem786 = FieldSchema()
- _elem786.read(iprot)
- self.cols.append(_elem786)
+ (_etype791, _size788) = iprot.readListBegin()
+ for _i792 in xrange(_size788):
+ _elem793 = FieldSchema()
+ _elem793.read(iprot)
+ self.cols.append(_elem793)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -20605,8 +20665,8 @@ class SchemaVersion:
if self.cols is not None:
oprot.writeFieldBegin('cols', TType.LIST, 4)
oprot.writeListBegin(TType.STRUCT, len(self.cols))
- for iter787 in self.cols:
- iter787.write(oprot)
+ for iter794 in self.cols:
+ iter794.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.state is not None:
@@ -20861,11 +20921,11 @@ class FindSchemasByColsResp:
if fid == 1:
if ftype == TType.LIST:
self.schemaVersions = []
- (_etype791, _size788) = iprot.readListBegin()
- for _i792 in xrange(_size788):
- _elem793 = SchemaVersionDescriptor()
- _elem793.read(iprot)
- self.schemaVersions.append(_elem793)
+ (_etype798, _size795) = iprot.readListBegin()
+ for _i799 in xrange(_size795):
+ _elem800 = SchemaVersionDescriptor()
+ _elem800.read(iprot)
+ self.schemaVersions.append(_elem800)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -20882,8 +20942,8 @@ class FindSchemasByColsResp:
if self.schemaVersions is not None:
oprot.writeFieldBegin('schemaVersions', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.schemaVersions))
- for iter794 in self.schemaVersions:
- iter794.write(oprot)
+ for iter801 in self.schemaVersions:
+ iter801.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb b/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
index 969f4ab..94454a1 100644
--- a/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
+++ b/standalone-metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
@@ -2477,12 +2477,16 @@ class OpenTxnRequest
USER = 2
HOSTNAME = 3
AGENTINFO = 4
+ REPLPOLICY = 5
+ REPLSRCTXNIDS = 6
FIELDS = {
NUM_TXNS => {:type => ::Thrift::Types::I32, :name => 'num_txns'},
USER => {:type => ::Thrift::Types::STRING, :name => 'user'},
HOSTNAME => {:type => ::Thrift::Types::STRING, :name => 'hostname'},
- AGENTINFO => {:type => ::Thrift::Types::STRING, :name => 'agentInfo', :default => %q"Unknown", :optional => true}
+ AGENTINFO => {:type => ::Thrift::Types::STRING, :name => 'agentInfo', :default => %q"Unknown", :optional => true},
+ REPLPOLICY => {:type => ::Thrift::Types::STRING, :name => 'replPolicy', :optional => true},
+ REPLSRCTXNIDS => {:type => ::Thrift::Types::LIST, :name => 'replSrcTxnIds', :element => {:type => ::Thrift::Types::I64}, :optional => true}
}
def struct_fields; FIELDS; end
@@ -2516,9 +2520,11 @@ end
class AbortTxnRequest
include ::Thrift::Struct, ::Thrift::Struct_Union
TXNID = 1
+ REPLPOLICY = 2
FIELDS = {
- TXNID => {:type => ::Thrift::Types::I64, :name => 'txnid'}
+ TXNID => {:type => ::Thrift::Types::I64, :name => 'txnid'},
+ REPLPOLICY => {:type => ::Thrift::Types::STRING, :name => 'replPolicy', :optional => true}
}
def struct_fields; FIELDS; end
@@ -2550,9 +2556,11 @@ end
class CommitTxnRequest
include ::Thrift::Struct, ::Thrift::Struct_Union
TXNID = 1
+ REPLPOLICY = 2
FIELDS = {
- TXNID => {:type => ::Thrift::Types::I64, :name => 'txnid'}
+ TXNID => {:type => ::Thrift::Types::I64, :name => 'txnid'},
+ REPLPOLICY => {:type => ::Thrift::Types::STRING, :name => 'replPolicy', :optional => true}
}
def struct_fields; FIELDS; end
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
index 07fdcd7..8539fea 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -83,6 +83,7 @@ import org.apache.hadoop.hive.metastore.api.*;
import org.apache.hadoop.hive.metastore.events.AddForeignKeyEvent;
import org.apache.hadoop.hive.metastore.conf.MetastoreConf;
import org.apache.hadoop.hive.metastore.conf.MetastoreConf.ConfVars;
+import org.apache.hadoop.hive.metastore.events.AbortTxnEvent;
import org.apache.hadoop.hive.metastore.events.AddNotNullConstraintEvent;
import org.apache.hadoop.hive.metastore.events.AddPartitionEvent;
import org.apache.hadoop.hive.metastore.events.AddPrimaryKeyEvent;
@@ -92,6 +93,7 @@ import org.apache.hadoop.hive.metastore.events.AlterISchemaEvent;
import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent;
import org.apache.hadoop.hive.metastore.events.AlterSchemaVersionEvent;
import org.apache.hadoop.hive.metastore.events.AlterTableEvent;
+import org.apache.hadoop.hive.metastore.events.CommitTxnEvent;
import org.apache.hadoop.hive.metastore.events.ConfigChangeEvent;
import org.apache.hadoop.hive.metastore.events.CreateCatalogEvent;
import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent;
@@ -109,6 +111,7 @@ import org.apache.hadoop.hive.metastore.events.DropSchemaVersionEvent;
import org.apache.hadoop.hive.metastore.events.DropTableEvent;
import org.apache.hadoop.hive.metastore.events.InsertEvent;
import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent;
+import org.apache.hadoop.hive.metastore.events.OpenTxnEvent;
import org.apache.hadoop.hive.metastore.events.PreAddPartitionEvent;
import org.apache.hadoop.hive.metastore.events.PreAlterDatabaseEvent;
import org.apache.hadoop.hive.metastore.events.PreAlterISchemaEvent;
@@ -178,7 +181,6 @@ import org.iq80.leveldb.DB;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
import com.facebook.fb303.FacebookBase;
import com.facebook.fb303.fb_status;
import com.google.common.annotations.VisibleForTesting;
@@ -6947,22 +6949,42 @@ public class HiveMetaStore extends ThriftHiveMetastore {
@Override
public OpenTxnsResponse open_txns(OpenTxnRequest rqst) throws TException {
- return getTxnHandler().openTxns(rqst);
+ OpenTxnsResponse response = getTxnHandler().openTxns(rqst);
+ List<Long> txnIds = response.getTxn_ids();
+ if (txnIds != null && listeners != null && !listeners.isEmpty()) {
+ MetaStoreListenerNotifier.notifyEvent(listeners, EventType.OPEN_TXN,
+ new OpenTxnEvent(txnIds, this));
+ }
+ return response;
}
@Override
public void abort_txn(AbortTxnRequest rqst) throws TException {
getTxnHandler().abortTxn(rqst);
+ if (listeners != null && !listeners.isEmpty()) {
+ MetaStoreListenerNotifier.notifyEvent(listeners, EventType.ABORT_TXN,
+ new AbortTxnEvent(rqst.getTxnid(), this));
+ }
}
@Override
public void abort_txns(AbortTxnsRequest rqst) throws TException {
getTxnHandler().abortTxns(rqst);
+ if (listeners != null && !listeners.isEmpty()) {
+ for (Long txnId : rqst.getTxn_ids()) {
+ MetaStoreListenerNotifier.notifyEvent(listeners, EventType.ABORT_TXN,
+ new AbortTxnEvent(txnId, this));
+ }
+ }
}
@Override
public void commit_txn(CommitTxnRequest rqst) throws TException {
getTxnHandler().commitTxn(rqst);
+ if (listeners != null && !listeners.isEmpty()) {
+ MetaStoreListenerNotifier.notifyEvent(listeners, EventType.COMMIT_TXN,
+ new CommitTxnEvent(rqst.getTxnid(), this));
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
index 0794cc5..ebbf465 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -2344,20 +2344,43 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable {
@Override
public long openTxn(String user) throws TException {
- OpenTxnsResponse txns = openTxns(user, 1);
+ OpenTxnsResponse txns = openTxnsIntr(user, 1, null, null);
return txns.getTxn_ids().get(0);
}
@Override
+ 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);
+ return txns.getTxn_ids();
+ }
+
+ @Override
public OpenTxnsResponse openTxns(String user, int numTxns) throws TException {
- String hostname = null;
+ return openTxnsIntr(user, numTxns, null, null);
+ }
+
+ private OpenTxnsResponse openTxnsIntr(String user, int numTxns, String replPolicy,
+ List<Long> srcTxnIds) throws TException {
+ String hostname;
try {
hostname = InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException e) {
LOG.error("Unable to resolve my host name " + e.getMessage());
throw new RuntimeException(e);
}
- return client.open_txns(new OpenTxnRequest(numTxns, user, hostname));
+ OpenTxnRequest rqst = new OpenTxnRequest(numTxns, user, hostname);
+ if (replPolicy != null) {
+ assert srcTxnIds != null;
+ assert numTxns == srcTxnIds.size();
+ // need to set this only for replication tasks
+ rqst.setReplPolicy(replPolicy);
+ rqst.setReplSrcTxnIds(srcTxnIds);
+ } else {
+ assert srcTxnIds == null;
+ }
+ return client.open_txns(rqst);
}
@Override
@@ -2366,12 +2389,27 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable {
}
@Override
+ public void replRollbackTxn(long srcTxnId, String replPolicy) throws NoSuchTxnException, TException {
+ AbortTxnRequest rqst = new AbortTxnRequest(srcTxnId);
+ rqst.setReplPolicy(replPolicy);
+ client.abort_txn(rqst);
+ }
+
+ @Override
public void commitTxn(long txnid)
- throws NoSuchTxnException, TxnAbortedException, TException {
+ throws NoSuchTxnException, TxnAbortedException, TException {
client.commit_txn(new CommitTxnRequest(txnid));
}
@Override
+ public void replCommitTxn(long srcTxnId, String replPolicy)
+ throws NoSuchTxnException, TxnAbortedException, TException {
+ CommitTxnRequest rqst = new CommitTxnRequest(srcTxnId);
+ rqst.setReplPolicy(replPolicy);
+ client.commit_txn(rqst);
+ }
+
+ @Override
public GetOpenTxnsInfoResponse showTxns() throws TException {
return client.get_open_txns_info();
}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
index 2e146f3..b2c40c2 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
@@ -2771,6 +2771,16 @@ public interface IMetaStoreClient {
long openTxn(String user) throws TException;
/**
+ * Initiate a transaction at the target cluster.
+ * @param replPolicy The replication policy to uniquely identify the source cluster.
+ * @param srcTxnIds The list of transaction ids at the source cluster
+ * @param user The user who has fired the repl load command.
+ * @return transaction identifiers
+ * @throws TException
+ */
+ List<Long> replOpenTxn(String replPolicy, List<Long> srcTxnIds, String user) throws TException;
+
+ /**
* Initiate a batch of transactions. It is not guaranteed that the
* requested number of transactions will be instantiated. The system has a
* maximum number instantiated per request, controlled by hive.txn.max
@@ -2809,6 +2819,18 @@ public interface IMetaStoreClient {
void rollbackTxn(long txnid) throws NoSuchTxnException, TException;
/**
+ * Rollback a transaction. This will also unlock any locks associated with
+ * this transaction.
+ * @param txnid id of transaction to be rolled back.
+ * @param replPolicy the replication policy to identify the source cluster
+ * @throws NoSuchTxnException if the requested transaction does not exist.
+ * Note that this can result from the transaction having timed out and been
+ * deleted.
+ * @throws TException
+ */
+ void replRollbackTxn(long txnid, String replPolicy) throws NoSuchTxnException, TException;
+
+ /**
* Commit a transaction. This will also unlock any locks associated with
* this transaction.
* @param txnid id of transaction to be committed.
@@ -2823,6 +2845,21 @@ public interface IMetaStoreClient {
throws NoSuchTxnException, TxnAbortedException, TException;
/**
+ * Commit a transaction. This will also unlock any locks associated with
+ * this transaction.
+ * @param txnid id of transaction to be committed.
+ * @param replPolicy the replication policy to identify the source cluster
+ * @throws NoSuchTxnException if the requested transaction does not exist.
+ * This can result fro the transaction having timed out and been deleted by
+ * the compactor.
+ * @throws TxnAbortedException if the requested transaction has been
+ * aborted. This can result from the transaction timing out.
+ * @throws TException
+ */
+ void replCommitTxn(long txnid, String replPolicy)
+ throws NoSuchTxnException, TxnAbortedException, TException;
+
+ /**
* Abort a list of transactions. This is for use by "ABORT TRANSACTIONS" in the grammar.
* @throws TException
*/
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreEventListener.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreEventListener.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreEventListener.java
index 569fff0..7b3a80c 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreEventListener.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreEventListener.java
@@ -50,6 +50,9 @@ import org.apache.hadoop.hive.metastore.events.DropSchemaVersionEvent;
import org.apache.hadoop.hive.metastore.events.DropTableEvent;
import org.apache.hadoop.hive.metastore.events.InsertEvent;
import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent;
+import org.apache.hadoop.hive.metastore.events.OpenTxnEvent;
+import org.apache.hadoop.hive.metastore.events.CommitTxnEvent;
+import org.apache.hadoop.hive.metastore.events.AbortTxnEvent;
/**
* This abstract class needs to be extended to provide implementation of actions that needs
@@ -166,7 +169,6 @@ public abstract class MetaStoreEventListener implements Configurable {
* @throws MetaException
*/
public void onInsert(InsertEvent insertEvent) throws MetaException {
-
}
/**
@@ -230,6 +232,30 @@ public abstract class MetaStoreEventListener implements Configurable {
public void onDropCatalog(DropCatalogEvent dropCatalogEvent) throws MetaException {
}
+ /**
+ * This will be called when a new transaction is started.
+ * @param openTxnEvent
+ * @throws MetaException
+ */
+ public void onOpenTxn(OpenTxnEvent openTxnEvent) throws MetaException {
+ }
+
+ /**
+ * This will be called to commit a transaction.
+ * @param commitTxnEvent
+ * @throws MetaException
+ */
+ public void onCommitTxn(CommitTxnEvent commitTxnEvent) throws MetaException {
+ }
+
+ /**
+ * This will be called to abort a transaction.
+ * @param abortTxnEvent
+ * @throws MetaException
+ */
+ public void onAbortTxn(AbortTxnEvent abortTxnEvent) throws MetaException {
+ }
+
@Override
public Configuration getConf() {
return this.conf;
@@ -239,7 +265,4 @@ public abstract class MetaStoreEventListener implements Configurable {
public void setConf(Configuration config) {
this.conf = config;
}
-
-
-
}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreListenerNotifier.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreListenerNotifier.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreListenerNotifier.java
index 988fca6..e9bbfdc 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreListenerNotifier.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreListenerNotifier.java
@@ -49,6 +49,9 @@ import org.apache.hadoop.hive.metastore.events.DropSchemaVersionEvent;
import org.apache.hadoop.hive.metastore.events.DropTableEvent;
import org.apache.hadoop.hive.metastore.events.InsertEvent;
import org.apache.hadoop.hive.metastore.events.ListenerEvent;
+import org.apache.hadoop.hive.metastore.events.OpenTxnEvent;
+import org.apache.hadoop.hive.metastore.events.CommitTxnEvent;
+import org.apache.hadoop.hive.metastore.events.AbortTxnEvent;
import java.util.List;
import java.util.Map;
@@ -206,6 +209,26 @@ public class MetaStoreListenerNotifier {
(listener, event) -> listener.onCreateCatalog((CreateCatalogEvent)event))
.put(EventType.DROP_CATALOG,
(listener, event) -> listener.onDropCatalog((DropCatalogEvent)event))
+ .put(EventType.OPEN_TXN, new EventNotifier() {
+ @Override
+ public void notify(MetaStoreEventListener listener, ListenerEvent event) throws MetaException {
+ listener.onOpenTxn((OpenTxnEvent)event);
+ }
+ })
+ .put(EventType.COMMIT_TXN, new EventNotifier() {
+ @Override
+ public void notify(MetaStoreEventListener listener, ListenerEvent event)
+ throws MetaException {
+ listener.onCommitTxn((CommitTxnEvent) event);
+ }
+ })
+ .put(EventType.ABORT_TXN, new EventNotifier() {
+ @Override
+ public void notify(MetaStoreEventListener listener, ListenerEvent event)
+ throws MetaException {
+ listener.onAbortTxn((AbortTxnEvent) event);
+ }
+ })
.build()
);
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/AbortTxnEvent.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/AbortTxnEvent.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/AbortTxnEvent.java
new file mode 100644
index 0000000..062e719
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/AbortTxnEvent.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.events;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hive.metastore.IHMSHandler;
+import org.apache.hadoop.hive.metastore.tools.SQLGenerator;
+import java.sql.Connection;
+
+/**
+ * AbortTxnEvent
+ * Event generated for roll backing a transaction
+ */
+@InterfaceAudience.Public
+@InterfaceStability.Stable
+public class AbortTxnEvent extends ListenerEvent {
+
+ private final Long txnId;
+ Connection connection;
+ SQLGenerator sqlGenerator;
+
+ /**
+ *
+ * @param transactionId Unique identification for the transaction that got rolledback.
+ * @param handler handler that is firing the event
+ */
+ public AbortTxnEvent(Long transactionId, IHMSHandler handler) {
+ super(true, handler);
+ txnId = transactionId;
+ connection = null;
+ sqlGenerator = null;
+ }
+
+ /**
+ * @param transactionId Unique identification for the transaction just got aborted.
+ * @param connection connection to execute direct SQL statement within same transaction
+ * @param sqlGenerator generates db specific SQL query
+ */
+ public AbortTxnEvent(Long transactionId, Connection connection, SQLGenerator sqlGenerator) {
+ super(true, null);
+ this.txnId = transactionId;
+ this.connection = connection;
+ this.sqlGenerator = sqlGenerator;
+ }
+
+ /**
+ * @return Long txnId
+ */
+ public Long getTxnId() {
+ return txnId;
+ }
+
+ /**
+ * @return Connection connection - used only by DbNotificationListener
+ */
+ public Connection getConnection() {
+ return connection;
+ }
+
+ /**
+ * @return SQLGenerator sqlGenerator - used only by DbNotificationListener
+ */
+ public SQLGenerator getSqlGenerator() {
+ return sqlGenerator;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/CommitTxnEvent.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/CommitTxnEvent.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/CommitTxnEvent.java
new file mode 100644
index 0000000..7262e6b
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/CommitTxnEvent.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.events;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hive.metastore.IHMSHandler;
+import org.apache.hadoop.hive.metastore.tools.SQLGenerator;
+import java.sql.Connection;
+
+/**
+ * CommitTxnEvent
+ * Event generated for commit transaction operation
+ */
+@InterfaceAudience.Public
+@InterfaceStability.Stable
+public class CommitTxnEvent extends ListenerEvent {
+
+ private final Long txnId;
+ Connection connection;
+ SQLGenerator sqlGenerator;
+
+ /**
+ *
+ * @param transactionId Unique identification for the transaction just got committed.
+ * @param handler handler that is firing the event
+ */
+ public CommitTxnEvent(Long transactionId, IHMSHandler handler) {
+ super(true, handler);
+ this.txnId = transactionId;
+ this.connection = null;
+ this.sqlGenerator = null;
+ }
+
+ /**
+ * @param transactionId Unique identification for the transaction just got committed.
+ * @param connection connection to execute direct SQL statement within same transaction
+ * @param sqlGenerator generates db specific SQL query
+ */
+ public CommitTxnEvent(Long transactionId, Connection connection, SQLGenerator sqlGenerator) {
+ super(true, null);
+ this.txnId = transactionId;
+ this.connection = connection;
+ this.sqlGenerator = sqlGenerator;
+ }
+
+ /**
+ * @return Long txnId
+ */
+ public Long getTxnId() {
+ return txnId;
+ }
+
+ /**
+ * @return Connection connection - used only by DbNotificationListener
+ */
+ public Connection getConnection() {
+ return connection;
+ }
+
+ /**
+ * @return SQLGenerator sqlGenerator - used only by DbNotificationListener
+ */
+ public SQLGenerator getSqlGenerator() {
+ return sqlGenerator;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/ListenerEvent.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/ListenerEvent.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/ListenerEvent.java
index 56eb9ed..b542afc 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/ListenerEvent.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/ListenerEvent.java
@@ -23,8 +23,9 @@ import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.hive.metastore.HiveMetaStore;
import org.apache.hadoop.hive.metastore.IHMSHandler;
import org.apache.hadoop.hive.metastore.api.EnvironmentContext;
-
+import org.apache.hadoop.hive.metastore.tools.SQLGenerator;
import javax.annotation.concurrent.NotThreadSafe;
+import java.sql.Connection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -162,6 +163,20 @@ public abstract class ListenerEvent {
}
/**
+ * Used by ACID/transaction related events for generating direct SQL in DBNotificationListener.
+ */
+ public Connection getConnection() {
+ return null;
+ }
+
+ /**
+ * Used by ACID/transaction related events for generating direct SQL in DBNotificationListener.
+ */
+ public SQLGenerator getSqlGenerator() {
+ return null;
+ }
+
+ /**
* Put a parameter to the listener event only if the parameter is absent.
*
* Overridden parameters is not allowed, and an exception may be thrown to avoid a mis-configuration
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/OpenTxnEvent.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/OpenTxnEvent.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/OpenTxnEvent.java
new file mode 100644
index 0000000..088a6a1
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/events/OpenTxnEvent.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.events;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hive.metastore.IHMSHandler;
+import com.google.common.collect.Lists;
+import org.apache.hadoop.hive.metastore.tools.SQLGenerator;
+import java.sql.Connection;
+import java.util.List;
+
+/**
+ * OpenTxnEvent
+ * Event generated for open transaction event.
+ */
+@InterfaceAudience.Public
+@InterfaceStability.Stable
+public class OpenTxnEvent extends ListenerEvent {
+ private List<Long> txnIds;
+ Connection connection;
+ SQLGenerator sqlGenerator;
+
+ /**
+ * @param txnIds List of unique identification for the transaction just opened.
+ * @param handler handler that is firing the event
+ */
+ public OpenTxnEvent(List<Long> txnIds, IHMSHandler handler) {
+ super(true, handler);
+ this.txnIds = Lists.newArrayList(txnIds);
+ this.connection = null;
+ this.sqlGenerator = null;
+ }
+
+ /**
+ * @param txnIds List of unique identification for the transaction just opened.
+ * @param connection connection to execute direct SQL statement within same transaction
+ * @param sqlGenerator generates db specific SQL query
+ */
+ public OpenTxnEvent(List<Long> txnIds, Connection connection, SQLGenerator sqlGenerator) {
+ super(true, null);
+ this.txnIds = Lists.newArrayList(txnIds);
+ this.connection = connection;
+ this.sqlGenerator = sqlGenerator;
+ }
+
+ /**
+ * @return List<Long> txnIds
+ */
+ public List<Long> getTxnIds() {
+ return txnIds;
+ }
+
+ /**
+ * @return Connection connection - used only by DbNotificationListener
+ */
+ public Connection getConnection() {
+ return connection;
+ }
+
+ /**
+ * @return SQLGenerator sqlGenerator - used only by DbNotificationListener
+ */
+ public SQLGenerator getSqlGenerator() {
+ return sqlGenerator;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/AbortTxnMessage.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/AbortTxnMessage.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/AbortTxnMessage.java
new file mode 100644
index 0000000..1f75585
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/AbortTxnMessage.java
@@ -0,0 +1,36 @@
+/* * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.messaging;
+
+/**
+ * HCat message sent when an abort transaction is done.
+ */
+public abstract class AbortTxnMessage extends EventMessage {
+
+ protected AbortTxnMessage() {
+ super(EventType.ABORT_TXN);
+ }
+
+ /**
+ * Get the transaction id to be aborted.
+ *
+ * @return The TxnId
+ */
+ public abstract Long getTxnId();
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/CommitTxnMessage.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/CommitTxnMessage.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/CommitTxnMessage.java
new file mode 100644
index 0000000..49004f2
--- /dev/null
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/CommitTxnMessage.java
@@ -0,0 +1,36 @@
+/* * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.messaging;
+
+/**
+ * HCat message sent when an commit transaction is done.
+ */
+public abstract class CommitTxnMessage extends EventMessage {
+
+ protected CommitTxnMessage() {
+ super(EventType.COMMIT_TXN);
+ }
+
+ /**
+ * Get the transaction id to be committed.
+ *
+ * @return The TxnId
+ */
+ public abstract Long getTxnId();
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/EventMessage.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/EventMessage.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/EventMessage.java
index 3cbfa55..5137c86 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/EventMessage.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/EventMessage.java
@@ -55,7 +55,10 @@ public abstract class EventMessage {
ALTER_SCHEMA_VERSION(MessageFactory.ALTER_SCHEMA_VERSION_EVENT),
DROP_SCHEMA_VERSION(MessageFactory.DROP_SCHEMA_VERSION_EVENT),
CREATE_CATALOG(MessageFactory.CREATE_CATALOG_EVENT),
- DROP_CATALOG(MessageFactory.DROP_CATALOG_EVENT);
+ DROP_CATALOG(MessageFactory.DROP_CATALOG_EVENT),
+ OPEN_TXN(MessageFactory.OPEN_TXN_EVENT),
+ COMMIT_TXN(MessageFactory.COMMIT_TXN_EVENT),
+ ABORT_TXN(MessageFactory.ABORT_TXN_EVENT);
private String typeString;
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageDeserializer.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageDeserializer.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageDeserializer.java
index 0fd4601..6583cc7 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageDeserializer.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageDeserializer.java
@@ -64,6 +64,12 @@ public abstract class MessageDeserializer {
return getAddNotNullConstraintMessage(messageBody);
case DROP_CONSTRAINT:
return getDropConstraintMessage(messageBody);
+ case OPEN_TXN:
+ return getOpenTxnMessage(messageBody);
+ case COMMIT_TXN:
+ return getCommitTxnMessage(messageBody);
+ case ABORT_TXN:
+ return getAbortTxnMessage(messageBody);
default:
throw new IllegalArgumentException("Unsupported event-type: " + eventTypeString);
}
@@ -160,6 +166,21 @@ public abstract class MessageDeserializer {
*/
public abstract DropConstraintMessage getDropConstraintMessage(String messageBody);
+ /**
+ * Method to de-serialize OpenTxnMessage instance.
+ */
+ public abstract OpenTxnMessage getOpenTxnMessage(String messageBody);
+
+ /**
+ * Method to de-serialize CommitTxnMessage instance.
+ */
+ public abstract CommitTxnMessage getCommitTxnMessage(String messageBody);
+
+ /**
+ * Method to de-serialize AbortTxnMessage instance.
+ */
+ public abstract AbortTxnMessage getAbortTxnMessage(String messageBody);
+
// Protection against construction.
protected MessageDeserializer() {}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/59483bca/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageFactory.java
----------------------------------------------------------------------
diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageFactory.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageFactory.java
index ab93f82..dc4420e 100644
--- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageFactory.java
+++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/messaging/MessageFactory.java
@@ -68,7 +68,9 @@ public abstract class MessageFactory {
public static final String DROP_SCHEMA_VERSION_EVENT = "DROP_SCHEMA_VERSION";
public static final String CREATE_CATALOG_EVENT = "CREATE_CATALOG";
public static final String DROP_CATALOG_EVENT = "DROP_CATALOG";
-
+ public static final String OPEN_TXN_EVENT = "OPEN_TXN";
+ public static final String COMMIT_TXN_EVENT = "COMMIT_TXN";
+ public static final String ABORT_TXN_EVENT = "ABORT_TXN";
private static MessageFactory instance = null;
@@ -238,6 +240,31 @@ public abstract class MessageFactory {
public abstract InsertMessage buildInsertMessage(Table tableObj, Partition ptnObj,
boolean replace, Iterator<String> files);
+ /**
+ * Factory method for building open txn message using start and end transaction range
+ *
+ * @param fromTxnId start transaction id (inclusive)
+ * @param toTxnId end transaction id (inclusive)
+ * @return instance of OpenTxnMessage
+ */
+ public abstract OpenTxnMessage buildOpenTxnMessage(Long fromTxnId, Long toTxnId);
+
+ /**
+ * Factory method for building commit txn message
+ *
+ * @param txnId Id of the transaction to be committed
+ * @return instance of CommitTxnMessage
+ */
+ public abstract CommitTxnMessage buildCommitTxnMessage(Long txnId);
+
+ /**
+ * Factory method for building abort txn message
+ *
+ * @param txnId Id of the transaction to be aborted
+ * @return instance of AbortTxnMessage
+ */
+ public abstract AbortTxnMessage buildAbortTxnMessage(Long txnId);
+
/***
* Factory method for building add primary key message
*