You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2015/11/12 05:00:05 UTC
[41/55] [abbrv] hive git commit: HIVE-7575 GetTables thrift call is
very slow (Navis via Aihua Xu, reviewed by Szehon Ho, Aihua Xu)
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py b/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
index 9873810..5c72a27 100644
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
@@ -183,6 +183,15 @@ class Iface(fb303.FacebookService.Iface):
"""
pass
+ def get_table_meta(self, db_patterns, tbl_patterns, tbl_types):
+ """
+ Parameters:
+ - db_patterns
+ - tbl_patterns
+ - tbl_types
+ """
+ pass
+
def get_all_tables(self, db_name):
"""
Parameters:
@@ -1830,6 +1839,43 @@ class Client(fb303.FacebookService.Client, Iface):
raise result.o1
raise TApplicationException(TApplicationException.MISSING_RESULT, "get_tables failed: unknown result")
+ def get_table_meta(self, db_patterns, tbl_patterns, tbl_types):
+ """
+ Parameters:
+ - db_patterns
+ - tbl_patterns
+ - tbl_types
+ """
+ self.send_get_table_meta(db_patterns, tbl_patterns, tbl_types)
+ return self.recv_get_table_meta()
+
+ def send_get_table_meta(self, db_patterns, tbl_patterns, tbl_types):
+ self._oprot.writeMessageBegin('get_table_meta', TMessageType.CALL, self._seqid)
+ args = get_table_meta_args()
+ args.db_patterns = db_patterns
+ args.tbl_patterns = tbl_patterns
+ args.tbl_types = tbl_types
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_get_table_meta(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = get_table_meta_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.o1 is not None:
+ raise result.o1
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "get_table_meta failed: unknown result")
+
def get_all_tables(self, db_name):
"""
Parameters:
@@ -5852,6 +5898,7 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
self._processMap["drop_table"] = Processor.process_drop_table
self._processMap["drop_table_with_environment_context"] = Processor.process_drop_table_with_environment_context
self._processMap["get_tables"] = Processor.process_get_tables
+ self._processMap["get_table_meta"] = Processor.process_get_table_meta
self._processMap["get_all_tables"] = Processor.process_get_all_tables
self._processMap["get_table"] = Processor.process_get_table
self._processMap["get_table_objects_by_name"] = Processor.process_get_table_objects_by_name
@@ -6517,6 +6564,28 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
oprot.writeMessageEnd()
oprot.trans.flush()
+ def process_get_table_meta(self, seqid, iprot, oprot):
+ args = get_table_meta_args()
+ args.read(iprot)
+ iprot.readMessageEnd()
+ result = get_table_meta_result()
+ try:
+ result.success = self._handler.get_table_meta(args.db_patterns, args.tbl_patterns, args.tbl_types)
+ msg_type = TMessageType.REPLY
+ except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+ raise
+ except MetaException as o1:
+ msg_type = TMessageType.REPLY
+ result.o1 = o1
+ except Exception as ex:
+ msg_type = TMessageType.EXCEPTION
+ logging.exception(ex)
+ result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+ oprot.writeMessageBegin("get_table_meta", msg_type, seqid)
+ result.write(oprot)
+ oprot.writeMessageEnd()
+ oprot.trans.flush()
+
def process_get_all_tables(self, seqid, iprot, oprot):
args = get_all_tables_args()
args.read(iprot)
@@ -12752,6 +12821,192 @@ class get_tables_result:
def __ne__(self, other):
return not (self == other)
+class get_table_meta_args:
+ """
+ Attributes:
+ - db_patterns
+ - tbl_patterns
+ - tbl_types
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'db_patterns', None, None, ), # 1
+ (2, TType.STRING, 'tbl_patterns', None, None, ), # 2
+ (3, TType.LIST, 'tbl_types', (TType.STRING,None), None, ), # 3
+ )
+
+ def __init__(self, db_patterns=None, tbl_patterns=None, tbl_types=None,):
+ self.db_patterns = db_patterns
+ self.tbl_patterns = tbl_patterns
+ self.tbl_types = tbl_types
+
+ 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.db_patterns = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.tbl_patterns = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.LIST:
+ self.tbl_types = []
+ (_etype583, _size580) = iprot.readListBegin()
+ for _i584 in xrange(_size580):
+ _elem585 = iprot.readString()
+ self.tbl_types.append(_elem585)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('get_table_meta_args')
+ if self.db_patterns is not None:
+ oprot.writeFieldBegin('db_patterns', TType.STRING, 1)
+ oprot.writeString(self.db_patterns)
+ oprot.writeFieldEnd()
+ if self.tbl_patterns is not None:
+ oprot.writeFieldBegin('tbl_patterns', TType.STRING, 2)
+ oprot.writeString(self.tbl_patterns)
+ oprot.writeFieldEnd()
+ if self.tbl_types is not None:
+ oprot.writeFieldBegin('tbl_types', TType.LIST, 3)
+ oprot.writeListBegin(TType.STRING, len(self.tbl_types))
+ for iter586 in self.tbl_types:
+ oprot.writeString(iter586)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.db_patterns)
+ value = (value * 31) ^ hash(self.tbl_patterns)
+ value = (value * 31) ^ hash(self.tbl_types)
+ 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 get_table_meta_result:
+ """
+ Attributes:
+ - success
+ - o1
+ """
+
+ thrift_spec = (
+ (0, TType.LIST, 'success', (TType.STRUCT,(TableMeta, TableMeta.thrift_spec)), None, ), # 0
+ (1, TType.STRUCT, 'o1', (MetaException, MetaException.thrift_spec), None, ), # 1
+ )
+
+ def __init__(self, success=None, o1=None,):
+ self.success = success
+ self.o1 = o1
+
+ 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 == 0:
+ if ftype == TType.LIST:
+ self.success = []
+ (_etype590, _size587) = iprot.readListBegin()
+ for _i591 in xrange(_size587):
+ _elem592 = TableMeta()
+ _elem592.read(iprot)
+ self.success.append(_elem592)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 1:
+ if ftype == TType.STRUCT:
+ self.o1 = MetaException()
+ self.o1.read(iprot)
+ 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('get_table_meta_result')
+ if self.success is not None:
+ oprot.writeFieldBegin('success', TType.LIST, 0)
+ oprot.writeListBegin(TType.STRUCT, len(self.success))
+ for iter593 in self.success:
+ iter593.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.o1 is not None:
+ oprot.writeFieldBegin('o1', TType.STRUCT, 1)
+ self.o1.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.success)
+ value = (value * 31) ^ hash(self.o1)
+ 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 get_all_tables_args:
"""
Attributes:
@@ -12845,10 +13100,10 @@ class get_all_tables_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype583, _size580) = iprot.readListBegin()
- for _i584 in xrange(_size580):
- _elem585 = iprot.readString()
- self.success.append(_elem585)
+ (_etype597, _size594) = iprot.readListBegin()
+ for _i598 in xrange(_size594):
+ _elem599 = iprot.readString()
+ self.success.append(_elem599)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -12871,8 +13126,8 @@ class get_all_tables_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter586 in self.success:
- oprot.writeString(iter586)
+ for iter600 in self.success:
+ oprot.writeString(iter600)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -13108,10 +13363,10 @@ class get_table_objects_by_name_args:
elif fid == 2:
if ftype == TType.LIST:
self.tbl_names = []
- (_etype590, _size587) = iprot.readListBegin()
- for _i591 in xrange(_size587):
- _elem592 = iprot.readString()
- self.tbl_names.append(_elem592)
+ (_etype604, _size601) = iprot.readListBegin()
+ for _i605 in xrange(_size601):
+ _elem606 = iprot.readString()
+ self.tbl_names.append(_elem606)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13132,8 +13387,8 @@ class get_table_objects_by_name_args:
if self.tbl_names is not None:
oprot.writeFieldBegin('tbl_names', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.tbl_names))
- for iter593 in self.tbl_names:
- oprot.writeString(iter593)
+ for iter607 in self.tbl_names:
+ oprot.writeString(iter607)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -13194,11 +13449,11 @@ class get_table_objects_by_name_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype597, _size594) = iprot.readListBegin()
- for _i598 in xrange(_size594):
- _elem599 = Table()
- _elem599.read(iprot)
- self.success.append(_elem599)
+ (_etype611, _size608) = iprot.readListBegin()
+ for _i612 in xrange(_size608):
+ _elem613 = Table()
+ _elem613.read(iprot)
+ self.success.append(_elem613)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13233,8 +13488,8 @@ class get_table_objects_by_name_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter600 in self.success:
- iter600.write(oprot)
+ for iter614 in self.success:
+ iter614.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -13400,10 +13655,10 @@ class get_table_names_by_filter_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype604, _size601) = iprot.readListBegin()
- for _i605 in xrange(_size601):
- _elem606 = iprot.readString()
- self.success.append(_elem606)
+ (_etype618, _size615) = iprot.readListBegin()
+ for _i619 in xrange(_size615):
+ _elem620 = iprot.readString()
+ self.success.append(_elem620)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13438,8 +13693,8 @@ class get_table_names_by_filter_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter607 in self.success:
- oprot.writeString(iter607)
+ for iter621 in self.success:
+ oprot.writeString(iter621)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -14409,11 +14664,11 @@ class add_partitions_args:
if fid == 1:
if ftype == TType.LIST:
self.new_parts = []
- (_etype611, _size608) = iprot.readListBegin()
- for _i612 in xrange(_size608):
- _elem613 = Partition()
- _elem613.read(iprot)
- self.new_parts.append(_elem613)
+ (_etype625, _size622) = iprot.readListBegin()
+ for _i626 in xrange(_size622):
+ _elem627 = Partition()
+ _elem627.read(iprot)
+ self.new_parts.append(_elem627)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14430,8 +14685,8 @@ class add_partitions_args:
if self.new_parts is not None:
oprot.writeFieldBegin('new_parts', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.new_parts))
- for iter614 in self.new_parts:
- iter614.write(oprot)
+ for iter628 in self.new_parts:
+ iter628.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -14589,11 +14844,11 @@ class add_partitions_pspec_args:
if fid == 1:
if ftype == TType.LIST:
self.new_parts = []
- (_etype618, _size615) = iprot.readListBegin()
- for _i619 in xrange(_size615):
- _elem620 = PartitionSpec()
- _elem620.read(iprot)
- self.new_parts.append(_elem620)
+ (_etype632, _size629) = iprot.readListBegin()
+ for _i633 in xrange(_size629):
+ _elem634 = PartitionSpec()
+ _elem634.read(iprot)
+ self.new_parts.append(_elem634)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14610,8 +14865,8 @@ class add_partitions_pspec_args:
if self.new_parts is not None:
oprot.writeFieldBegin('new_parts', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.new_parts))
- for iter621 in self.new_parts:
- iter621.write(oprot)
+ for iter635 in self.new_parts:
+ iter635.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -14785,10 +15040,10 @@ class append_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype625, _size622) = iprot.readListBegin()
- for _i626 in xrange(_size622):
- _elem627 = iprot.readString()
- self.part_vals.append(_elem627)
+ (_etype639, _size636) = iprot.readListBegin()
+ for _i640 in xrange(_size636):
+ _elem641 = iprot.readString()
+ self.part_vals.append(_elem641)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14813,8 +15068,8 @@ class append_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter628 in self.part_vals:
- oprot.writeString(iter628)
+ for iter642 in self.part_vals:
+ oprot.writeString(iter642)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -15167,10 +15422,10 @@ class append_partition_with_environment_context_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype632, _size629) = iprot.readListBegin()
- for _i633 in xrange(_size629):
- _elem634 = iprot.readString()
- self.part_vals.append(_elem634)
+ (_etype646, _size643) = iprot.readListBegin()
+ for _i647 in xrange(_size643):
+ _elem648 = iprot.readString()
+ self.part_vals.append(_elem648)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15201,8 +15456,8 @@ class append_partition_with_environment_context_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter635 in self.part_vals:
- oprot.writeString(iter635)
+ for iter649 in self.part_vals:
+ oprot.writeString(iter649)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.environment_context is not None:
@@ -15797,10 +16052,10 @@ class drop_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype639, _size636) = iprot.readListBegin()
- for _i640 in xrange(_size636):
- _elem641 = iprot.readString()
- self.part_vals.append(_elem641)
+ (_etype653, _size650) = iprot.readListBegin()
+ for _i654 in xrange(_size650):
+ _elem655 = iprot.readString()
+ self.part_vals.append(_elem655)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15830,8 +16085,8 @@ class drop_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter642 in self.part_vals:
- oprot.writeString(iter642)
+ for iter656 in self.part_vals:
+ oprot.writeString(iter656)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.deleteData is not None:
@@ -16004,10 +16259,10 @@ class drop_partition_with_environment_context_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype646, _size643) = iprot.readListBegin()
- for _i647 in xrange(_size643):
- _elem648 = iprot.readString()
- self.part_vals.append(_elem648)
+ (_etype660, _size657) = iprot.readListBegin()
+ for _i661 in xrange(_size657):
+ _elem662 = iprot.readString()
+ self.part_vals.append(_elem662)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -16043,8 +16298,8 @@ class drop_partition_with_environment_context_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter649 in self.part_vals:
- oprot.writeString(iter649)
+ for iter663 in self.part_vals:
+ oprot.writeString(iter663)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.deleteData is not None:
@@ -16781,10 +17036,10 @@ class get_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype653, _size650) = iprot.readListBegin()
- for _i654 in xrange(_size650):
- _elem655 = iprot.readString()
- self.part_vals.append(_elem655)
+ (_etype667, _size664) = iprot.readListBegin()
+ for _i668 in xrange(_size664):
+ _elem669 = iprot.readString()
+ self.part_vals.append(_elem669)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -16809,8 +17064,8 @@ class get_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter656 in self.part_vals:
- oprot.writeString(iter656)
+ for iter670 in self.part_vals:
+ oprot.writeString(iter670)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -16969,11 +17224,11 @@ class exchange_partition_args:
if fid == 1:
if ftype == TType.MAP:
self.partitionSpecs = {}
- (_ktype658, _vtype659, _size657 ) = iprot.readMapBegin()
- for _i661 in xrange(_size657):
- _key662 = iprot.readString()
- _val663 = iprot.readString()
- self.partitionSpecs[_key662] = _val663
+ (_ktype672, _vtype673, _size671 ) = iprot.readMapBegin()
+ for _i675 in xrange(_size671):
+ _key676 = iprot.readString()
+ _val677 = iprot.readString()
+ self.partitionSpecs[_key676] = _val677
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -17010,9 +17265,9 @@ class exchange_partition_args:
if self.partitionSpecs is not None:
oprot.writeFieldBegin('partitionSpecs', TType.MAP, 1)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.partitionSpecs))
- for kiter664,viter665 in self.partitionSpecs.items():
- oprot.writeString(kiter664)
- oprot.writeString(viter665)
+ for kiter678,viter679 in self.partitionSpecs.items():
+ oprot.writeString(kiter678)
+ oprot.writeString(viter679)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.source_db is not None:
@@ -17217,11 +17472,11 @@ class exchange_partitions_args:
if fid == 1:
if ftype == TType.MAP:
self.partitionSpecs = {}
- (_ktype667, _vtype668, _size666 ) = iprot.readMapBegin()
- for _i670 in xrange(_size666):
- _key671 = iprot.readString()
- _val672 = iprot.readString()
- self.partitionSpecs[_key671] = _val672
+ (_ktype681, _vtype682, _size680 ) = iprot.readMapBegin()
+ for _i684 in xrange(_size680):
+ _key685 = iprot.readString()
+ _val686 = iprot.readString()
+ self.partitionSpecs[_key685] = _val686
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -17258,9 +17513,9 @@ class exchange_partitions_args:
if self.partitionSpecs is not None:
oprot.writeFieldBegin('partitionSpecs', TType.MAP, 1)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.partitionSpecs))
- for kiter673,viter674 in self.partitionSpecs.items():
- oprot.writeString(kiter673)
- oprot.writeString(viter674)
+ for kiter687,viter688 in self.partitionSpecs.items():
+ oprot.writeString(kiter687)
+ oprot.writeString(viter688)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.source_db is not None:
@@ -17343,11 +17598,11 @@ class exchange_partitions_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype678, _size675) = iprot.readListBegin()
- for _i679 in xrange(_size675):
- _elem680 = Partition()
- _elem680.read(iprot)
- self.success.append(_elem680)
+ (_etype692, _size689) = iprot.readListBegin()
+ for _i693 in xrange(_size689):
+ _elem694 = Partition()
+ _elem694.read(iprot)
+ self.success.append(_elem694)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -17388,8 +17643,8 @@ class exchange_partitions_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter681 in self.success:
- iter681.write(oprot)
+ for iter695 in self.success:
+ iter695.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -17483,10 +17738,10 @@ class get_partition_with_auth_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype685, _size682) = iprot.readListBegin()
- for _i686 in xrange(_size682):
- _elem687 = iprot.readString()
- self.part_vals.append(_elem687)
+ (_etype699, _size696) = iprot.readListBegin()
+ for _i700 in xrange(_size696):
+ _elem701 = iprot.readString()
+ self.part_vals.append(_elem701)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -17498,10 +17753,10 @@ class get_partition_with_auth_args:
elif fid == 5:
if ftype == TType.LIST:
self.group_names = []
- (_etype691, _size688) = iprot.readListBegin()
- for _i692 in xrange(_size688):
- _elem693 = iprot.readString()
- self.group_names.append(_elem693)
+ (_etype705, _size702) = iprot.readListBegin()
+ for _i706 in xrange(_size702):
+ _elem707 = iprot.readString()
+ self.group_names.append(_elem707)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -17526,8 +17781,8 @@ class get_partition_with_auth_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter694 in self.part_vals:
- oprot.writeString(iter694)
+ for iter708 in self.part_vals:
+ oprot.writeString(iter708)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.user_name is not None:
@@ -17537,8 +17792,8 @@ class get_partition_with_auth_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 5)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter695 in self.group_names:
- oprot.writeString(iter695)
+ for iter709 in self.group_names:
+ oprot.writeString(iter709)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -17967,11 +18222,11 @@ class get_partitions_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype699, _size696) = iprot.readListBegin()
- for _i700 in xrange(_size696):
- _elem701 = Partition()
- _elem701.read(iprot)
- self.success.append(_elem701)
+ (_etype713, _size710) = iprot.readListBegin()
+ for _i714 in xrange(_size710):
+ _elem715 = Partition()
+ _elem715.read(iprot)
+ self.success.append(_elem715)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18000,8 +18255,8 @@ class get_partitions_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter702 in self.success:
- iter702.write(oprot)
+ for iter716 in self.success:
+ iter716.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -18095,10 +18350,10 @@ class get_partitions_with_auth_args:
elif fid == 5:
if ftype == TType.LIST:
self.group_names = []
- (_etype706, _size703) = iprot.readListBegin()
- for _i707 in xrange(_size703):
- _elem708 = iprot.readString()
- self.group_names.append(_elem708)
+ (_etype720, _size717) = iprot.readListBegin()
+ for _i721 in xrange(_size717):
+ _elem722 = iprot.readString()
+ self.group_names.append(_elem722)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18131,8 +18386,8 @@ class get_partitions_with_auth_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 5)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter709 in self.group_names:
- oprot.writeString(iter709)
+ for iter723 in self.group_names:
+ oprot.writeString(iter723)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -18193,11 +18448,11 @@ class get_partitions_with_auth_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype713, _size710) = iprot.readListBegin()
- for _i714 in xrange(_size710):
- _elem715 = Partition()
- _elem715.read(iprot)
- self.success.append(_elem715)
+ (_etype727, _size724) = iprot.readListBegin()
+ for _i728 in xrange(_size724):
+ _elem729 = Partition()
+ _elem729.read(iprot)
+ self.success.append(_elem729)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18226,8 +18481,8 @@ class get_partitions_with_auth_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter716 in self.success:
- iter716.write(oprot)
+ for iter730 in self.success:
+ iter730.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -18385,11 +18640,11 @@ class get_partitions_pspec_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype720, _size717) = iprot.readListBegin()
- for _i721 in xrange(_size717):
- _elem722 = PartitionSpec()
- _elem722.read(iprot)
- self.success.append(_elem722)
+ (_etype734, _size731) = iprot.readListBegin()
+ for _i735 in xrange(_size731):
+ _elem736 = PartitionSpec()
+ _elem736.read(iprot)
+ self.success.append(_elem736)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18418,8 +18673,8 @@ class get_partitions_pspec_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter723 in self.success:
- iter723.write(oprot)
+ for iter737 in self.success:
+ iter737.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -18574,10 +18829,10 @@ class get_partition_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype727, _size724) = iprot.readListBegin()
- for _i728 in xrange(_size724):
- _elem729 = iprot.readString()
- self.success.append(_elem729)
+ (_etype741, _size738) = iprot.readListBegin()
+ for _i742 in xrange(_size738):
+ _elem743 = iprot.readString()
+ self.success.append(_elem743)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18600,8 +18855,8 @@ class get_partition_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter730 in self.success:
- oprot.writeString(iter730)
+ for iter744 in self.success:
+ oprot.writeString(iter744)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o2 is not None:
@@ -18677,10 +18932,10 @@ class get_partitions_ps_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype734, _size731) = iprot.readListBegin()
- for _i735 in xrange(_size731):
- _elem736 = iprot.readString()
- self.part_vals.append(_elem736)
+ (_etype748, _size745) = iprot.readListBegin()
+ for _i749 in xrange(_size745):
+ _elem750 = iprot.readString()
+ self.part_vals.append(_elem750)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18710,8 +18965,8 @@ class get_partitions_ps_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter737 in self.part_vals:
- oprot.writeString(iter737)
+ for iter751 in self.part_vals:
+ oprot.writeString(iter751)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.max_parts is not None:
@@ -18775,11 +19030,11 @@ class get_partitions_ps_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype741, _size738) = iprot.readListBegin()
- for _i742 in xrange(_size738):
- _elem743 = Partition()
- _elem743.read(iprot)
- self.success.append(_elem743)
+ (_etype755, _size752) = iprot.readListBegin()
+ for _i756 in xrange(_size752):
+ _elem757 = Partition()
+ _elem757.read(iprot)
+ self.success.append(_elem757)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18808,8 +19063,8 @@ class get_partitions_ps_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter744 in self.success:
- iter744.write(oprot)
+ for iter758 in self.success:
+ iter758.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -18896,10 +19151,10 @@ class get_partitions_ps_with_auth_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype748, _size745) = iprot.readListBegin()
- for _i749 in xrange(_size745):
- _elem750 = iprot.readString()
- self.part_vals.append(_elem750)
+ (_etype762, _size759) = iprot.readListBegin()
+ for _i763 in xrange(_size759):
+ _elem764 = iprot.readString()
+ self.part_vals.append(_elem764)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18916,10 +19171,10 @@ class get_partitions_ps_with_auth_args:
elif fid == 6:
if ftype == TType.LIST:
self.group_names = []
- (_etype754, _size751) = iprot.readListBegin()
- for _i755 in xrange(_size751):
- _elem756 = iprot.readString()
- self.group_names.append(_elem756)
+ (_etype768, _size765) = iprot.readListBegin()
+ for _i769 in xrange(_size765):
+ _elem770 = iprot.readString()
+ self.group_names.append(_elem770)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -18944,8 +19199,8 @@ class get_partitions_ps_with_auth_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter757 in self.part_vals:
- oprot.writeString(iter757)
+ for iter771 in self.part_vals:
+ oprot.writeString(iter771)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.max_parts is not None:
@@ -18959,8 +19214,8 @@ class get_partitions_ps_with_auth_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 6)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter758 in self.group_names:
- oprot.writeString(iter758)
+ for iter772 in self.group_names:
+ oprot.writeString(iter772)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -19022,11 +19277,11 @@ class get_partitions_ps_with_auth_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype762, _size759) = iprot.readListBegin()
- for _i763 in xrange(_size759):
- _elem764 = Partition()
- _elem764.read(iprot)
- self.success.append(_elem764)
+ (_etype776, _size773) = iprot.readListBegin()
+ for _i777 in xrange(_size773):
+ _elem778 = Partition()
+ _elem778.read(iprot)
+ self.success.append(_elem778)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -19055,8 +19310,8 @@ class get_partitions_ps_with_auth_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter765 in self.success:
- iter765.write(oprot)
+ for iter779 in self.success:
+ iter779.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -19137,10 +19392,10 @@ class get_partition_names_ps_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype769, _size766) = iprot.readListBegin()
- for _i770 in xrange(_size766):
- _elem771 = iprot.readString()
- self.part_vals.append(_elem771)
+ (_etype783, _size780) = iprot.readListBegin()
+ for _i784 in xrange(_size780):
+ _elem785 = iprot.readString()
+ self.part_vals.append(_elem785)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -19170,8 +19425,8 @@ class get_partition_names_ps_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter772 in self.part_vals:
- oprot.writeString(iter772)
+ for iter786 in self.part_vals:
+ oprot.writeString(iter786)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.max_parts is not None:
@@ -19235,10 +19490,10 @@ class get_partition_names_ps_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype776, _size773) = iprot.readListBegin()
- for _i777 in xrange(_size773):
- _elem778 = iprot.readString()
- self.success.append(_elem778)
+ (_etype790, _size787) = iprot.readListBegin()
+ for _i791 in xrange(_size787):
+ _elem792 = iprot.readString()
+ self.success.append(_elem792)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -19267,8 +19522,8 @@ class get_partition_names_ps_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter779 in self.success:
- oprot.writeString(iter779)
+ for iter793 in self.success:
+ oprot.writeString(iter793)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -19439,11 +19694,11 @@ class get_partitions_by_filter_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype783, _size780) = iprot.readListBegin()
- for _i784 in xrange(_size780):
- _elem785 = Partition()
- _elem785.read(iprot)
- self.success.append(_elem785)
+ (_etype797, _size794) = iprot.readListBegin()
+ for _i798 in xrange(_size794):
+ _elem799 = Partition()
+ _elem799.read(iprot)
+ self.success.append(_elem799)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -19472,8 +19727,8 @@ class get_partitions_by_filter_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter786 in self.success:
- iter786.write(oprot)
+ for iter800 in self.success:
+ iter800.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -19644,11 +19899,11 @@ class get_part_specs_by_filter_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype790, _size787) = iprot.readListBegin()
- for _i791 in xrange(_size787):
- _elem792 = PartitionSpec()
- _elem792.read(iprot)
- self.success.append(_elem792)
+ (_etype804, _size801) = iprot.readListBegin()
+ for _i805 in xrange(_size801):
+ _elem806 = PartitionSpec()
+ _elem806.read(iprot)
+ self.success.append(_elem806)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -19677,8 +19932,8 @@ class get_part_specs_by_filter_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter793 in self.success:
- iter793.write(oprot)
+ for iter807 in self.success:
+ iter807.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -19915,10 +20170,10 @@ class get_partitions_by_names_args:
elif fid == 3:
if ftype == TType.LIST:
self.names = []
- (_etype797, _size794) = iprot.readListBegin()
- for _i798 in xrange(_size794):
- _elem799 = iprot.readString()
- self.names.append(_elem799)
+ (_etype811, _size808) = iprot.readListBegin()
+ for _i812 in xrange(_size808):
+ _elem813 = iprot.readString()
+ self.names.append(_elem813)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -19943,8 +20198,8 @@ class get_partitions_by_names_args:
if self.names is not None:
oprot.writeFieldBegin('names', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.names))
- for iter800 in self.names:
- oprot.writeString(iter800)
+ for iter814 in self.names:
+ oprot.writeString(iter814)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -20003,11 +20258,11 @@ class get_partitions_by_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype804, _size801) = iprot.readListBegin()
- for _i805 in xrange(_size801):
- _elem806 = Partition()
- _elem806.read(iprot)
- self.success.append(_elem806)
+ (_etype818, _size815) = iprot.readListBegin()
+ for _i819 in xrange(_size815):
+ _elem820 = Partition()
+ _elem820.read(iprot)
+ self.success.append(_elem820)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -20036,8 +20291,8 @@ class get_partitions_by_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter807 in self.success:
- iter807.write(oprot)
+ for iter821 in self.success:
+ iter821.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -20287,11 +20542,11 @@ class alter_partitions_args:
elif fid == 3:
if ftype == TType.LIST:
self.new_parts = []
- (_etype811, _size808) = iprot.readListBegin()
- for _i812 in xrange(_size808):
- _elem813 = Partition()
- _elem813.read(iprot)
- self.new_parts.append(_elem813)
+ (_etype825, _size822) = iprot.readListBegin()
+ for _i826 in xrange(_size822):
+ _elem827 = Partition()
+ _elem827.read(iprot)
+ self.new_parts.append(_elem827)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -20316,8 +20571,8 @@ class alter_partitions_args:
if self.new_parts is not None:
oprot.writeFieldBegin('new_parts', TType.LIST, 3)
oprot.writeListBegin(TType.STRUCT, len(self.new_parts))
- for iter814 in self.new_parts:
- iter814.write(oprot)
+ for iter828 in self.new_parts:
+ iter828.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -20656,10 +20911,10 @@ class rename_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype818, _size815) = iprot.readListBegin()
- for _i819 in xrange(_size815):
- _elem820 = iprot.readString()
- self.part_vals.append(_elem820)
+ (_etype832, _size829) = iprot.readListBegin()
+ for _i833 in xrange(_size829):
+ _elem834 = iprot.readString()
+ self.part_vals.append(_elem834)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -20690,8 +20945,8 @@ class rename_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter821 in self.part_vals:
- oprot.writeString(iter821)
+ for iter835 in self.part_vals:
+ oprot.writeString(iter835)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.new_part is not None:
@@ -20833,10 +21088,10 @@ class partition_name_has_valid_characters_args:
if fid == 1:
if ftype == TType.LIST:
self.part_vals = []
- (_etype825, _size822) = iprot.readListBegin()
- for _i826 in xrange(_size822):
- _elem827 = iprot.readString()
- self.part_vals.append(_elem827)
+ (_etype839, _size836) = iprot.readListBegin()
+ for _i840 in xrange(_size836):
+ _elem841 = iprot.readString()
+ self.part_vals.append(_elem841)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -20858,8 +21113,8 @@ class partition_name_has_valid_characters_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 1)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter828 in self.part_vals:
- oprot.writeString(iter828)
+ for iter842 in self.part_vals:
+ oprot.writeString(iter842)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.throw_exception is not None:
@@ -21217,10 +21472,10 @@ class partition_name_to_vals_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype832, _size829) = iprot.readListBegin()
- for _i833 in xrange(_size829):
- _elem834 = iprot.readString()
- self.success.append(_elem834)
+ (_etype846, _size843) = iprot.readListBegin()
+ for _i847 in xrange(_size843):
+ _elem848 = iprot.readString()
+ self.success.append(_elem848)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -21243,8 +21498,8 @@ class partition_name_to_vals_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter835 in self.success:
- oprot.writeString(iter835)
+ for iter849 in self.success:
+ oprot.writeString(iter849)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -21368,11 +21623,11 @@ class partition_name_to_spec_result:
if fid == 0:
if ftype == TType.MAP:
self.success = {}
- (_ktype837, _vtype838, _size836 ) = iprot.readMapBegin()
- for _i840 in xrange(_size836):
- _key841 = iprot.readString()
- _val842 = iprot.readString()
- self.success[_key841] = _val842
+ (_ktype851, _vtype852, _size850 ) = iprot.readMapBegin()
+ for _i854 in xrange(_size850):
+ _key855 = iprot.readString()
+ _val856 = iprot.readString()
+ self.success[_key855] = _val856
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -21395,9 +21650,9 @@ class partition_name_to_spec_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.MAP, 0)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
- for kiter843,viter844 in self.success.items():
- oprot.writeString(kiter843)
- oprot.writeString(viter844)
+ for kiter857,viter858 in self.success.items():
+ oprot.writeString(kiter857)
+ oprot.writeString(viter858)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -21473,11 +21728,11 @@ class markPartitionForEvent_args:
elif fid == 3:
if ftype == TType.MAP:
self.part_vals = {}
- (_ktype846, _vtype847, _size845 ) = iprot.readMapBegin()
- for _i849 in xrange(_size845):
- _key850 = iprot.readString()
- _val851 = iprot.readString()
- self.part_vals[_key850] = _val851
+ (_ktype860, _vtype861, _size859 ) = iprot.readMapBegin()
+ for _i863 in xrange(_size859):
+ _key864 = iprot.readString()
+ _val865 = iprot.readString()
+ self.part_vals[_key864] = _val865
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -21507,9 +21762,9 @@ class markPartitionForEvent_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.MAP, 3)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.part_vals))
- for kiter852,viter853 in self.part_vals.items():
- oprot.writeString(kiter852)
- oprot.writeString(viter853)
+ for kiter866,viter867 in self.part_vals.items():
+ oprot.writeString(kiter866)
+ oprot.writeString(viter867)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.eventType is not None:
@@ -21723,11 +21978,11 @@ class isPartitionMarkedForEvent_args:
elif fid == 3:
if ftype == TType.MAP:
self.part_vals = {}
- (_ktype855, _vtype856, _size854 ) = iprot.readMapBegin()
- for _i858 in xrange(_size854):
- _key859 = iprot.readString()
- _val860 = iprot.readString()
- self.part_vals[_key859] = _val860
+ (_ktype869, _vtype870, _size868 ) = iprot.readMapBegin()
+ for _i872 in xrange(_size868):
+ _key873 = iprot.readString()
+ _val874 = iprot.readString()
+ self.part_vals[_key873] = _val874
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -21757,9 +22012,9 @@ class isPartitionMarkedForEvent_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.MAP, 3)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.part_vals))
- for kiter861,viter862 in self.part_vals.items():
- oprot.writeString(kiter861)
- oprot.writeString(viter862)
+ for kiter875,viter876 in self.part_vals.items():
+ oprot.writeString(kiter875)
+ oprot.writeString(viter876)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.eventType is not None:
@@ -22814,11 +23069,11 @@ class get_indexes_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype866, _size863) = iprot.readListBegin()
- for _i867 in xrange(_size863):
- _elem868 = Index()
- _elem868.read(iprot)
- self.success.append(_elem868)
+ (_etype880, _size877) = iprot.readListBegin()
+ for _i881 in xrange(_size877):
+ _elem882 = Index()
+ _elem882.read(iprot)
+ self.success.append(_elem882)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -22847,8 +23102,8 @@ class get_indexes_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter869 in self.success:
- iter869.write(oprot)
+ for iter883 in self.success:
+ iter883.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -23003,10 +23258,10 @@ class get_index_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype873, _size870) = iprot.readListBegin()
- for _i874 in xrange(_size870):
- _elem875 = iprot.readString()
- self.success.append(_elem875)
+ (_etype887, _size884) = iprot.readListBegin()
+ for _i888 in xrange(_size884):
+ _elem889 = iprot.readString()
+ self.success.append(_elem889)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -23029,8 +23284,8 @@ class get_index_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter876 in self.success:
- oprot.writeString(iter876)
+ for iter890 in self.success:
+ oprot.writeString(iter890)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o2 is not None:
@@ -25578,10 +25833,10 @@ class get_functions_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype880, _size877) = iprot.readListBegin()
- for _i881 in xrange(_size877):
- _elem882 = iprot.readString()
- self.success.append(_elem882)
+ (_etype894, _size891) = iprot.readListBegin()
+ for _i895 in xrange(_size891):
+ _elem896 = iprot.readString()
+ self.success.append(_elem896)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -25604,8 +25859,8 @@ class get_functions_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter883 in self.success:
- oprot.writeString(iter883)
+ for iter897 in self.success:
+ oprot.writeString(iter897)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -26293,10 +26548,10 @@ class get_role_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype887, _size884) = iprot.readListBegin()
- for _i888 in xrange(_size884):
- _elem889 = iprot.readString()
- self.success.append(_elem889)
+ (_etype901, _size898) = iprot.readListBegin()
+ for _i902 in xrange(_size898):
+ _elem903 = iprot.readString()
+ self.success.append(_elem903)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -26319,8 +26574,8 @@ class get_role_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter890 in self.success:
- oprot.writeString(iter890)
+ for iter904 in self.success:
+ oprot.writeString(iter904)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -26834,11 +27089,11 @@ class list_roles_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype894, _size891) = iprot.readListBegin()
- for _i895 in xrange(_size891):
- _elem896 = Role()
- _elem896.read(iprot)
- self.success.append(_elem896)
+ (_etype908, _size905) = iprot.readListBegin()
+ for _i909 in xrange(_size905):
+ _elem910 = Role()
+ _elem910.read(iprot)
+ self.success.append(_elem910)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -26861,8 +27116,8 @@ class list_roles_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter897 in self.success:
- iter897.write(oprot)
+ for iter911 in self.success:
+ iter911.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -27371,10 +27626,10 @@ class get_privilege_set_args:
elif fid == 3:
if ftype == TType.LIST:
self.group_names = []
- (_etype901, _size898) = iprot.readListBegin()
- for _i902 in xrange(_size898):
- _elem903 = iprot.readString()
- self.group_names.append(_elem903)
+ (_etype915, _size912) = iprot.readListBegin()
+ for _i916 in xrange(_size912):
+ _elem917 = iprot.readString()
+ self.group_names.append(_elem917)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -27399,8 +27654,8 @@ class get_privilege_set_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter904 in self.group_names:
- oprot.writeString(iter904)
+ for iter918 in self.group_names:
+ oprot.writeString(iter918)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -27627,11 +27882,11 @@ class list_privileges_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype908, _size905) = iprot.readListBegin()
- for _i909 in xrange(_size905):
- _elem910 = HiveObjectPrivilege()
- _elem910.read(iprot)
- self.success.append(_elem910)
+ (_etype922, _size919) = iprot.readListBegin()
+ for _i923 in xrange(_size919):
+ _elem924 = HiveObjectPrivilege()
+ _elem924.read(iprot)
+ self.success.append(_elem924)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -27654,8 +27909,8 @@ class list_privileges_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter911 in self.success:
- iter911.write(oprot)
+ for iter925 in self.success:
+ iter925.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -28153,10 +28408,10 @@ class set_ugi_args:
elif fid == 2:
if ftype == TType.LIST:
self.group_names = []
- (_etype915, _size912) = iprot.readListBegin()
- for _i916 in xrange(_size912):
- _elem917 = iprot.readString()
- self.group_names.append(_elem917)
+ (_etype929, _size926) = iprot.readListBegin()
+ for _i930 in xrange(_size926):
+ _elem931 = iprot.readString()
+ self.group_names.append(_elem931)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -28177,8 +28432,8 @@ class set_ugi_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter918 in self.group_names:
- oprot.writeString(iter918)
+ for iter932 in self.group_names:
+ oprot.writeString(iter932)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -28233,10 +28488,10 @@ class set_ugi_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype922, _size919) = iprot.readListBegin()
- for _i923 in xrange(_size919):
- _elem924 = iprot.readString()
- self.success.append(_elem924)
+ (_etype936, _size933) = iprot.readListBegin()
+ for _i937 in xrange(_size933):
+ _elem938 = iprot.readString()
+ self.success.append(_elem938)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -28259,8 +28514,8 @@ class set_ugi_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter925 in self.success:
- oprot.writeString(iter925)
+ for iter939 in self.success:
+ oprot.writeString(iter939)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py b/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
index 8940dff..ba525ed 100644
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
@@ -10554,6 +10554,116 @@ class GetAllFunctionsResponse:
def __ne__(self, other):
return not (self == other)
+class TableMeta:
+ """
+ Attributes:
+ - dbName
+ - tableName
+ - tableType
+ - comments
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRING, 'dbName', None, None, ), # 1
+ (2, TType.STRING, 'tableName', None, None, ), # 2
+ (3, TType.STRING, 'tableType', None, None, ), # 3
+ (4, TType.STRING, 'comments', None, None, ), # 4
+ )
+
+ def __init__(self, dbName=None, tableName=None, tableType=None, comments=None,):
+ self.dbName = dbName
+ self.tableName = tableName
+ self.tableType = tableType
+ self.comments = comments
+
+ 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.dbName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.tableName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.tableType = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.comments = iprot.readString()
+ 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('TableMeta')
+ if self.dbName is not None:
+ oprot.writeFieldBegin('dbName', TType.STRING, 1)
+ oprot.writeString(self.dbName)
+ oprot.writeFieldEnd()
+ if self.tableName is not None:
+ oprot.writeFieldBegin('tableName', TType.STRING, 2)
+ oprot.writeString(self.tableName)
+ oprot.writeFieldEnd()
+ if self.tableType is not None:
+ oprot.writeFieldBegin('tableType', TType.STRING, 3)
+ oprot.writeString(self.tableType)
+ oprot.writeFieldEnd()
+ if self.comments is not None:
+ oprot.writeFieldBegin('comments', TType.STRING, 4)
+ oprot.writeString(self.comments)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.dbName is None:
+ raise TProtocol.TProtocolException(message='Required field dbName is unset!')
+ if self.tableName is None:
+ raise TProtocol.TProtocolException(message='Required field tableName is unset!')
+ if self.tableType is None:
+ raise TProtocol.TProtocolException(message='Required field tableType is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.dbName)
+ value = (value * 31) ^ hash(self.tableName)
+ value = (value * 31) ^ hash(self.tableType)
+ value = (value * 31) ^ hash(self.comments)
+ 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 MetaException(TException):
"""
Attributes:
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb b/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
index 08b9b06..f943f2d 100644
--- a/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
+++ b/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
@@ -2422,6 +2422,31 @@ class GetAllFunctionsResponse
::Thrift::Struct.generate_accessors self
end
+class TableMeta
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ DBNAME = 1
+ TABLENAME = 2
+ TABLETYPE = 3
+ COMMENTS = 4
+
+ FIELDS = {
+ DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
+ TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'},
+ TABLETYPE => {:type => ::Thrift::Types::STRING, :name => 'tableType'},
+ COMMENTS => {:type => ::Thrift::Types::STRING, :name => 'comments', :optional => true}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field dbName is unset!') unless @dbName
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field tableName is unset!') unless @tableName
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field tableType is unset!') unless @tableType
+ end
+
+ ::Thrift::Struct.generate_accessors self
+end
+
class MetaException < ::Thrift::Exception
include ::Thrift::Struct, ::Thrift::Struct_Union
def initialize(message=nil)
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb b/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
index c613e4b..5fe54b5 100644
--- a/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
+++ b/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
@@ -366,6 +366,22 @@ module ThriftHiveMetastore
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_tables failed: unknown result')
end
+ def get_table_meta(db_patterns, tbl_patterns, tbl_types)
+ send_get_table_meta(db_patterns, tbl_patterns, tbl_types)
+ return recv_get_table_meta()
+ end
+
+ def send_get_table_meta(db_patterns, tbl_patterns, tbl_types)
+ send_message('get_table_meta', Get_table_meta_args, :db_patterns => db_patterns, :tbl_patterns => tbl_patterns, :tbl_types => tbl_types)
+ end
+
+ def recv_get_table_meta()
+ result = receive_message(Get_table_meta_result)
+ return result.success unless result.success.nil?
+ raise result.o1 unless result.o1.nil?
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_meta failed: unknown result')
+ end
+
def get_all_tables(db_name)
send_get_all_tables(db_name)
return recv_get_all_tables()
@@ -2471,6 +2487,17 @@ module ThriftHiveMetastore
write_result(result, oprot, 'get_tables', seqid)
end
+ def process_get_table_meta(seqid, iprot, oprot)
+ args = read_args(iprot, Get_table_meta_args)
+ result = Get_table_meta_result.new()
+ begin
+ result.success = @handler.get_table_meta(args.db_patterns, args.tbl_patterns, args.tbl_types)
+ rescue ::MetaException => o1
+ result.o1 = o1
+ end
+ write_result(result, oprot, 'get_table_meta', seqid)
+ end
+
def process_get_all_tables(seqid, iprot, oprot)
args = read_args(iprot, Get_all_tables_args)
result = Get_all_tables_result.new()
@@ -4613,6 +4640,44 @@ module ThriftHiveMetastore
::Thrift::Struct.generate_accessors self
end
+ class Get_table_meta_args
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ DB_PATTERNS = 1
+ TBL_PATTERNS = 2
+ TBL_TYPES = 3
+
+ FIELDS = {
+ DB_PATTERNS => {:type => ::Thrift::Types::STRING, :name => 'db_patterns'},
+ TBL_PATTERNS => {:type => ::Thrift::Types::STRING, :name => 'tbl_patterns'},
+ TBL_TYPES => {:type => ::Thrift::Types::LIST, :name => 'tbl_types', :element => {:type => ::Thrift::Types::STRING}}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class Get_table_meta_result
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SUCCESS = 0
+ O1 = 1
+
+ FIELDS = {
+ SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::TableMeta}},
+ O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
class Get_all_tables_args
include ::Thrift::Struct, ::Thrift::Struct_Union
DB_NAME = 1
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
index 2e9afaf..3c40d6e 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -110,7 +110,6 @@ import org.apache.thrift.transport.TTransportFactory;
import javax.jdo.JDOException;
import java.io.IOException;
-import java.lang.reflect.Field;
import java.nio.ByteBuffer;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -1710,6 +1709,23 @@ public class HiveMetaStore extends ThriftHiveMetastore {
return t;
}
+ @Override
+ public List<TableMeta> get_table_meta(String dbnames, String tblNames, List<String> tblTypes)
+ throws MetaException, NoSuchObjectException {
+ List<TableMeta> t = null;
+ startTableFunction("get_table_metas", dbnames, tblNames);
+ Exception ex = null;
+ try {
+ t = getMS().getTableMeta(dbnames, tblNames, tblTypes);
+ } catch (Exception e) {
+ ex = e;
+ throw newMetaException(e);
+ } finally {
+ endFunction("get_table_metas", t != null, ex);
+ }
+ return t;
+ }
+
/**
* Equivalent of get_table, but does not log audits and fire pre-event listener.
* Meant to be used for calls made by other hive classes, that are not using the
@@ -5249,6 +5265,9 @@ public class HiveMetaStore extends ThriftHiveMetastore {
}
private static MetaException newMetaException(Exception e) {
+ if (e instanceof MetaException) {
+ return (MetaException)e;
+ }
MetaException me = new MetaException(e.toString());
me.initCause(e);
return me;
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
index f86ec45..c5e7a5f 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -131,6 +131,7 @@ import org.apache.hadoop.hive.metastore.api.ShowCompactResponse;
import org.apache.hadoop.hive.metastore.api.ShowLocksRequest;
import org.apache.hadoop.hive.metastore.api.ShowLocksResponse;
import org.apache.hadoop.hive.metastore.api.Table;
+import org.apache.hadoop.hive.metastore.api.TableMeta;
import org.apache.hadoop.hive.metastore.api.TableStatsRequest;
import org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore;
import org.apache.hadoop.hive.metastore.api.TxnAbortedException;
@@ -1314,6 +1315,37 @@ public class HiveMetaStoreClient implements IMetaStoreClient {
return null;
}
+ @Override
+ public List<TableMeta> getTableMeta(String dbPatterns, String tablePatterns, List<String> tableTypes)
+ throws MetaException {
+ try {
+ return filterNames(client.get_table_meta(dbPatterns, tablePatterns, tableTypes));
+ } catch (Exception e) {
+ MetaStoreUtils.logAndThrowMetaException(e);
+ }
+ return null;
+ }
+
+ private List<TableMeta> filterNames(List<TableMeta> metas) throws MetaException {
+ Map<String, TableMeta> sources = new LinkedHashMap<>();
+ Map<String, List<String>> dbTables = new LinkedHashMap<>();
+ for (TableMeta meta : metas) {
+ sources.put(meta.getDbName() + "." + meta.getTableName(), meta);
+ List<String> tables = dbTables.get(meta.getDbName());
+ if (tables == null) {
+ dbTables.put(meta.getDbName(), tables = new ArrayList<String>());
+ }
+ tables.add(meta.getTableName());
+ }
+ List<TableMeta> filtered = new ArrayList<>();
+ for (Map.Entry<String, List<String>> entry : dbTables.entrySet()) {
+ for (String table : filterHook.filterTableNames(entry.getKey(), entry.getValue())) {
+ filtered.add(sources.get(entry.getKey() + "." + table));
+ }
+ }
+ return filtered;
+ }
+
/** {@inheritDoc} */
@Override
public List<String> getAllTables(String dbname) throws MetaException {
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java b/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
index 9279cf5..aa96f77 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
@@ -70,6 +70,7 @@ import org.apache.hadoop.hive.metastore.api.SetPartitionsStatsRequest;
import org.apache.hadoop.hive.metastore.api.ShowCompactResponse;
import org.apache.hadoop.hive.metastore.api.ShowLocksResponse;
import org.apache.hadoop.hive.metastore.api.Table;
+import org.apache.hadoop.hive.metastore.api.TableMeta;
import org.apache.hadoop.hive.metastore.api.TxnAbortedException;
import org.apache.hadoop.hive.metastore.api.TxnOpenException;
import org.apache.hadoop.hive.metastore.api.UnknownDBException;
@@ -161,6 +162,12 @@ public interface IMetaStoreClient {
throws MetaException, TException, UnknownDBException;
/**
+ * For quick GetTablesOperation
+ */
+ List<TableMeta> getTableMeta(String dbPatterns, String tablePatterns, List<String> tableTypes)
+ throws MetaException, TException, UnknownDBException;
+
+ /**
* Get the names of all tables in the specified database.
* @param dbName
* @return List of table names.
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
index 9f2f5f4..803c6e7 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
@@ -55,8 +55,6 @@ import javax.jdo.datastore.DataStoreCache;
import javax.jdo.identity.IntIdentity;
import com.google.common.annotations.VisibleForTesting;
-import org.antlr.runtime.CommonTokenStream;
-import org.antlr.runtime.RecognitionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configurable;
@@ -109,6 +107,7 @@ import org.apache.hadoop.hive.metastore.api.SerDeInfo;
import org.apache.hadoop.hive.metastore.api.SkewedInfo;
import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
import org.apache.hadoop.hive.metastore.api.Table;
+import org.apache.hadoop.hive.metastore.api.TableMeta;
import org.apache.hadoop.hive.metastore.api.Type;
import org.apache.hadoop.hive.metastore.api.UnknownDBException;
import org.apache.hadoop.hive.metastore.api.UnknownPartitionException;
@@ -143,12 +142,7 @@ import org.apache.hadoop.hive.metastore.model.MTablePrivilege;
import org.apache.hadoop.hive.metastore.model.MType;
import org.apache.hadoop.hive.metastore.model.MVersionTable;
import org.apache.hadoop.hive.metastore.parser.ExpressionTree;
-import org.apache.hadoop.hive.metastore.parser.ExpressionTree.ANTLRNoCaseStringStream;
import org.apache.hadoop.hive.metastore.parser.ExpressionTree.FilterBuilder;
-import org.apache.hadoop.hive.metastore.parser.ExpressionTree.LeafNode;
-import org.apache.hadoop.hive.metastore.parser.ExpressionTree.Operator;
-import org.apache.hadoop.hive.metastore.parser.FilterLexer;
-import org.apache.hadoop.hive.metastore.parser.FilterParser;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
import org.apache.hadoop.hive.shims.ShimLoader;
@@ -729,6 +723,9 @@ public class ObjectStore implements RawStore, Configurable {
@Override
public List<String> getDatabases(String pattern) throws MetaException {
+ if (pattern == null || pattern.equals("*")) {
+ return getAllDatabases();
+ }
boolean commited = false;
List<String> databases = null;
Query query = null;
@@ -770,7 +767,28 @@ public class ObjectStore implements RawStore, Configurable {
@Override
public List<String> getAllDatabases() throws MetaException {
- return getDatabases(".*");
+ boolean commited = false;
+ List<String> databases = null;
+
+ String queryStr = "select name from org.apache.hadoop.hive.metastore.model.MDatabase";
+ Query query = null;
+
+ openTransaction();
+ try {
+ query = pm.newQuery(queryStr);
+ query.setResult("name");
+ databases = new ArrayList<String>((Collection<String>) query.execute());
+ commited = commitTransaction();
+ } finally {
+ if (!commited) {
+ rollbackTransaction();
+ }
+ if (query != null) {
+ query.closeAll();
+ }
+ }
+ Collections.sort(databases);
+ return databases;
}
private MType getMType(Type type) {
@@ -1050,6 +1068,84 @@ public class ObjectStore implements RawStore, Configurable {
}
@Override
+ public List<TableMeta> getTableMeta(String dbNames, String tableNames, List<String> tableTypes)
+ throws MetaException {
+
+ boolean commited = false;
+ Query query = null;
+ List<TableMeta> metas = new ArrayList<TableMeta>();
+ try {
+ openTransaction();
+ // Take the pattern and split it on the | to get all the composing
+ // patterns
+ StringBuilder builder = new StringBuilder();
+ if (dbNames != null && !dbNames.equals("*")) {
+ appendPatternCondition(builder, "database.name", dbNames);
+ }
+ if (tableNames != null && !tableNames.equals("*")) {
+ appendPatternCondition(builder, "tableName", tableNames);
+ }
+ if (tableTypes != null && !tableTypes.isEmpty()) {
+ appendSimpleCondition(builder, "tableType", tableTypes.toArray(new String[0]));
+ }
+
+ query = pm.newQuery(MTable.class, builder.toString());
+ Collection<MTable> tables = (Collection<MTable>) query.execute();
+ for (MTable table : tables) {
+ TableMeta metaData = new TableMeta(
+ table.getDatabase().getName(), table.getTableName(), table.getTableType());
+ metaData.setComments(table.getParameters().get("comment"));
+ metas.add(metaData);
+ }
+ commited = commitTransaction();
+ } finally {
+ if (!commited) {
+ rollbackTransaction();
+ }
+ if (query != null) {
+ query.closeAll();
+ }
+ }
+ return metas;
+ }
+
+ private StringBuilder appendPatternCondition(StringBuilder builder,
+ String fieldName, String elements) {
+ elements = HiveStringUtils.normalizeIdentifier(elements);
+ return appendCondition(builder, fieldName, elements.split("\\|"), true);
+ }
+
+ private StringBuilder appendSimpleCondition(StringBuilder builder,
+ String fieldName, String[] elements) {
+ return appendCondition(builder, fieldName, elements, false);
+ }
+
+ private StringBuilder appendCondition(StringBuilder builder,
+ String fieldName, String[] elements, boolean pattern) {
+ if (builder.length() > 0) {
+ builder.append(" && ");
+ }
+ builder.append(" (");
+ int length = builder.length();
+ for (String element : elements) {
+ if (pattern) {
+ element = "(?i)" + element.replaceAll("\\*", ".*");
+ }
+ if (builder.length() > length) {
+ builder.append(" || ");
+ }
+ builder.append(fieldName);
+ if (pattern) {
+ builder.append(".matches(\"").append(element).append("\")");
+ } else {
+ builder.append(" == \"").append(element).append("\"");
+ }
+ }
+ builder.append(" )");
+ return builder;
+ }
+
+ @Override
public List<String> getAllTables(String dbName) throws MetaException {
return getTables(dbName, ".*");
}
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
index 4aa17a5..5b36b03 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
@@ -51,6 +51,7 @@ import org.apache.hadoop.hive.metastore.api.PrivilegeBag;
import org.apache.hadoop.hive.metastore.api.Role;
import org.apache.hadoop.hive.metastore.api.RolePrincipalGrant;
import org.apache.hadoop.hive.metastore.api.Table;
+import org.apache.hadoop.hive.metastore.api.TableMeta;
import org.apache.hadoop.hive.metastore.api.Type;
import org.apache.hadoop.hive.metastore.api.UnknownDBException;
import org.apache.hadoop.hive.metastore.api.UnknownPartitionException;
@@ -151,6 +152,9 @@ public interface RawStore extends Configurable {
public List<String> getTables(String dbName, String pattern)
throws MetaException;
+ public List<TableMeta> getTableMeta(
+ String dbNames, String tableNames, List<String> tableTypes) throws MetaException;
+
/**
* @param dbname
* The name of the database from which to retrieve the tables
http://git-wip-us.apache.org/repos/asf/hive/blob/b678ed85/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseStore.java
index 5cc7c30..98e6c75 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseStore.java
@@ -62,6 +62,7 @@ import org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo;
import org.apache.hadoop.hive.metastore.api.Role;
import org.apache.hadoop.hive.metastore.api.RolePrincipalGrant;
import org.apache.hadoop.hive.metastore.api.Table;
+import org.apache.hadoop.hive.metastore.api.TableMeta;
import org.apache.hadoop.hive.metastore.api.Type;
import org.apache.hadoop.hive.metastore.api.UnknownDBException;
import org.apache.hadoop.hive.metastore.api.UnknownPartitionException;
@@ -71,7 +72,6 @@ import org.apache.hadoop.hive.metastore.hbase.HBaseFilterPlanUtil.PlanResult;
import org.apache.hadoop.hive.metastore.hbase.HBaseFilterPlanUtil.ScanPlan;
import org.apache.hadoop.hive.metastore.parser.ExpressionTree;
import org.apache.hadoop.hive.metastore.partition.spec.PartitionSpecProxy;
-import org.apache.hadoop.hive.ql.io.sarg.SearchArgument;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
import org.apache.hive.common.util.HiveStringUtils;
@@ -487,10 +487,7 @@ public class HBaseStore implements RawStore {
boolean commit = false;
openTransaction();
try {
- List<Table> tables = getHBase().scanTables(HiveStringUtils.normalizeIdentifier(dbName),
- pattern==null?null:HiveStringUtils.normalizeIdentifier(likeToRegex(pattern)));
- List<String> tableNames = new ArrayList<String>(tables.size());
- for (Table table : tables) tableNames.add(table.getTableName());
+ List<String> tableNames = getTableNamesInTx(dbName, pattern);
commit = true;
return tableNames;
} catch (IOException e) {
@@ -501,6 +498,41 @@ public class HBaseStore implements RawStore {
}
}
+ private List<String> getTableNamesInTx(String dbName, String pattern) throws IOException {
+ List<Table> tables = getHBase().scanTables(HiveStringUtils.normalizeIdentifier(dbName),
+ pattern==null?null:HiveStringUtils.normalizeIdentifier(likeToRegex(pattern)));
+ List<String> tableNames = new ArrayList<String>(tables.size());
+ for (Table table : tables) tableNames.add(table.getTableName());
+ return tableNames;
+ }
+
+ @Override
+ public List<TableMeta> getTableMeta(String dbNames, String tableNames, List<String> tableTypes)
+ throws MetaException {
+ boolean commit = false;
+ openTransaction();
+ try {
+ List<TableMeta> metas = new ArrayList<>();
+ for (String dbName : getDatabases(dbNames)) {
+ for (Table table : getTableObjectsByName(dbName, getTableNamesInTx(dbName, tableNames))) {
+ if (tableTypes == null || tableTypes.contains(table.getTableType())) {
+ TableMeta metaData = new TableMeta(
+ table.getDbName(), table.getTableName(), table.getTableType());
+ metaData.setComments(table.getParameters().get("comment"));
+ metas.add(metaData);
+ }
+ }
+ }
+ commit = true;
+ return metas;
+ } catch (Exception e) {
+ LOG.error("Unable to get tables ", e);
+ throw new MetaException("Unable to get tables, " + e.getMessage());
+ } finally {
+ commitOrRoleBack(commit);
+ }
+ }
+
@Override
public List<Table> getTableObjectsByName(String dbname, List<String> tableNames) throws
MetaException, UnknownDBException {
@@ -1660,7 +1692,7 @@ public class HBaseStore implements RawStore {
openTransaction();
try {
List<ColumnStatistics> cs =
- getHBase().getPartitionStatistics(dbName, tblName, partNames, partVals, colNames);
+ getHBase().getPartitionStatistics(dbName, tblName, partNames, partVals, colNames);
commit = true;
return cs;
} catch (IOException e) {