FAQ
Repository: hive
Updated Branches:
   refs/heads/branch-1 fd22de06c -> 96c9ee64f


http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/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 9e460f0..0829c52 100644
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
@@ -386,6 +386,17 @@ class Iface(fb303.FacebookService.Iface):
      """
      pass

+ def exchange_partitions(self, partitionSpecs, source_db, source_table_name, dest_db, dest_table_name):
+ """
+ Parameters:
+ - partitionSpecs
+ - source_db
+ - source_table_name
+ - dest_db
+ - dest_table_name
+ """
+ pass
+
    def get_partition_with_auth(self, db_name, tbl_name, part_vals, user_name, group_names):
      """
      Parameters:
@@ -2696,6 +2707,53 @@ class Client(fb303.FacebookService.Client, Iface):
        raise result.o4
      raise TApplicationException(TApplicationException.MISSING_RESULT, "exchange_partition failed: unknown result");

+ def exchange_partitions(self, partitionSpecs, source_db, source_table_name, dest_db, dest_table_name):
+ """
+ Parameters:
+ - partitionSpecs
+ - source_db
+ - source_table_name
+ - dest_db
+ - dest_table_name
+ """
+ self.send_exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
+ return self.recv_exchange_partitions()
+
+ def send_exchange_partitions(self, partitionSpecs, source_db, source_table_name, dest_db, dest_table_name):
+ self._oprot.writeMessageBegin('exchange_partitions', TMessageType.CALL, self._seqid)
+ args = exchange_partitions_args()
+ args.partitionSpecs = partitionSpecs
+ args.source_db = source_db
+ args.source_table_name = source_table_name
+ args.dest_db = dest_db
+ args.dest_table_name = dest_table_name
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_exchange_partitions(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = exchange_partitions_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ if result.o1 is not None:
+ raise result.o1
+ if result.o2 is not None:
+ raise result.o2
+ if result.o3 is not None:
+ raise result.o3
+ if result.o4 is not None:
+ raise result.o4
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "exchange_partitions failed: unknown result");
+
    def get_partition_with_auth(self, db_name, tbl_name, part_vals, user_name, group_names):
      """
      Parameters:
@@ -5637,6 +5695,7 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
      self._processMap["drop_partitions_req"] = Processor.process_drop_partitions_req
      self._processMap["get_partition"] = Processor.process_get_partition
      self._processMap["exchange_partition"] = Processor.process_exchange_partition
+ self._processMap["exchange_partitions"] = Processor.process_exchange_partitions
      self._processMap["get_partition_with_auth"] = Processor.process_get_partition_with_auth
      self._processMap["get_partition_by_name"] = Processor.process_get_partition_by_name
      self._processMap["get_partitions"] = Processor.process_get_partitions
@@ -6471,6 +6530,26 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
      oprot.writeMessageEnd()
      oprot.trans.flush()

+ def process_exchange_partitions(self, seqid, iprot, oprot):
+ args = exchange_partitions_args()
+ args.read(iprot)
+ iprot.readMessageEnd()
+ result = exchange_partitions_result()
+ try:
+ result.success = self._handler.exchange_partitions(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name)
+ except MetaException, o1:
+ result.o1 = o1
+ except NoSuchObjectException, o2:
+ result.o2 = o2
+ except InvalidObjectException, o3:
+ result.o3 = o3
+ except InvalidInputException, o4:
+ result.o4 = o4
+ oprot.writeMessageBegin("exchange_partitions", TMessageType.REPLY, seqid)
+ result.write(oprot)
+ oprot.writeMessageEnd()
+ oprot.trans.flush()
+
    def process_get_partition_with_auth(self, seqid, iprot, oprot):
      args = get_partition_with_auth_args()
      args.read(iprot)
@@ -15686,6 +15765,262 @@ class exchange_partition_result:
    def __ne__(self, other):
      return not (self == other)

+class exchange_partitions_args:
+ """
+ Attributes:
+ - partitionSpecs
+ - source_db
+ - source_table_name
+ - dest_db
+ - dest_table_name
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.MAP, 'partitionSpecs', (TType.STRING,None,TType.STRING,None), None, ), # 1
+ (2, TType.STRING, 'source_db', None, None, ), # 2
+ (3, TType.STRING, 'source_table_name', None, None, ), # 3
+ (4, TType.STRING, 'dest_db', None, None, ), # 4
+ (5, TType.STRING, 'dest_table_name', None, None, ), # 5
+ )
+
+ def __init__(self, partitionSpecs=None, source_db=None, source_table_name=None, dest_db=None, dest_table_name=None,):
+ self.partitionSpecs = partitionSpecs
+ self.source_db = source_db
+ self.source_table_name = source_table_name
+ self.dest_db = dest_db
+ self.dest_table_name = dest_table_name
+
+ 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.MAP:
+ self.partitionSpecs = {}
+ (_ktype614, _vtype615, _size613 ) = iprot.readMapBegin()
+ for _i617 in xrange(_size613):
+ _key618 = iprot.readString();
+ _val619 = iprot.readString();
+ self.partitionSpecs[_key618] = _val619
+ iprot.readMapEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.source_db = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.source_table_name = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.dest_db = iprot.readString();
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.dest_table_name = 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('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 kiter620,viter621 in self.partitionSpecs.items():
+ oprot.writeString(kiter620)
+ oprot.writeString(viter621)
+ oprot.writeMapEnd()
+ oprot.writeFieldEnd()
+ if self.source_db is not None:
+ oprot.writeFieldBegin('source_db', TType.STRING, 2)
+ oprot.writeString(self.source_db)
+ oprot.writeFieldEnd()
+ if self.source_table_name is not None:
+ oprot.writeFieldBegin('source_table_name', TType.STRING, 3)
+ oprot.writeString(self.source_table_name)
+ oprot.writeFieldEnd()
+ if self.dest_db is not None:
+ oprot.writeFieldBegin('dest_db', TType.STRING, 4)
+ oprot.writeString(self.dest_db)
+ oprot.writeFieldEnd()
+ if self.dest_table_name is not None:
+ oprot.writeFieldBegin('dest_table_name', TType.STRING, 5)
+ oprot.writeString(self.dest_table_name)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.partitionSpecs)
+ value = (value * 31) ^ hash(self.source_db)
+ value = (value * 31) ^ hash(self.source_table_name)
+ value = (value * 31) ^ hash(self.dest_db)
+ value = (value * 31) ^ hash(self.dest_table_name)
+ 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 exchange_partitions_result:
+ """
+ Attributes:
+ - success
+ - o1
+ - o2
+ - o3
+ - o4
+ """
+
+ thrift_spec = (
+ (0, TType.LIST, 'success', (TType.STRUCT,(Partition, Partition.thrift_spec)), None, ), # 0
+ (1, TType.STRUCT, 'o1', (MetaException, MetaException.thrift_spec), None, ), # 1
+ (2, TType.STRUCT, 'o2', (NoSuchObjectException, NoSuchObjectException.thrift_spec), None, ), # 2
+ (3, TType.STRUCT, 'o3', (InvalidObjectException, InvalidObjectException.thrift_spec), None, ), # 3
+ (4, TType.STRUCT, 'o4', (InvalidInputException, InvalidInputException.thrift_spec), None, ), # 4
+ )
+
+ def __init__(self, success=None, o1=None, o2=None, o3=None, o4=None,):
+ self.success = success
+ self.o1 = o1
+ self.o2 = o2
+ self.o3 = o3
+ self.o4 = o4
+
+ 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 = []
+ (_etype625, _size622) = iprot.readListBegin()
+ for _i626 in xrange(_size622):
+ _elem627 = Partition()
+ _elem627.read(iprot)
+ self.success.append(_elem627)
+ iprot.readListEnd()
+ else:
+ iprot.skip(ftype)
+ elif fid == 1:
+ if ftype == TType.STRUCT:
+ self.o1 = MetaException()
+ self.o1.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.o2 = NoSuchObjectException()
+ self.o2.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRUCT:
+ self.o3 = InvalidObjectException()
+ self.o3.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRUCT:
+ self.o4 = InvalidInputException()
+ self.o4.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('exchange_partitions_result')
+ if self.success is not None:
+ oprot.writeFieldBegin('success', TType.LIST, 0)
+ oprot.writeListBegin(TType.STRUCT, len(self.success))
+ for iter628 in self.success:
+ iter628.write(oprot)
+ oprot.writeListEnd()
+ oprot.writeFieldEnd()
+ if self.o1 is not None:
+ oprot.writeFieldBegin('o1', TType.STRUCT, 1)
+ self.o1.write(oprot)
+ oprot.writeFieldEnd()
+ if self.o2 is not None:
+ oprot.writeFieldBegin('o2', TType.STRUCT, 2)
+ self.o2.write(oprot)
+ oprot.writeFieldEnd()
+ if self.o3 is not None:
+ oprot.writeFieldBegin('o3', TType.STRUCT, 3)
+ self.o3.write(oprot)
+ oprot.writeFieldEnd()
+ if self.o4 is not None:
+ oprot.writeFieldBegin('o4', TType.STRUCT, 4)
+ self.o4.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)
+ value = (value * 31) ^ hash(self.o2)
+ value = (value * 31) ^ hash(self.o3)
+ value = (value * 31) ^ hash(self.o4)
+ 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_partition_with_auth_args:
    """
    Attributes:
@@ -15734,10 +16069,10 @@ class get_partition_with_auth_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.part_vals = []
- (_etype616, _size613) = iprot.readListBegin()
- for _i617 in xrange(_size613):
- _elem618 = iprot.readString();
- self.part_vals.append(_elem618)
+ (_etype632, _size629) = iprot.readListBegin()
+ for _i633 in xrange(_size629):
+ _elem634 = iprot.readString();
+ self.part_vals.append(_elem634)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -15749,10 +16084,10 @@ class get_partition_with_auth_args:
        elif fid == 5:
          if ftype == TType.LIST:
            self.group_names = []
- (_etype622, _size619) = iprot.readListBegin()
- for _i623 in xrange(_size619):
- _elem624 = iprot.readString();
- self.group_names.append(_elem624)
+ (_etype638, _size635) = iprot.readListBegin()
+ for _i639 in xrange(_size635):
+ _elem640 = iprot.readString();
+ self.group_names.append(_elem640)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -15777,8 +16112,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 iter625 in self.part_vals:
- oprot.writeString(iter625)
+ for iter641 in self.part_vals:
+ oprot.writeString(iter641)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.user_name is not None:
@@ -15788,8 +16123,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 iter626 in self.group_names:
- oprot.writeString(iter626)
+ for iter642 in self.group_names:
+ oprot.writeString(iter642)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      oprot.writeFieldStop()
@@ -16218,11 +16553,11 @@ class get_partitions_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype630, _size627) = iprot.readListBegin()
- for _i631 in xrange(_size627):
- _elem632 = Partition()
- _elem632.read(iprot)
- self.success.append(_elem632)
+ (_etype646, _size643) = iprot.readListBegin()
+ for _i647 in xrange(_size643):
+ _elem648 = Partition()
+ _elem648.read(iprot)
+ self.success.append(_elem648)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -16251,8 +16586,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 iter633 in self.success:
- iter633.write(oprot)
+ for iter649 in self.success:
+ iter649.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -16346,10 +16681,10 @@ class get_partitions_with_auth_args:
        elif fid == 5:
          if ftype == TType.LIST:
            self.group_names = []
- (_etype637, _size634) = iprot.readListBegin()
- for _i638 in xrange(_size634):
- _elem639 = iprot.readString();
- self.group_names.append(_elem639)
+ (_etype653, _size650) = iprot.readListBegin()
+ for _i654 in xrange(_size650):
+ _elem655 = iprot.readString();
+ self.group_names.append(_elem655)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -16382,8 +16717,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 iter640 in self.group_names:
- oprot.writeString(iter640)
+ for iter656 in self.group_names:
+ oprot.writeString(iter656)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      oprot.writeFieldStop()
@@ -16444,11 +16779,11 @@ class get_partitions_with_auth_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype644, _size641) = iprot.readListBegin()
- for _i645 in xrange(_size641):
- _elem646 = Partition()
- _elem646.read(iprot)
- self.success.append(_elem646)
+ (_etype660, _size657) = iprot.readListBegin()
+ for _i661 in xrange(_size657):
+ _elem662 = Partition()
+ _elem662.read(iprot)
+ self.success.append(_elem662)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -16477,8 +16812,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 iter647 in self.success:
- iter647.write(oprot)
+ for iter663 in self.success:
+ iter663.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -16636,11 +16971,11 @@ class get_partitions_pspec_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype651, _size648) = iprot.readListBegin()
- for _i652 in xrange(_size648):
- _elem653 = PartitionSpec()
- _elem653.read(iprot)
- self.success.append(_elem653)
+ (_etype667, _size664) = iprot.readListBegin()
+ for _i668 in xrange(_size664):
+ _elem669 = PartitionSpec()
+ _elem669.read(iprot)
+ self.success.append(_elem669)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -16669,8 +17004,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 iter654 in self.success:
- iter654.write(oprot)
+ for iter670 in self.success:
+ iter670.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -16825,10 +17160,10 @@ class get_partition_names_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype658, _size655) = iprot.readListBegin()
- for _i659 in xrange(_size655):
- _elem660 = iprot.readString();
- self.success.append(_elem660)
+ (_etype674, _size671) = iprot.readListBegin()
+ for _i675 in xrange(_size671):
+ _elem676 = iprot.readString();
+ self.success.append(_elem676)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -16851,8 +17186,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 iter661 in self.success:
- oprot.writeString(iter661)
+ for iter677 in self.success:
+ oprot.writeString(iter677)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o2 is not None:
@@ -16928,10 +17263,10 @@ class get_partitions_ps_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.part_vals = []
- (_etype665, _size662) = iprot.readListBegin()
- for _i666 in xrange(_size662):
- _elem667 = iprot.readString();
- self.part_vals.append(_elem667)
+ (_etype681, _size678) = iprot.readListBegin()
+ for _i682 in xrange(_size678):
+ _elem683 = iprot.readString();
+ self.part_vals.append(_elem683)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -16961,8 +17296,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 iter668 in self.part_vals:
- oprot.writeString(iter668)
+ for iter684 in self.part_vals:
+ oprot.writeString(iter684)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.max_parts is not None:
@@ -17026,11 +17361,11 @@ class get_partitions_ps_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype672, _size669) = iprot.readListBegin()
- for _i673 in xrange(_size669):
- _elem674 = Partition()
- _elem674.read(iprot)
- self.success.append(_elem674)
+ (_etype688, _size685) = iprot.readListBegin()
+ for _i689 in xrange(_size685):
+ _elem690 = Partition()
+ _elem690.read(iprot)
+ self.success.append(_elem690)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17059,8 +17394,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 iter675 in self.success:
- iter675.write(oprot)
+ for iter691 in self.success:
+ iter691.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -17147,10 +17482,10 @@ class get_partitions_ps_with_auth_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.part_vals = []
- (_etype679, _size676) = iprot.readListBegin()
- for _i680 in xrange(_size676):
- _elem681 = iprot.readString();
- self.part_vals.append(_elem681)
+ (_etype695, _size692) = iprot.readListBegin()
+ for _i696 in xrange(_size692):
+ _elem697 = iprot.readString();
+ self.part_vals.append(_elem697)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17167,10 +17502,10 @@ class get_partitions_ps_with_auth_args:
        elif fid == 6:
          if ftype == TType.LIST:
            self.group_names = []
- (_etype685, _size682) = iprot.readListBegin()
- for _i686 in xrange(_size682):
- _elem687 = iprot.readString();
- self.group_names.append(_elem687)
+ (_etype701, _size698) = iprot.readListBegin()
+ for _i702 in xrange(_size698):
+ _elem703 = iprot.readString();
+ self.group_names.append(_elem703)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17195,8 +17530,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 iter688 in self.part_vals:
- oprot.writeString(iter688)
+ for iter704 in self.part_vals:
+ oprot.writeString(iter704)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.max_parts is not None:
@@ -17210,8 +17545,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 iter689 in self.group_names:
- oprot.writeString(iter689)
+ for iter705 in self.group_names:
+ oprot.writeString(iter705)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      oprot.writeFieldStop()
@@ -17273,11 +17608,11 @@ class get_partitions_ps_with_auth_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype693, _size690) = iprot.readListBegin()
- for _i694 in xrange(_size690):
- _elem695 = Partition()
- _elem695.read(iprot)
- self.success.append(_elem695)
+ (_etype709, _size706) = iprot.readListBegin()
+ for _i710 in xrange(_size706):
+ _elem711 = Partition()
+ _elem711.read(iprot)
+ self.success.append(_elem711)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17306,8 +17641,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 iter696 in self.success:
- iter696.write(oprot)
+ for iter712 in self.success:
+ iter712.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -17388,10 +17723,10 @@ class get_partition_names_ps_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.part_vals = []
- (_etype700, _size697) = iprot.readListBegin()
- for _i701 in xrange(_size697):
- _elem702 = iprot.readString();
- self.part_vals.append(_elem702)
+ (_etype716, _size713) = iprot.readListBegin()
+ for _i717 in xrange(_size713):
+ _elem718 = iprot.readString();
+ self.part_vals.append(_elem718)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17421,8 +17756,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 iter703 in self.part_vals:
- oprot.writeString(iter703)
+ for iter719 in self.part_vals:
+ oprot.writeString(iter719)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.max_parts is not None:
@@ -17486,10 +17821,10 @@ class get_partition_names_ps_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype707, _size704) = iprot.readListBegin()
- for _i708 in xrange(_size704):
- _elem709 = iprot.readString();
- self.success.append(_elem709)
+ (_etype723, _size720) = iprot.readListBegin()
+ for _i724 in xrange(_size720):
+ _elem725 = iprot.readString();
+ self.success.append(_elem725)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17518,8 +17853,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 iter710 in self.success:
- oprot.writeString(iter710)
+ for iter726 in self.success:
+ oprot.writeString(iter726)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -17690,11 +18025,11 @@ class get_partitions_by_filter_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype714, _size711) = iprot.readListBegin()
- for _i715 in xrange(_size711):
- _elem716 = Partition()
- _elem716.read(iprot)
- self.success.append(_elem716)
+ (_etype730, _size727) = iprot.readListBegin()
+ for _i731 in xrange(_size727):
+ _elem732 = Partition()
+ _elem732.read(iprot)
+ self.success.append(_elem732)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17723,8 +18058,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 iter717 in self.success:
- iter717.write(oprot)
+ for iter733 in self.success:
+ iter733.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -17895,11 +18230,11 @@ class get_part_specs_by_filter_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype721, _size718) = iprot.readListBegin()
- for _i722 in xrange(_size718):
- _elem723 = PartitionSpec()
- _elem723.read(iprot)
- self.success.append(_elem723)
+ (_etype737, _size734) = iprot.readListBegin()
+ for _i738 in xrange(_size734):
+ _elem739 = PartitionSpec()
+ _elem739.read(iprot)
+ self.success.append(_elem739)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -17928,8 +18263,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 iter724 in self.success:
- iter724.write(oprot)
+ for iter740 in self.success:
+ iter740.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -18166,10 +18501,10 @@ class get_partitions_by_names_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.names = []
- (_etype728, _size725) = iprot.readListBegin()
- for _i729 in xrange(_size725):
- _elem730 = iprot.readString();
- self.names.append(_elem730)
+ (_etype744, _size741) = iprot.readListBegin()
+ for _i745 in xrange(_size741):
+ _elem746 = iprot.readString();
+ self.names.append(_elem746)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -18194,8 +18529,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 iter731 in self.names:
- oprot.writeString(iter731)
+ for iter747 in self.names:
+ oprot.writeString(iter747)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      oprot.writeFieldStop()
@@ -18254,11 +18589,11 @@ class get_partitions_by_names_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype735, _size732) = iprot.readListBegin()
- for _i736 in xrange(_size732):
- _elem737 = Partition()
- _elem737.read(iprot)
- self.success.append(_elem737)
+ (_etype751, _size748) = iprot.readListBegin()
+ for _i752 in xrange(_size748):
+ _elem753 = Partition()
+ _elem753.read(iprot)
+ self.success.append(_elem753)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -18287,8 +18622,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 iter738 in self.success:
- iter738.write(oprot)
+ for iter754 in self.success:
+ iter754.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -18538,11 +18873,11 @@ class alter_partitions_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.new_parts = []
- (_etype742, _size739) = iprot.readListBegin()
- for _i743 in xrange(_size739):
- _elem744 = Partition()
- _elem744.read(iprot)
- self.new_parts.append(_elem744)
+ (_etype758, _size755) = iprot.readListBegin()
+ for _i759 in xrange(_size755):
+ _elem760 = Partition()
+ _elem760.read(iprot)
+ self.new_parts.append(_elem760)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -18567,8 +18902,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 iter745 in self.new_parts:
- iter745.write(oprot)
+ for iter761 in self.new_parts:
+ iter761.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      oprot.writeFieldStop()
@@ -18907,10 +19242,10 @@ class rename_partition_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.part_vals = []
- (_etype749, _size746) = iprot.readListBegin()
- for _i750 in xrange(_size746):
- _elem751 = iprot.readString();
- self.part_vals.append(_elem751)
+ (_etype765, _size762) = iprot.readListBegin()
+ for _i766 in xrange(_size762):
+ _elem767 = iprot.readString();
+ self.part_vals.append(_elem767)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -18941,8 +19276,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 iter752 in self.part_vals:
- oprot.writeString(iter752)
+ for iter768 in self.part_vals:
+ oprot.writeString(iter768)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.new_part is not None:
@@ -19084,10 +19419,10 @@ class partition_name_has_valid_characters_args:
        if fid == 1:
          if ftype == TType.LIST:
            self.part_vals = []
- (_etype756, _size753) = iprot.readListBegin()
- for _i757 in xrange(_size753):
- _elem758 = iprot.readString();
- self.part_vals.append(_elem758)
+ (_etype772, _size769) = iprot.readListBegin()
+ for _i773 in xrange(_size769):
+ _elem774 = iprot.readString();
+ self.part_vals.append(_elem774)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -19109,8 +19444,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 iter759 in self.part_vals:
- oprot.writeString(iter759)
+ for iter775 in self.part_vals:
+ oprot.writeString(iter775)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.throw_exception is not None:
@@ -19468,10 +19803,10 @@ class partition_name_to_vals_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype763, _size760) = iprot.readListBegin()
- for _i764 in xrange(_size760):
- _elem765 = iprot.readString();
- self.success.append(_elem765)
+ (_etype779, _size776) = iprot.readListBegin()
+ for _i780 in xrange(_size776):
+ _elem781 = iprot.readString();
+ self.success.append(_elem781)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -19494,8 +19829,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 iter766 in self.success:
- oprot.writeString(iter766)
+ for iter782 in self.success:
+ oprot.writeString(iter782)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -19619,11 +19954,11 @@ class partition_name_to_spec_result:
        if fid == 0:
          if ftype == TType.MAP:
            self.success = {}
- (_ktype768, _vtype769, _size767 ) = iprot.readMapBegin()
- for _i771 in xrange(_size767):
- _key772 = iprot.readString();
- _val773 = iprot.readString();
- self.success[_key772] = _val773
+ (_ktype784, _vtype785, _size783 ) = iprot.readMapBegin()
+ for _i787 in xrange(_size783):
+ _key788 = iprot.readString();
+ _val789 = iprot.readString();
+ self.success[_key788] = _val789
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@ -19646,9 +19981,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 kiter774,viter775 in self.success.items():
- oprot.writeString(kiter774)
- oprot.writeString(viter775)
+ for kiter790,viter791 in self.success.items():
+ oprot.writeString(kiter790)
+ oprot.writeString(viter791)
        oprot.writeMapEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -19724,11 +20059,11 @@ class markPartitionForEvent_args:
        elif fid == 3:
          if ftype == TType.MAP:
            self.part_vals = {}
- (_ktype777, _vtype778, _size776 ) = iprot.readMapBegin()
- for _i780 in xrange(_size776):
- _key781 = iprot.readString();
- _val782 = iprot.readString();
- self.part_vals[_key781] = _val782
+ (_ktype793, _vtype794, _size792 ) = iprot.readMapBegin()
+ for _i796 in xrange(_size792):
+ _key797 = iprot.readString();
+ _val798 = iprot.readString();
+ self.part_vals[_key797] = _val798
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@ -19758,9 +20093,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 kiter783,viter784 in self.part_vals.items():
- oprot.writeString(kiter783)
- oprot.writeString(viter784)
+ for kiter799,viter800 in self.part_vals.items():
+ oprot.writeString(kiter799)
+ oprot.writeString(viter800)
        oprot.writeMapEnd()
        oprot.writeFieldEnd()
      if self.eventType is not None:
@@ -19974,11 +20309,11 @@ class isPartitionMarkedForEvent_args:
        elif fid == 3:
          if ftype == TType.MAP:
            self.part_vals = {}
- (_ktype786, _vtype787, _size785 ) = iprot.readMapBegin()
- for _i789 in xrange(_size785):
- _key790 = iprot.readString();
- _val791 = iprot.readString();
- self.part_vals[_key790] = _val791
+ (_ktype802, _vtype803, _size801 ) = iprot.readMapBegin()
+ for _i805 in xrange(_size801):
+ _key806 = iprot.readString();
+ _val807 = iprot.readString();
+ self.part_vals[_key806] = _val807
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@ -20008,9 +20343,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 kiter792,viter793 in self.part_vals.items():
- oprot.writeString(kiter792)
- oprot.writeString(viter793)
+ for kiter808,viter809 in self.part_vals.items():
+ oprot.writeString(kiter808)
+ oprot.writeString(viter809)
        oprot.writeMapEnd()
        oprot.writeFieldEnd()
      if self.eventType is not None:
@@ -21065,11 +21400,11 @@ class get_indexes_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype797, _size794) = iprot.readListBegin()
- for _i798 in xrange(_size794):
- _elem799 = Index()
- _elem799.read(iprot)
- self.success.append(_elem799)
+ (_etype813, _size810) = iprot.readListBegin()
+ for _i814 in xrange(_size810):
+ _elem815 = Index()
+ _elem815.read(iprot)
+ self.success.append(_elem815)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -21098,8 +21433,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 iter800 in self.success:
- iter800.write(oprot)
+ for iter816 in self.success:
+ iter816.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -21254,10 +21589,10 @@ class get_index_names_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype804, _size801) = iprot.readListBegin()
- for _i805 in xrange(_size801):
- _elem806 = iprot.readString();
- self.success.append(_elem806)
+ (_etype820, _size817) = iprot.readListBegin()
+ for _i821 in xrange(_size817):
+ _elem822 = iprot.readString();
+ self.success.append(_elem822)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -21280,8 +21615,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 iter807 in self.success:
- oprot.writeString(iter807)
+ for iter823 in self.success:
+ oprot.writeString(iter823)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o2 is not None:
@@ -23829,10 +24164,10 @@ class get_functions_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype811, _size808) = iprot.readListBegin()
- for _i812 in xrange(_size808):
- _elem813 = iprot.readString();
- self.success.append(_elem813)
+ (_etype827, _size824) = iprot.readListBegin()
+ for _i828 in xrange(_size824):
+ _elem829 = iprot.readString();
+ self.success.append(_elem829)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -23855,8 +24190,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 iter814 in self.success:
- oprot.writeString(iter814)
+ for iter830 in self.success:
+ oprot.writeString(iter830)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -24544,10 +24879,10 @@ class get_role_names_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype818, _size815) = iprot.readListBegin()
- for _i819 in xrange(_size815):
- _elem820 = iprot.readString();
- self.success.append(_elem820)
+ (_etype834, _size831) = iprot.readListBegin()
+ for _i835 in xrange(_size831):
+ _elem836 = iprot.readString();
+ self.success.append(_elem836)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -24570,8 +24905,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 iter821 in self.success:
- oprot.writeString(iter821)
+ for iter837 in self.success:
+ oprot.writeString(iter837)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -25085,11 +25420,11 @@ class list_roles_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype825, _size822) = iprot.readListBegin()
- for _i826 in xrange(_size822):
- _elem827 = Role()
- _elem827.read(iprot)
- self.success.append(_elem827)
+ (_etype841, _size838) = iprot.readListBegin()
+ for _i842 in xrange(_size838):
+ _elem843 = Role()
+ _elem843.read(iprot)
+ self.success.append(_elem843)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -25112,8 +25447,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 iter828 in self.success:
- iter828.write(oprot)
+ for iter844 in self.success:
+ iter844.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -25622,10 +25957,10 @@ class get_privilege_set_args:
        elif fid == 3:
          if ftype == TType.LIST:
            self.group_names = []
- (_etype832, _size829) = iprot.readListBegin()
- for _i833 in xrange(_size829):
- _elem834 = iprot.readString();
- self.group_names.append(_elem834)
+ (_etype848, _size845) = iprot.readListBegin()
+ for _i849 in xrange(_size845):
+ _elem850 = iprot.readString();
+ self.group_names.append(_elem850)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -25650,8 +25985,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 iter835 in self.group_names:
- oprot.writeString(iter835)
+ for iter851 in self.group_names:
+ oprot.writeString(iter851)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      oprot.writeFieldStop()
@@ -25878,11 +26213,11 @@ class list_privileges_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype839, _size836) = iprot.readListBegin()
- for _i840 in xrange(_size836):
- _elem841 = HiveObjectPrivilege()
- _elem841.read(iprot)
- self.success.append(_elem841)
+ (_etype855, _size852) = iprot.readListBegin()
+ for _i856 in xrange(_size852):
+ _elem857 = HiveObjectPrivilege()
+ _elem857.read(iprot)
+ self.success.append(_elem857)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -25905,8 +26240,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 iter842 in self.success:
- iter842.write(oprot)
+ for iter858 in self.success:
+ iter858.write(oprot)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:
@@ -26404,10 +26739,10 @@ class set_ugi_args:
        elif fid == 2:
          if ftype == TType.LIST:
            self.group_names = []
- (_etype846, _size843) = iprot.readListBegin()
- for _i847 in xrange(_size843):
- _elem848 = iprot.readString();
- self.group_names.append(_elem848)
+ (_etype862, _size859) = iprot.readListBegin()
+ for _i863 in xrange(_size859):
+ _elem864 = iprot.readString();
+ self.group_names.append(_elem864)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -26428,8 +26763,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 iter849 in self.group_names:
- oprot.writeString(iter849)
+ for iter865 in self.group_names:
+ oprot.writeString(iter865)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      oprot.writeFieldStop()
@@ -26484,10 +26819,10 @@ class set_ugi_result:
        if fid == 0:
          if ftype == TType.LIST:
            self.success = []
- (_etype853, _size850) = iprot.readListBegin()
- for _i854 in xrange(_size850):
- _elem855 = iprot.readString();
- self.success.append(_elem855)
+ (_etype869, _size866) = iprot.readListBegin()
+ for _i870 in xrange(_size866):
+ _elem871 = iprot.readString();
+ self.success.append(_elem871)
            iprot.readListEnd()
          else:
            iprot.skip(ftype)
@@ -26510,8 +26845,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 iter856 in self.success:
- oprot.writeString(iter856)
+ for iter872 in self.success:
+ oprot.writeString(iter872)
        oprot.writeListEnd()
        oprot.writeFieldEnd()
      if self.o1 is not None:

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/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 73a1d20..4e0d4c7 100644
--- a/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
+++ b/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
@@ -766,6 +766,25 @@ module ThriftHiveMetastore
        raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'exchange_partition failed: unknown result')
      end

+ def exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
+ send_exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
+ return recv_exchange_partitions()
+ end
+
+ def send_exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
+ send_message('exchange_partitions', Exchange_partitions_args, :partitionSpecs => partitionSpecs, :source_db => source_db, :source_table_name => source_table_name, :dest_db => dest_db, :dest_table_name => dest_table_name)
+ end
+
+ def recv_exchange_partitions()
+ result = receive_message(Exchange_partitions_result)
+ return result.success unless result.success.nil?
+ raise result.o1 unless result.o1.nil?
+ raise result.o2 unless result.o2.nil?
+ raise result.o3 unless result.o3.nil?
+ raise result.o4 unless result.o4.nil?
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'exchange_partitions failed: unknown result')
+ end
+
      def get_partition_with_auth(db_name, tbl_name, part_vals, user_name, group_names)
        send_get_partition_with_auth(db_name, tbl_name, part_vals, user_name, group_names)
        return recv_get_partition_with_auth()
@@ -2701,6 +2720,23 @@ module ThriftHiveMetastore
        write_result(result, oprot, 'exchange_partition', seqid)
      end

+ def process_exchange_partitions(seqid, iprot, oprot)
+ args = read_args(iprot, Exchange_partitions_args)
+ result = Exchange_partitions_result.new()
+ begin
+ result.success = @handler.exchange_partitions(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name)
+ rescue ::MetaException => o1
+ result.o1 = o1
+ rescue ::NoSuchObjectException => o2
+ result.o2 = o2
+ rescue ::InvalidObjectException => o3
+ result.o3 = o3
+ rescue ::InvalidInputException => o4
+ result.o4 = o4
+ end
+ write_result(result, oprot, 'exchange_partitions', seqid)
+ end
+
      def process_get_partition_with_auth(seqid, iprot, oprot)
        args = read_args(iprot, Get_partition_with_auth_args)
        result = Get_partition_with_auth_result.new()
@@ -5400,6 +5436,54 @@ module ThriftHiveMetastore
      ::Thrift::Struct.generate_accessors self
    end

+ class Exchange_partitions_args
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ PARTITIONSPECS = 1
+ SOURCE_DB = 2
+ SOURCE_TABLE_NAME = 3
+ DEST_DB = 4
+ DEST_TABLE_NAME = 5
+
+ FIELDS = {
+ PARTITIONSPECS => {:type => ::Thrift::Types::MAP, :name => 'partitionSpecs', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}},
+ SOURCE_DB => {:type => ::Thrift::Types::STRING, :name => 'source_db'},
+ SOURCE_TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'source_table_name'},
+ DEST_DB => {:type => ::Thrift::Types::STRING, :name => 'dest_db'},
+ DEST_TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'dest_table_name'}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class Exchange_partitions_result
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SUCCESS = 0
+ O1 = 1
+ O2 = 2
+ O3 = 3
+ O4 = 4
+
+ FIELDS = {
+ SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
+ O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
+ O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
+ O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
+ O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
    class Get_partition_with_auth_args
      include ::Thrift::Struct, ::Thrift::Struct_Union
      DB_NAME = 1

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/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 0ffc838..7f97b6e 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -2549,6 +2549,15 @@ public class HiveMetaStore extends ThriftHiveMetastore {
          String sourceDbName, String sourceTableName, String destDbName,
          String destTableName) throws MetaException, NoSuchObjectException,
          InvalidObjectException, InvalidInputException, TException {
+ exchange_partitions(partitionSpecs, sourceDbName, sourceTableName, destDbName, destTableName);
+ return new Partition();
+ }
+
+ @Override
+ public List<Partition> exchange_partitions(Map<String, String> partitionSpecs,
+ String sourceDbName, String sourceTableName, String destDbName,
+ String destTableName) throws MetaException, NoSuchObjectException,
+ InvalidObjectException, InvalidInputException, TException {
        boolean success = false;
        boolean pathCreated = false;
        RawStore ms = getMS();
@@ -2583,6 +2592,7 @@ public class HiveMetaStore extends ThriftHiveMetastore {
        Path destPath = new Path(destinationTable.getSd().getLocation(),
            Warehouse.makePartName(partitionKeysPresent, partValsPresent));
        try {
+ List<Partition> destPartitions = new ArrayList<Partition>();
          for (Partition partition: partitionsToExchange) {
            Partition destPartition = new Partition(partition);
            destPartition.setDbName(destDbName);
@@ -2591,6 +2601,7 @@ public class HiveMetaStore extends ThriftHiveMetastore {
                Warehouse.makePartName(destinationTable.getPartitionKeys(), partition.getValues()));
            destPartition.getSd().setLocation(destPartitionPath.toString());
            ms.addPartition(destPartition);
+ destPartitions.add(destPartition);
            ms.dropPartition(partition.getDbName(), sourceTable.getTableName(),
              partition.getValues());
          }
@@ -2606,6 +2617,7 @@ public class HiveMetaStore extends ThriftHiveMetastore {
           */
          pathCreated = wh.renameDir(sourcePath, destPath);
          success = ms.commitTransaction();
+ return destPartitions;
        } finally {
          if (!success || !pathCreated) {
            ms.rollbackTransaction();
@@ -2614,7 +2626,6 @@ public class HiveMetaStore extends ThriftHiveMetastore {
            }
          }
        }
- return new Partition();
      }

      private boolean drop_partition_common(RawStore ms, String db_name, String tbl_name,

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/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 6ee48c6..393ef3b 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -638,6 +638,22 @@ public class HiveMetaStoreClient implements IMetaStoreClient {
          destDb, destinationTableName);
    }

+ /**
+ * Exchange the partitions between two tables
+ * @param partitionSpecs partitions specs of the parent partition to be exchanged
+ * @param destDb the db of the destination table
+ * @param destinationTableName the destination table name
+ @ @return new partitions after exchanging
+ */
+ @Override
+ public List<Partition> exchange_partitions(Map<String, String> partitionSpecs,
+ String sourceDb, String sourceTable, String destDb,
+ String destinationTableName) throws MetaException,
+ NoSuchObjectException, InvalidObjectException, TException {
+ return client.exchange_partitions(partitionSpecs, sourceDb, sourceTable,
+ destDb, destinationTableName);
+ }
+
    @Override
    public void validatePartitionNameCharacters(List<String> partVals)
        throws TException, MetaException {

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/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 23b1716..2de2cdb 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
@@ -455,6 +455,22 @@ public interface IMetaStoreClient {
        InvalidObjectException, TException;

    /**
+ * With the one partitionSpecs to exchange, multiple partitions could be exchanged.
+ * e.g., year=2015/month/day, exchanging partition year=2015 results to all the partitions
+ * belonging to it exchanged. This function returns the list of affected partitions.
+ * @param partitionSpecs
+ * @param sourceDb
+ * @param sourceTable
+ * @param destdb
+ * @param destTableName
+ * @return the list of the new partitions
+ */
+ List<Partition> exchange_partitions(Map<String, String> partitionSpecs,
+ String sourceDb, String sourceTable, String destdb,
+ String destTableName) throws MetaException, NoSuchObjectException,
+ InvalidObjectException, TException;
+
+ /**
     * @param dbName
     * @param tblName
     * @param name - partition name i.e. 'ds=2010-02-03/ts=2010-02-03 18%3A16%3A01'

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
index 56a0a4e..3d8ca92 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
@@ -4369,9 +4369,20 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
      Map<String, String> partitionSpecs = exchangePartition.getPartitionSpecs();
      Table destTable = exchangePartition.getDestinationTable();
      Table sourceTable = exchangePartition.getSourceTable();
- db.exchangeTablePartitions(partitionSpecs, sourceTable.getDbName(),
+ List<Partition> partitions =
+ db.exchangeTablePartitions(partitionSpecs, sourceTable.getDbName(),
          sourceTable.getTableName(),destTable.getDbName(),
          destTable.getTableName());
+
+ for(Partition partition : partitions) {
+ // Reuse the partition specs from dest partition since they should be the same
+ work.getOutputs().add(new WriteEntity(new Partition(sourceTable, partition.getSpec(), null),
+ WriteEntity.WriteType.DELETE));
+
+ work.getOutputs().add(new WriteEntity(new Partition(destTable, partition.getSpec(), null),
+ WriteEntity.WriteType.INSERT));
+ }
+
      return 0;
    }


http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index 5d46b07..2467520 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -2012,7 +2012,7 @@ private void constructOneLBLocationMap(FileStatus fSta,
        }
        List<org.apache.hadoop.hive.metastore.api.Partition> tParts = getMSC().dropPartitions(
            dbName, tblName, partExprs, dropOptions);
- return convertFromMetastore(tbl, tParts, null);
+ return convertFromMetastore(tbl, tParts);
      } catch (NoSuchObjectException e) {
        throw new HiveException("Partition or table doesn't exist.", e);
      } catch (Exception e) {
@@ -2256,22 +2256,20 @@ private void constructOneLBLocationMap(FileStatus fSta,

      List<org.apache.hadoop.hive.metastore.api.Partition> tParts = getMSC().listPartitionsByFilter(
          tbl.getDbName(), tbl.getTableName(), filter, (short)-1);
- return convertFromMetastore(tbl, tParts, null);
+ return convertFromMetastore(tbl, tParts);
    }

    private static List<Partition> convertFromMetastore(Table tbl,
- List<org.apache.hadoop.hive.metastore.api.Partition> src,
- List<Partition> dest) throws HiveException {
- if (src == null) {
- return dest;
+ List<org.apache.hadoop.hive.metastore.api.Partition> partitions) throws HiveException {
+ if (partitions == null) {
+ return new ArrayList<Partition>();
      }
- if (dest == null) {
- dest = new ArrayList<Partition>(src.size());
- }
- for (org.apache.hadoop.hive.metastore.api.Partition tPart : src) {
- dest.add(new Partition(tbl, tPart));
+
+ List<Partition> results = new ArrayList<Partition>(partitions.size());
+ for (org.apache.hadoop.hive.metastore.api.Partition tPart : partitions) {
+ results.add(new Partition(tbl, tPart));
      }
- return dest;
+ return results;
    }

    /**
@@ -2291,7 +2289,7 @@ private void constructOneLBLocationMap(FileStatus fSta,
          new ArrayList<org.apache.hadoop.hive.metastore.api.Partition>();
      boolean hasUnknownParts = getMSC().listPartitionsByExpr(tbl.getDbName(),
          tbl.getTableName(), exprBytes, defaultPartitionName, (short)-1, msParts);
- convertFromMetastore(tbl, msParts, result);
+ result.addAll(convertFromMetastore(tbl, msParts));
      return hasUnknownParts;
    }

@@ -3017,12 +3015,15 @@ private void constructOneLBLocationMap(FileStatus fSta,
      return ShimLoader.getMajorVersion().startsWith("0.20");
    }

- public void exchangeTablePartitions(Map<String, String> partitionSpecs,
+ public List<Partition> exchangeTablePartitions(Map<String, String> partitionSpecs,
        String sourceDb, String sourceTable, String destDb,
        String destinationTableName) throws HiveException {
      try {
- getMSC().exchange_partition(partitionSpecs, sourceDb, sourceTable, destDb,
+ List<org.apache.hadoop.hive.metastore.api.Partition> partitions =
+ getMSC().exchange_partitions(partitionSpecs, sourceDb, sourceTable, destDb,
          destinationTableName);
+
+ return convertFromMetastore(getTable(destDb, destinationTableName), partitions);
      } catch (Exception ex) {
        LOG.error(StringUtils.stringifyException(ex));
        throw new HiveException(ex);

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
index f0e776e..731bdf2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
@@ -71,6 +71,7 @@ import org.apache.hadoop.hive.ql.exec.TaskFactory;
  import org.apache.hadoop.hive.ql.exec.Utilities;
  import org.apache.hadoop.hive.ql.hooks.ReadEntity;
  import org.apache.hadoop.hive.ql.hooks.WriteEntity;
+import org.apache.hadoop.hive.ql.hooks.WriteEntity.WriteType;
  import org.apache.hadoop.hive.ql.index.HiveIndex;
  import org.apache.hadoop.hive.ql.index.HiveIndex.IndexType;
  import org.apache.hadoop.hive.ql.index.HiveIndexHandler;
@@ -716,6 +717,9 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
        new AlterTableExchangePartition(sourceTable, destTable, partSpecs);
      rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
        alterTableExchangePartition), conf));
+
+ outputs.add(new WriteEntity(sourceTable, WriteType.DDL_SHARED));
+ outputs.add(new WriteEntity(destTable, WriteType.DDL_SHARED));
    }

    /**

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/test/results/clientnegative/exchange_partition.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/exchange_partition.q.out b/ql/src/test/results/clientnegative/exchange_partition.q.out
index 8622615..f5e332a 100644
--- a/ql/src/test/results/clientnegative/exchange_partition.q.out
+++ b/ql/src/test/results/clientnegative/exchange_partition.q.out
@@ -51,4 +51,6 @@ POSTHOOK: Input: default@ex_table2
  part=part1
  PREHOOK: query: ALTER TABLE ex_table1 EXCHANGE PARTITION (part='part1') WITH TABLE ex_table2
  PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+PREHOOK: Output: default@ex_table1
+PREHOOK: Output: default@ex_table2
  FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: java.io.IOException Cannot rename the source path. The destination path already exists.)

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/test/results/clientpositive/exchange_partition.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/exchange_partition.q.out b/ql/src/test/results/clientpositive/exchange_partition.q.out
index 5b21eaf..9316341 100644
--- a/ql/src/test/results/clientpositive/exchange_partition.q.out
+++ b/ql/src/test/results/clientpositive/exchange_partition.q.out
@@ -60,8 +60,14 @@ POSTHOOK: Input: ex2@exchange_part_test2
  ds=2013-04-05
  PREHOOK: query: ALTER TABLE ex1.exchange_part_test1 EXCHANGE PARTITION (ds='2013-04-05') WITH TABLE ex2.exchange_part_test2
  PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+PREHOOK: Output: ex1@exchange_part_test1
+PREHOOK: Output: ex2@exchange_part_test2
  POSTHOOK: query: ALTER TABLE ex1.exchange_part_test1 EXCHANGE PARTITION (ds='2013-04-05') WITH TABLE ex2.exchange_part_test2
  POSTHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+POSTHOOK: Output: ex1@exchange_part_test1
+POSTHOOK: Output: ex1@exchange_part_test1@ds=2013-04-05
+POSTHOOK: Output: ex2@exchange_part_test2
+POSTHOOK: Output: ex2@exchange_part_test2@ds=2013-04-05
  PREHOOK: query: SHOW PARTITIONS ex1.exchange_part_test1
  PREHOOK: type: SHOWPARTITIONS
  PREHOOK: Input: ex1@exchange_part_test1

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/test/results/clientpositive/exchange_partition2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/exchange_partition2.q.out b/ql/src/test/results/clientpositive/exchange_partition2.q.out
index 8c7c583..05121d8 100644
--- a/ql/src/test/results/clientpositive/exchange_partition2.q.out
+++ b/ql/src/test/results/clientpositive/exchange_partition2.q.out
@@ -48,8 +48,14 @@ POSTHOOK: Input: default@exchange_part_test2
  ds=2013-04-05/hr=1
  PREHOOK: query: ALTER TABLE exchange_part_test1 EXCHANGE PARTITION (ds='2013-04-05', hr='1') WITH TABLE exchange_part_test2
  PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+PREHOOK: Output: default@exchange_part_test1
+PREHOOK: Output: default@exchange_part_test2
  POSTHOOK: query: ALTER TABLE exchange_part_test1 EXCHANGE PARTITION (ds='2013-04-05', hr='1') WITH TABLE exchange_part_test2
  POSTHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+POSTHOOK: Output: default@exchange_part_test1
+POSTHOOK: Output: default@exchange_part_test1@ds=2013-04-05/hr=1
+POSTHOOK: Output: default@exchange_part_test2
+POSTHOOK: Output: default@exchange_part_test2@ds=2013-04-05/hr=1
  PREHOOK: query: SHOW PARTITIONS exchange_part_test1
  PREHOOK: type: SHOWPARTITIONS
  PREHOOK: Input: default@exchange_part_test1

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/test/results/clientpositive/exchange_partition3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/exchange_partition3.q.out b/ql/src/test/results/clientpositive/exchange_partition3.q.out
index 3815861..014be7c 100644
--- a/ql/src/test/results/clientpositive/exchange_partition3.q.out
+++ b/ql/src/test/results/clientpositive/exchange_partition3.q.out
@@ -65,9 +65,17 @@ ds=2013-04-05/hr=2
  PREHOOK: query: -- This will exchange both partitions hr=1 and hr=2
  ALTER TABLE exchange_part_test1 EXCHANGE PARTITION (ds='2013-04-05') WITH TABLE exchange_part_test2
  PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+PREHOOK: Output: default@exchange_part_test1
+PREHOOK: Output: default@exchange_part_test2
  POSTHOOK: query: -- This will exchange both partitions hr=1 and hr=2
  ALTER TABLE exchange_part_test1 EXCHANGE PARTITION (ds='2013-04-05') WITH TABLE exchange_part_test2
  POSTHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+POSTHOOK: Output: default@exchange_part_test1
+POSTHOOK: Output: default@exchange_part_test1@ds=2013-04-05/hr=1
+POSTHOOK: Output: default@exchange_part_test1@ds=2013-04-05/hr=2
+POSTHOOK: Output: default@exchange_part_test2
+POSTHOOK: Output: default@exchange_part_test2@ds=2013-04-05/hr=1
+POSTHOOK: Output: default@exchange_part_test2@ds=2013-04-05/hr=2
  PREHOOK: query: SHOW PARTITIONS exchange_part_test1
  PREHOOK: type: SHOWPARTITIONS
  PREHOOK: Input: default@exchange_part_test1

http://git-wip-us.apache.org/repos/asf/hive/blob/96c9ee64/ql/src/test/results/clientpositive/exchgpartition2lel.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/exchgpartition2lel.q.out b/ql/src/test/results/clientpositive/exchgpartition2lel.q.out
index 5997d6b..3fd996a 100644
--- a/ql/src/test/results/clientpositive/exchgpartition2lel.q.out
+++ b/ql/src/test/results/clientpositive/exchgpartition2lel.q.out
@@ -113,8 +113,14 @@ POSTHOOK: Input: default@t3@d1=1/d2=1
  100 1 1
  PREHOOK: query: ALTER TABLE t2 EXCHANGE PARTITION (d1 = 1) WITH TABLE t1
  PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+PREHOOK: Output: default@t1
+PREHOOK: Output: default@t2
  POSTHOOK: query: ALTER TABLE t2 EXCHANGE PARTITION (d1 = 1) WITH TABLE t1
  POSTHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+POSTHOOK: Output: default@t1
+POSTHOOK: Output: default@t1@d1=1
+POSTHOOK: Output: default@t2
+POSTHOOK: Output: default@t2@d1=1
  PREHOOK: query: SELECT * FROM t1
  PREHOOK: type: QUERY
  PREHOOK: Input: default@t1
@@ -136,8 +142,14 @@ POSTHOOK: Input: default@t2@d1=1
  100 1
  PREHOOK: query: ALTER TABLE t4 EXCHANGE PARTITION (d1 = 1, d2 = 1) WITH TABLE t3
  PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+PREHOOK: Output: default@t3
+PREHOOK: Output: default@t4
  POSTHOOK: query: ALTER TABLE t4 EXCHANGE PARTITION (d1 = 1, d2 = 1) WITH TABLE t3
  POSTHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+POSTHOOK: Output: default@t3
+POSTHOOK: Output: default@t3@d1=1/d2=1
+POSTHOOK: Output: default@t4
+POSTHOOK: Output: default@t4@d1=1/d2=1
  PREHOOK: query: SELECT * FROM t3
  PREHOOK: type: QUERY
  PREHOOK: Input: default@t3
@@ -159,8 +171,14 @@ POSTHOOK: Input: default@t4@d1=1/d2=1
  100 1 1
  PREHOOK: query: ALTER TABLE t6 EXCHANGE PARTITION (d1 = 1, d2 = 1, d3 = 1) WITH TABLE t5
  PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+PREHOOK: Output: default@t5
+PREHOOK: Output: default@t6
  POSTHOOK: query: ALTER TABLE t6 EXCHANGE PARTITION (d1 = 1, d2 = 1, d3 = 1) WITH TABLE t5
  POSTHOOK: type: ALTERTABLE_EXCHANGEPARTITION
+POSTHOOK: Output: default@t5
+POSTHOOK: Output: default@t5@d1=1/d2=1/d3=1
+POSTHOOK: Output: default@t6
+POSTHOOK: Output: default@t6@d1=1/d2=1/d3=1
  PREHOOK: query: SELECT * FROM t5
  PREHOOK: type: QUERY
  PREHOOK: Input: default@t5

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 6 of 6 | next ›
Discussion Overview
groupcommits @
categorieshive, hadoop
postedJan 13, '16 at 3:03p
activeJan 13, '16 at 3:03p
posts6
users1
websitehive.apache.org

1 user in discussion

Aihuaxu: 6 posts

People

Translate

site design / logo © 2021 Grokbase