You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2016/02/09 23:37:31 UTC

[1/5] hive git commit: HIVE-12892 : Add global change versioning to permanent functions in metastore (Sergey Shelukhin, reviewed by Alan Gates)

Repository: hive
Updated Branches:
  refs/heads/master a285de00d -> 5be9c92fb


http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php b/metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
index d0289fe..7f3c3ea 100644
--- a/metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
+++ b/metastore/src/gen/thrift/gen-php/metastore/ThriftHiveMetastore.php
@@ -1065,6 +1065,11 @@ interface ThriftHiveMetastoreIf extends \FacebookServiceIf {
    * @return \metastore\CacheFileMetadataResult
    */
   public function cache_file_metadata(\metastore\CacheFileMetadataRequest $req);
+  /**
+   * @param \metastore\GetChangeVersionRequest $req
+   * @return \metastore\GetChangeVersionResult
+   */
+  public function get_change_version(\metastore\GetChangeVersionRequest $req);
 }
 
 class ThriftHiveMetastoreClient extends \FacebookServiceClient implements \metastore\ThriftHiveMetastoreIf {
@@ -8683,6 +8688,57 @@ class ThriftHiveMetastoreClient extends \FacebookServiceClient implements \metas
     throw new \Exception("cache_file_metadata failed: unknown result");
   }
 
+  public function get_change_version(\metastore\GetChangeVersionRequest $req)
+  {
+    $this->send_get_change_version($req);
+    return $this->recv_get_change_version();
+  }
+
+  public function send_get_change_version(\metastore\GetChangeVersionRequest $req)
+  {
+    $args = new \metastore\ThriftHiveMetastore_get_change_version_args();
+    $args->req = $req;
+    $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+    if ($bin_accel)
+    {
+      thrift_protocol_write_binary($this->output_, 'get_change_version', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+    }
+    else
+    {
+      $this->output_->writeMessageBegin('get_change_version', TMessageType::CALL, $this->seqid_);
+      $args->write($this->output_);
+      $this->output_->writeMessageEnd();
+      $this->output_->getTransport()->flush();
+    }
+  }
+
+  public function recv_get_change_version()
+  {
+    $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+    if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\metastore\ThriftHiveMetastore_get_change_version_result', $this->input_->isStrictRead());
+    else
+    {
+      $rseqid = 0;
+      $fname = null;
+      $mtype = 0;
+
+      $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+      if ($mtype == TMessageType::EXCEPTION) {
+        $x = new TApplicationException();
+        $x->read($this->input_);
+        $this->input_->readMessageEnd();
+        throw $x;
+      }
+      $result = new \metastore\ThriftHiveMetastore_get_change_version_result();
+      $result->read($this->input_);
+      $this->input_->readMessageEnd();
+    }
+    if ($result->success !== null) {
+      return $result->success;
+    }
+    throw new \Exception("get_change_version failed: unknown result");
+  }
+
 }
 
 // HELPER FUNCTIONS AND STRUCTURES
@@ -40023,4 +40079,163 @@ class ThriftHiveMetastore_cache_file_metadata_result {
 
 }
 
+class ThriftHiveMetastore_get_change_version_args {
+  static $_TSPEC;
+
+  /**
+   * @var \metastore\GetChangeVersionRequest
+   */
+  public $req = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'req',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\GetChangeVersionRequest',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['req'])) {
+        $this->req = $vals['req'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ThriftHiveMetastore_get_change_version_args';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->req = new \metastore\GetChangeVersionRequest();
+            $xfer += $this->req->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ThriftHiveMetastore_get_change_version_args');
+    if ($this->req !== null) {
+      if (!is_object($this->req)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('req', TType::STRUCT, 1);
+      $xfer += $this->req->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ThriftHiveMetastore_get_change_version_result {
+  static $_TSPEC;
+
+  /**
+   * @var \metastore\GetChangeVersionResult
+   */
+  public $success = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        0 => array(
+          'var' => 'success',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\GetChangeVersionResult',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ThriftHiveMetastore_get_change_version_result';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 0:
+          if ($ftype == TType::STRUCT) {
+            $this->success = new \metastore\GetChangeVersionResult();
+            $xfer += $this->success->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ThriftHiveMetastore_get_change_version_result');
+    if ($this->success !== null) {
+      if (!is_object($this->success)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+      $xfer += $this->success->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
 

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-php/metastore/Types.php
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-php/metastore/Types.php b/metastore/src/gen/thrift/gen-php/metastore/Types.php
index 57d1daf..488a920 100644
--- a/metastore/src/gen/thrift/gen-php/metastore/Types.php
+++ b/metastore/src/gen/thrift/gen-php/metastore/Types.php
@@ -14491,6 +14491,156 @@ class FireEventResponse {
 
 }
 
+class GetChangeVersionRequest {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $topic = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'topic',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['topic'])) {
+        $this->topic = $vals['topic'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'GetChangeVersionRequest';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->topic);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('GetChangeVersionRequest');
+    if ($this->topic !== null) {
+      $xfer += $output->writeFieldBegin('topic', TType::STRING, 1);
+      $xfer += $output->writeString($this->topic);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class GetChangeVersionResult {
+  static $_TSPEC;
+
+  /**
+   * @var int
+   */
+  public $version = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'version',
+          'type' => TType::I64,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['version'])) {
+        $this->version = $vals['version'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'GetChangeVersionResult';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::I64) {
+            $xfer += $input->readI64($this->version);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('GetChangeVersionResult');
+    if ($this->version !== null) {
+      $xfer += $output->writeFieldBegin('version', TType::I64, 1);
+      $xfer += $output->writeI64($this->version);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class MetadataPpdResult {
   static $_TSPEC;
 

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote b/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
index 407f73c..da25a6e 100755
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore-remote
@@ -157,6 +157,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print('  PutFileMetadataResult put_file_metadata(PutFileMetadataRequest req)')
   print('  ClearFileMetadataResult clear_file_metadata(ClearFileMetadataRequest req)')
   print('  CacheFileMetadataResult cache_file_metadata(CacheFileMetadataRequest req)')
+  print('  GetChangeVersionResult get_change_version(GetChangeVersionRequest req)')
   print('  string getName()')
   print('  string getVersion()')
   print('  fb_status getStatus()')
@@ -1024,6 +1025,12 @@ elif cmd == 'cache_file_metadata':
     sys.exit(1)
   pp.pprint(client.cache_file_metadata(eval(args[0]),))
 
+elif cmd == 'get_change_version':
+  if len(args) != 1:
+    print('get_change_version requires 1 args')
+    sys.exit(1)
+  pp.pprint(client.get_change_version(eval(args[0]),))
+
 elif cmd == 'getName':
   if len(args) != 0:
     print('getName requires 0 args')

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 26d8a02..60fb905 100644
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
@@ -1089,6 +1089,13 @@ class Iface(fb303.FacebookService.Iface):
     """
     pass
 
+  def get_change_version(self, req):
+    """
+    Parameters:
+     - req
+    """
+    pass
+
 
 class Client(fb303.FacebookService.Client, Iface):
   """
@@ -5959,6 +5966,37 @@ class Client(fb303.FacebookService.Client, Iface):
       return result.success
     raise TApplicationException(TApplicationException.MISSING_RESULT, "cache_file_metadata failed: unknown result")
 
+  def get_change_version(self, req):
+    """
+    Parameters:
+     - req
+    """
+    self.send_get_change_version(req)
+    return self.recv_get_change_version()
+
+  def send_get_change_version(self, req):
+    self._oprot.writeMessageBegin('get_change_version', TMessageType.CALL, self._seqid)
+    args = get_change_version_args()
+    args.req = req
+    args.write(self._oprot)
+    self._oprot.writeMessageEnd()
+    self._oprot.trans.flush()
+
+  def recv_get_change_version(self):
+    iprot = self._iprot
+    (fname, mtype, rseqid) = iprot.readMessageBegin()
+    if mtype == TMessageType.EXCEPTION:
+      x = TApplicationException()
+      x.read(iprot)
+      iprot.readMessageEnd()
+      raise x
+    result = get_change_version_result()
+    result.read(iprot)
+    iprot.readMessageEnd()
+    if result.success is not None:
+      return result.success
+    raise TApplicationException(TApplicationException.MISSING_RESULT, "get_change_version failed: unknown result")
+
 
 class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
   def __init__(self, handler):
@@ -6096,6 +6134,7 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
     self._processMap["put_file_metadata"] = Processor.process_put_file_metadata
     self._processMap["clear_file_metadata"] = Processor.process_clear_file_metadata
     self._processMap["cache_file_metadata"] = Processor.process_cache_file_metadata
+    self._processMap["get_change_version"] = Processor.process_get_change_version
 
   def process(self, iprot, oprot):
     (name, type, seqid) = iprot.readMessageBegin()
@@ -9395,6 +9434,25 @@ class Processor(fb303.FacebookService.Processor, Iface, TProcessor):
     oprot.writeMessageEnd()
     oprot.trans.flush()
 
+  def process_get_change_version(self, seqid, iprot, oprot):
+    args = get_change_version_args()
+    args.read(iprot)
+    iprot.readMessageEnd()
+    result = get_change_version_result()
+    try:
+      result.success = self._handler.get_change_version(args.req)
+      msg_type = TMessageType.REPLY
+    except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+      raise
+    except Exception as ex:
+      msg_type = TMessageType.EXCEPTION
+      logging.exception(ex)
+      result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+    oprot.writeMessageBegin("get_change_version", msg_type, seqid)
+    result.write(oprot)
+    oprot.writeMessageEnd()
+    oprot.trans.flush()
+
 
 # HELPER FUNCTIONS AND STRUCTURES
 
@@ -32330,3 +32388,134 @@ class cache_file_metadata_result:
 
   def __ne__(self, other):
     return not (self == other)
+
+class get_change_version_args:
+  """
+  Attributes:
+   - req
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'req', (GetChangeVersionRequest, GetChangeVersionRequest.thrift_spec), None, ), # 1
+  )
+
+  def __init__(self, req=None,):
+    self.req = req
+
+  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.STRUCT:
+          self.req = GetChangeVersionRequest()
+          self.req.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_change_version_args')
+    if self.req is not None:
+      oprot.writeFieldBegin('req', TType.STRUCT, 1)
+      self.req.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.req)
+    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_change_version_result:
+  """
+  Attributes:
+   - success
+  """
+
+  thrift_spec = (
+    (0, TType.STRUCT, 'success', (GetChangeVersionResult, GetChangeVersionResult.thrift_spec), None, ), # 0
+  )
+
+  def __init__(self, success=None,):
+    self.success = success
+
+  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.STRUCT:
+          self.success = GetChangeVersionResult()
+          self.success.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_change_version_result')
+    if self.success is not None:
+      oprot.writeFieldBegin('success', TType.STRUCT, 0)
+      self.success.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.success)
+    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)

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 77dd9a6..10eaf4a 100644
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
@@ -10118,6 +10118,140 @@ class FireEventResponse:
   def __ne__(self, other):
     return not (self == other)
 
+class GetChangeVersionRequest:
+  """
+  Attributes:
+   - topic
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'topic', None, None, ), # 1
+  )
+
+  def __init__(self, topic=None,):
+    self.topic = topic
+
+  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.topic = 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('GetChangeVersionRequest')
+    if self.topic is not None:
+      oprot.writeFieldBegin('topic', TType.STRING, 1)
+      oprot.writeString(self.topic)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.topic is None:
+      raise TProtocol.TProtocolException(message='Required field topic is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.topic)
+    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 GetChangeVersionResult:
+  """
+  Attributes:
+   - version
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I64, 'version', None, None, ), # 1
+  )
+
+  def __init__(self, version=None,):
+    self.version = version
+
+  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.I64:
+          self.version = iprot.readI64()
+        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('GetChangeVersionResult')
+    if self.version is not None:
+      oprot.writeFieldBegin('version', TType.I64, 1)
+      oprot.writeI64(self.version)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.version is None:
+      raise TProtocol.TProtocolException(message='Required field version is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.version)
+    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 MetadataPpdResult:
   """
   Attributes:

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 2cf433b..1cf40ae 100644
--- a/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
+++ b/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
@@ -2290,6 +2290,40 @@ class FireEventResponse
   ::Thrift::Struct.generate_accessors self
 end
 
+class GetChangeVersionRequest
+  include ::Thrift::Struct, ::Thrift::Struct_Union
+  TOPIC = 1
+
+  FIELDS = {
+    TOPIC => {:type => ::Thrift::Types::STRING, :name => 'topic'}
+  }
+
+  def struct_fields; FIELDS; end
+
+  def validate
+    raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field topic is unset!') unless @topic
+  end
+
+  ::Thrift::Struct.generate_accessors self
+end
+
+class GetChangeVersionResult
+  include ::Thrift::Struct, ::Thrift::Struct_Union
+  VERSION = 1
+
+  FIELDS = {
+    VERSION => {:type => ::Thrift::Types::I64, :name => 'version'}
+  }
+
+  def struct_fields; FIELDS; end
+
+  def validate
+    raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field version is unset!') unless @version
+  end
+
+  ::Thrift::Struct.generate_accessors self
+end
+
 class MetadataPpdResult
   include ::Thrift::Struct, ::Thrift::Struct_Union
   METADATA = 1

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 9b9a27c..9e47f7e 100644
--- a/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
+++ b/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
@@ -2231,6 +2231,21 @@ module ThriftHiveMetastore
       raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'cache_file_metadata failed: unknown result')
     end
 
+    def get_change_version(req)
+      send_get_change_version(req)
+      return recv_get_change_version()
+    end
+
+    def send_get_change_version(req)
+      send_message('get_change_version', Get_change_version_args, :req => req)
+    end
+
+    def recv_get_change_version()
+      result = receive_message(Get_change_version_result)
+      return result.success unless result.success.nil?
+      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_change_version failed: unknown result')
+    end
+
   end
 
   class Processor < ::FacebookService::Processor 
@@ -3905,6 +3920,13 @@ module ThriftHiveMetastore
       write_result(result, oprot, 'cache_file_metadata', seqid)
     end
 
+    def process_get_change_version(seqid, iprot, oprot)
+      args = read_args(iprot, Get_change_version_args)
+      result = Get_change_version_result.new()
+      result.success = @handler.get_change_version(args.req)
+      write_result(result, oprot, 'get_change_version', seqid)
+    end
+
   end
 
   # HELPER FUNCTIONS AND STRUCTURES
@@ -8955,5 +8977,37 @@ module ThriftHiveMetastore
     ::Thrift::Struct.generate_accessors self
   end
 
+  class Get_change_version_args
+    include ::Thrift::Struct, ::Thrift::Struct_Union
+    REQ = 1
+
+    FIELDS = {
+      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetChangeVersionRequest}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+    end
+
+    ::Thrift::Struct.generate_accessors self
+  end
+
+  class Get_change_version_result
+    include ::Thrift::Struct, ::Thrift::Struct_Union
+    SUCCESS = 0
+
+    FIELDS = {
+      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetChangeVersionResult}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+    end
+
+    ::Thrift::Struct.generate_accessors self
+  end
+
 end
 

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 bb33693..98fbf70 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -43,110 +43,7 @@ import org.apache.hadoop.hive.common.metrics.common.MetricsFactory;
 import org.apache.hadoop.hive.common.metrics.common.MetricsVariable;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
-import org.apache.hadoop.hive.metastore.api.AbortTxnRequest;
-import org.apache.hadoop.hive.metastore.api.AddDynamicPartitions;
-import org.apache.hadoop.hive.metastore.api.AddPartitionsRequest;
-import org.apache.hadoop.hive.metastore.api.AddPartitionsResult;
-import org.apache.hadoop.hive.metastore.api.AggrStats;
-import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
-import org.apache.hadoop.hive.metastore.api.CacheFileMetadataRequest;
-import org.apache.hadoop.hive.metastore.api.CacheFileMetadataResult;
-import org.apache.hadoop.hive.metastore.api.CheckLockRequest;
-import org.apache.hadoop.hive.metastore.api.ClearFileMetadataRequest;
-import org.apache.hadoop.hive.metastore.api.ClearFileMetadataResult;
-import org.apache.hadoop.hive.metastore.api.ColumnStatistics;
-import org.apache.hadoop.hive.metastore.api.ColumnStatisticsDesc;
-import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
-import org.apache.hadoop.hive.metastore.api.CommitTxnRequest;
-import org.apache.hadoop.hive.metastore.api.CompactionRequest;
-import org.apache.hadoop.hive.metastore.api.ConfigValSecurityException;
-import org.apache.hadoop.hive.metastore.api.CurrentNotificationEventId;
-import org.apache.hadoop.hive.metastore.api.Database;
-import org.apache.hadoop.hive.metastore.api.DropPartitionsExpr;
-import org.apache.hadoop.hive.metastore.api.DropPartitionsRequest;
-import org.apache.hadoop.hive.metastore.api.DropPartitionsResult;
-import org.apache.hadoop.hive.metastore.api.EnvironmentContext;
-import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.metastore.api.FileMetadataExprType;
-import org.apache.hadoop.hive.metastore.api.FireEventRequest;
-import org.apache.hadoop.hive.metastore.api.FireEventResponse;
-import org.apache.hadoop.hive.metastore.api.Function;
-import org.apache.hadoop.hive.metastore.api.GetAllFunctionsResponse;
-import org.apache.hadoop.hive.metastore.api.GetFileMetadataByExprRequest;
-import org.apache.hadoop.hive.metastore.api.GetFileMetadataByExprResult;
-import org.apache.hadoop.hive.metastore.api.GetFileMetadataRequest;
-import org.apache.hadoop.hive.metastore.api.GetFileMetadataResult;
-import org.apache.hadoop.hive.metastore.api.GetOpenTxnsInfoResponse;
-import org.apache.hadoop.hive.metastore.api.GetOpenTxnsResponse;
-import org.apache.hadoop.hive.metastore.api.GetPrincipalsInRoleRequest;
-import org.apache.hadoop.hive.metastore.api.GetPrincipalsInRoleResponse;
-import org.apache.hadoop.hive.metastore.api.GetRoleGrantsForPrincipalRequest;
-import org.apache.hadoop.hive.metastore.api.GetRoleGrantsForPrincipalResponse;
-import org.apache.hadoop.hive.metastore.api.GrantRevokePrivilegeRequest;
-import org.apache.hadoop.hive.metastore.api.GrantRevokePrivilegeResponse;
-import org.apache.hadoop.hive.metastore.api.GrantRevokeRoleRequest;
-import org.apache.hadoop.hive.metastore.api.GrantRevokeRoleResponse;
-import org.apache.hadoop.hive.metastore.api.HeartbeatRequest;
-import org.apache.hadoop.hive.metastore.api.HeartbeatTxnRangeRequest;
-import org.apache.hadoop.hive.metastore.api.HeartbeatTxnRangeResponse;
-import org.apache.hadoop.hive.metastore.api.HiveObjectPrivilege;
-import org.apache.hadoop.hive.metastore.api.HiveObjectRef;
-import org.apache.hadoop.hive.metastore.api.HiveObjectType;
-import org.apache.hadoop.hive.metastore.api.Index;
-import org.apache.hadoop.hive.metastore.api.InvalidInputException;
-import org.apache.hadoop.hive.metastore.api.InvalidObjectException;
-import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
-import org.apache.hadoop.hive.metastore.api.InvalidPartitionException;
-import org.apache.hadoop.hive.metastore.api.LockRequest;
-import org.apache.hadoop.hive.metastore.api.LockResponse;
-import org.apache.hadoop.hive.metastore.api.MetaException;
-import org.apache.hadoop.hive.metastore.api.MetadataPpdResult;
-import org.apache.hadoop.hive.metastore.api.NoSuchLockException;
-import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
-import org.apache.hadoop.hive.metastore.api.NoSuchTxnException;
-import org.apache.hadoop.hive.metastore.api.NotificationEventRequest;
-import org.apache.hadoop.hive.metastore.api.NotificationEventResponse;
-import org.apache.hadoop.hive.metastore.api.OpenTxnRequest;
-import org.apache.hadoop.hive.metastore.api.OpenTxnsResponse;
-import org.apache.hadoop.hive.metastore.api.Partition;
-import org.apache.hadoop.hive.metastore.api.PartitionEventType;
-import org.apache.hadoop.hive.metastore.api.PartitionListComposingSpec;
-import org.apache.hadoop.hive.metastore.api.PartitionSpec;
-import org.apache.hadoop.hive.metastore.api.PartitionSpecWithSharedSD;
-import org.apache.hadoop.hive.metastore.api.PartitionWithoutSD;
-import org.apache.hadoop.hive.metastore.api.PartitionsByExprRequest;
-import org.apache.hadoop.hive.metastore.api.PartitionsByExprResult;
-import org.apache.hadoop.hive.metastore.api.PartitionsStatsRequest;
-import org.apache.hadoop.hive.metastore.api.PartitionsStatsResult;
-import org.apache.hadoop.hive.metastore.api.PrincipalPrivilegeSet;
-import org.apache.hadoop.hive.metastore.api.PrincipalType;
-import org.apache.hadoop.hive.metastore.api.PrivilegeBag;
-import org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo;
-import org.apache.hadoop.hive.metastore.api.PutFileMetadataRequest;
-import org.apache.hadoop.hive.metastore.api.PutFileMetadataResult;
-import org.apache.hadoop.hive.metastore.api.RequestPartsSpec;
-import org.apache.hadoop.hive.metastore.api.Role;
-import org.apache.hadoop.hive.metastore.api.RolePrincipalGrant;
-import org.apache.hadoop.hive.metastore.api.SetPartitionsStatsRequest;
-import org.apache.hadoop.hive.metastore.api.ShowCompactRequest;
-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.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.TableStatsRequest;
-import org.apache.hadoop.hive.metastore.api.TableStatsResult;
-import org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore;
-import org.apache.hadoop.hive.metastore.api.TxnAbortedException;
-import org.apache.hadoop.hive.metastore.api.TxnOpenException;
-import org.apache.hadoop.hive.metastore.api.Type;
-import org.apache.hadoop.hive.metastore.api.UnknownDBException;
-import org.apache.hadoop.hive.metastore.api.UnknownPartitionException;
-import org.apache.hadoop.hive.metastore.api.UnknownTableException;
-import org.apache.hadoop.hive.metastore.api.UnlockRequest;
-import org.apache.hadoop.hive.metastore.api.hive_metastoreConstants;
+import org.apache.hadoop.hive.metastore.api.*;
 import org.apache.hadoop.hive.metastore.events.AddIndexEvent;
 import org.apache.hadoop.hive.metastore.events.AddPartitionEvent;
 import org.apache.hadoop.hive.metastore.events.AlterIndexEvent;
@@ -6037,6 +5934,12 @@ public class HiveMetaStore extends ThriftHiveMetastore {
       initPartCount = getMS().getPartitionCount();
       initDatabaseCount = getMS().getDatabaseCount();
     }
+
+    @Override
+    public GetChangeVersionResult get_change_version(GetChangeVersionRequest req)
+        throws TException {
+      return new GetChangeVersionResult(getMS().getChangeVersion(req.getTopic()));
+    }
   }
 
 

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 0c30262..564fca4 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -52,6 +52,7 @@ import org.apache.hadoop.hive.metastore.api.FireEventRequest;
 import org.apache.hadoop.hive.metastore.api.FireEventResponse;
 import org.apache.hadoop.hive.metastore.api.Function;
 import org.apache.hadoop.hive.metastore.api.GetAllFunctionsResponse;
+import org.apache.hadoop.hive.metastore.api.GetChangeVersionRequest;
 import org.apache.hadoop.hive.metastore.api.GetFileMetadataRequest;
 import org.apache.hadoop.hive.metastore.api.GetFileMetadataResult;
 import org.apache.hadoop.hive.metastore.api.GetOpenTxnsInfoResponse;
@@ -2294,4 +2295,9 @@ public class HiveMetaStoreClient implements IMetaStoreClient {
     CacheFileMetadataResult result = client.cache_file_metadata(req);
     return result.isIsSupported();
   }
+
+  @Override
+  public long getChangeVersion(String topic) throws TException {
+    return client.get_change_version(new GetChangeVersionRequest(topic)).getVersion();
+  }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 4284d54..07c20bf 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
@@ -91,6 +91,7 @@ import java.util.Map.Entry;
 @Public
 @Evolving
 public interface IMetaStoreClient {
+  public static final String PERMANENT_FUNCTION_CV = "PERMANENT_FUNCTION";
 
   /**
    * Returns whether current client is compatible with conf argument or not
@@ -1528,4 +1529,6 @@ public interface IMetaStoreClient {
 
   boolean cacheFileMetadata(String dbName, String tableName, String partName,
       boolean allParts) throws TException;
+
+  long getChangeVersion(String topic) throws TException;
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 b808728..8d05f49 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
@@ -113,6 +113,7 @@ import org.apache.hadoop.hive.metastore.api.Type;
 import org.apache.hadoop.hive.metastore.api.UnknownDBException;
 import org.apache.hadoop.hive.metastore.api.UnknownPartitionException;
 import org.apache.hadoop.hive.metastore.api.UnknownTableException;
+import org.apache.hadoop.hive.metastore.model.MChangeVersion;
 import org.apache.hadoop.hive.metastore.model.MColumnDescriptor;
 import org.apache.hadoop.hive.metastore.model.MDBPrivilege;
 import org.apache.hadoop.hive.metastore.model.MDatabase;
@@ -166,6 +167,7 @@ import com.google.common.collect.Lists;
  * to be made into a interface that can read both from a database and a
  * filestore.
  */
+@SuppressWarnings("unchecked")
 public class ObjectStore implements RawStore, Configurable {
   private static Properties prop = null;
   private static PersistenceManagerFactory pmf = null;
@@ -181,11 +183,11 @@ public class ObjectStore implements RawStore, Configurable {
     NO_STATE, OPEN, COMMITED, ROLLBACK
   }
 
-  private static final Map<String, Class> PINCLASSMAP;
+  private static final Map<String, Class<?>> PINCLASSMAP;
   private static final String HOSTNAME;
   private static final String USER;
   static {
-    Map<String, Class> map = new HashMap<String, Class>();
+    Map<String, Class<?>> map = new HashMap<String, Class<?>>();
     map.put("table", MTable.class);
     map.put("storagedescriptor", MStorageDescriptor.class);
     map.put("serdeinfo", MSerDeInfo.class);
@@ -735,9 +737,9 @@ public class ObjectStore implements RawStore, Configurable {
       query = pm.newQuery(queryStr);
       query.setResult("name");
       query.setOrdering("name ascending");
-      Collection names = (Collection) query.execute();
+      Collection<?> names = (Collection<?>) query.execute();
       databases = new ArrayList<String>();
-      for (Iterator i = names.iterator(); i.hasNext();) {
+      for (Iterator<?> i = names.iterator(); i.hasNext();) {
         databases.add((String) i.next());
       }
       commited = commitTransaction();
@@ -1037,9 +1039,9 @@ public class ObjectStore implements RawStore, Configurable {
       query.declareParameters("java.lang.String dbName");
       query.setResult("tableName");
       query.setOrdering("tableName ascending");
-      Collection names = (Collection) query.execute(dbName);
+      Collection<?> names = (Collection<?>) query.execute(dbName);
       tbls = new ArrayList<String>();
-      for (Iterator i = names.iterator(); i.hasNext();) {
+      for (Iterator<?> i = names.iterator(); i.hasNext();) {
         tbls.add((String) i.next());
       }
       commited = commitTransaction();
@@ -1225,8 +1227,8 @@ public class ObjectStore implements RawStore, Configurable {
       query = pm.newQuery(MTable.class);
       query.setFilter("database.name == db && tbl_names.contains(tableName)");
       query.declareParameters("java.lang.String db, java.util.Collection tbl_names");
-      Collection mtables = (Collection) query.execute(db, lowered_tbl_names);
-      for (Iterator iter = mtables.iterator(); iter.hasNext();) {
+      Collection<?> mtables = (Collection<?>) query.execute(db, lowered_tbl_names);
+      for (Iterator<?> iter = mtables.iterator(); iter.hasNext();) {
         tables.add(convertToTable((MTable) iter.next()));
       }
       committed = commitTransaction();
@@ -2075,8 +2077,8 @@ public class ObjectStore implements RawStore, Configurable {
     if (max > 0) {
       query.setRange(0, max);
     }
-    Collection names = (Collection) query.execute(dbName, tableName);
-    for (Iterator i = names.iterator(); i.hasNext();) {
+    Collection<?> names = (Collection<?>) query.execute(dbName, tableName);
+    for (Iterator<?> i = names.iterator(); i.hasNext();) {
       pns.add((String) i.next());
     }
     if (query != null) {
@@ -2100,7 +2102,7 @@ public class ObjectStore implements RawStore, Configurable {
    *          you want results for.  E.g., if resultsCol is partitionName, the Collection
    *          has types of String, and if resultsCol is null, the types are MPartition.
    */
-  private Collection getPartitionPsQueryResults(String dbName, String tableName,
+  private Collection<?> getPartitionPsQueryResults(String dbName, String tableName,
       List<String> part_vals, short max_parts, String resultsCol, QueryWrapper queryWrapper)
       throws MetaException, NoSuchObjectException {
     dbName = HiveStringUtils.normalizeIdentifier(dbName);
@@ -2140,7 +2142,7 @@ public class ObjectStore implements RawStore, Configurable {
       query.setResult(resultsCol);
     }
 
-    return (Collection) query.execute(dbName, tableName, partNameMatcher);
+    return (Collection<?>) query.execute(dbName, tableName, partNameMatcher);
   }
 
   @Override
@@ -2154,7 +2156,7 @@ public class ObjectStore implements RawStore, Configurable {
     try {
       openTransaction();
       LOG.debug("executing listPartitionNamesPsWithAuth");
-      Collection parts = getPartitionPsQueryResults(db_name, tbl_name,
+      Collection<?> parts = getPartitionPsQueryResults(db_name, tbl_name,
           part_vals, max_parts, null, queryWrapper);
       MTable mtbl = getMTable(db_name, tbl_name);
       for (Object o : parts) {
@@ -2190,7 +2192,7 @@ public class ObjectStore implements RawStore, Configurable {
     try {
       openTransaction();
       LOG.debug("Executing listPartitionNamesPs");
-      Collection names = getPartitionPsQueryResults(dbName, tableName,
+      Collection<?> names = getPartitionPsQueryResults(dbName, tableName,
           part_vals, max_parts, "partitionName", queryWrapper);
       for (Object o : names) {
         partitionNames.add((String) o);
@@ -2836,10 +2838,10 @@ public class ObjectStore implements RawStore, Configurable {
       String parameterDeclaration = makeParameterDeclarationStringObj(params);
       query.declareParameters(parameterDeclaration);
       query.setFilter(queryFilterString);
-      Collection names = (Collection)query.executeWithMap(params);
+      Collection<?> names = (Collection<?>)query.executeWithMap(params);
       // have to emulate "distinct", otherwise tables with the same name may be returned
       Set<String> tableNamesSet = new HashSet<String>();
-      for (Iterator i = names.iterator(); i.hasNext();) {
+      for (Iterator<?> i = names.iterator(); i.hasNext();) {
         tableNamesSet.add((String) i.next());
       }
       tableNames = new ArrayList<String>(tableNamesSet);
@@ -2889,9 +2891,9 @@ public class ObjectStore implements RawStore, Configurable {
       query.declareParameters(parameterDeclaration);
       query.setOrdering("partitionName ascending");
       query.setResult("partitionName");
-      Collection names = (Collection) query.executeWithMap(params);
+      Collection<?> names = (Collection<?>) query.executeWithMap(params);
       partNames = new ArrayList<String>();
-      for (Iterator i = names.iterator(); i.hasNext();) {
+      for (Iterator<?> i = names.iterator(); i.hasNext();) {
         partNames.add((String) i.next());
       }
       LOG.debug("Done executing query for listMPartitionNamesByFilter");
@@ -3364,8 +3366,8 @@ public class ObjectStore implements RawStore, Configurable {
               + "order by indexName asc");
       query.declareParameters("java.lang.String t1, java.lang.String t2");
       query.setResult("indexName");
-      Collection names = (Collection) query.execute(dbName, origTableName);
-      for (Iterator i = names.iterator(); i.hasNext();) {
+      Collection<?> names = (Collection<?>) query.execute(dbName, origTableName);
+      for (Iterator<?> i = names.iterator(); i.hasNext();) {
         pns.add((String) i.next());
       }
       success = commitTransaction();
@@ -3770,9 +3772,9 @@ public class ObjectStore implements RawStore, Configurable {
       LOG.debug("Executing listAllRoleNames");
       query = pm.newQuery("select roleName from org.apache.hadoop.hive.metastore.model.MRole");
       query.setResult("roleName");
-      Collection names = (Collection) query.execute();
+      Collection<?> names = (Collection<?>) query.execute();
       List<String> roleNames = new ArrayList<String>();
-      for (Iterator i = names.iterator(); i.hasNext();) {
+      for (Iterator<?> i = names.iterator(); i.hasNext();) {
         roleNames.add((String) i.next());
       }
       success = commitTransaction();
@@ -7514,6 +7516,7 @@ public class ObjectStore implements RawStore, Configurable {
       openTransaction();
       MFunction mfunc = convertToMFunction(func);
       pm.makePersistent(mfunc);
+      incrementChangeVersionNoTx(IMetaStoreClient.PERMANENT_FUNCTION_CV);
       committed = commitTransaction();
     } finally {
       if (!committed) {
@@ -7540,6 +7543,8 @@ public class ObjectStore implements RawStore, Configurable {
         throw new MetaException("function " + funcName + " doesn't exist");
       }
 
+      incrementChangeVersionNoTx(IMetaStoreClient.PERMANENT_FUNCTION_CV);
+
       // For now only alter name, owner, class name, type
       oldf.setFunctionName(HiveStringUtils.normalizeIdentifier(newf.getFunctionName()));
       oldf.setDatabase(newf.getDatabase());
@@ -7557,6 +7562,15 @@ public class ObjectStore implements RawStore, Configurable {
     }
   }
 
+  private void incrementChangeVersionNoTx(String topic) {
+    MChangeVersion cv = getMChangeVersionNoTx(topic);
+    if (cv == null) {
+      cv = new MChangeVersion(topic, 1);
+      pm.makePersistent(cv);
+    }
+    cv.setVersion(cv.getVersion() + 1);
+  }
+
   @Override
   public void dropFunction(String dbName, String funcName) throws MetaException,
   NoSuchObjectException, InvalidObjectException, InvalidInputException {
@@ -7569,6 +7583,7 @@ public class ObjectStore implements RawStore, Configurable {
         // TODO: When function privileges are implemented, they should be deleted here.
         pm.deletePersistentAll(mfunc);
       }
+      incrementChangeVersionNoTx(IMetaStoreClient.PERMANENT_FUNCTION_CV);
       success = commitTransaction();
     } finally {
       if (!success) {
@@ -7602,6 +7617,27 @@ public class ObjectStore implements RawStore, Configurable {
     return mfunc;
   }
 
+  private MChangeVersion getMChangeVersionNoTx(String topic) {
+    Query query = null;
+    try {
+      query = pm.newQuery(MChangeVersion.class, "topic == topicName");
+      query.declareParameters("java.lang.String topicName");
+      query.setUnique(true);
+      Object obj = query.execute(topic);
+      if (obj == null) {
+        return null;
+      } else {
+        MChangeVersion mversion = (MChangeVersion)obj;
+        pm.retrieve(mversion);
+        return mversion;
+      }
+    } finally {
+      if (query != null) {
+        query.closeAll();
+      }
+    }
+  }
+
   @Override
   public Function getFunction(String dbName, String funcName) throws MetaException {
     boolean commited = false;
@@ -7619,6 +7655,21 @@ public class ObjectStore implements RawStore, Configurable {
   }
 
   @Override
+  public long getChangeVersion(String topic) throws MetaException {
+    boolean commited = false;
+    try {
+      openTransaction();
+      long result = getMChangeVersionNoTx(topic).getVersion();
+      commited = commitTransaction();
+      return result;
+    } finally {
+      if (!commited) {
+        rollbackTransaction();
+      }
+    }
+  }
+
+  @Override
   public List<Function> getAllFunctions() throws MetaException {
     boolean commited = false;
     try {
@@ -7663,9 +7714,9 @@ public class ObjectStore implements RawStore, Configurable {
       query.declareParameters("java.lang.String dbName");
       query.setResult("functionName");
       query.setOrdering("functionName ascending");
-      Collection names = (Collection) query.execute(dbName);
+      Collection<?> names = (Collection<?>) query.execute(dbName);
       funcs = new ArrayList<String>();
-      for (Iterator i = names.iterator(); i.hasNext();) {
+      for (Iterator<?> i = names.iterator(); i.hasNext();) {
         funcs.add((String) i.next());
       }
       commited = commitTransaction();
@@ -7690,7 +7741,8 @@ public class ObjectStore implements RawStore, Configurable {
       query = pm.newQuery(MNotificationLog.class, "eventId > lastEvent");
       query.declareParameters("java.lang.Long lastEvent");
       query.setOrdering("eventId ascending");
-      Collection<MNotificationLog> events = (Collection) query.execute(lastEvent);
+      Collection<MNotificationLog> events = (Collection<MNotificationLog>)
+          query.execute(lastEvent);
       commited = commitTransaction();
       if (events == null) {
         return null;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 cbd5957..e49f757 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
@@ -660,4 +660,7 @@ public interface RawStore extends Configurable {
    */
   @InterfaceStability.Evolving
   int getDatabaseCount() throws MetaException;
+
+  @InterfaceStability.Evolving
+  long getChangeVersion(String topic) throws MetaException;
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseReadWrite.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseReadWrite.java b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseReadWrite.java
index 81f1324..61257f0 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseReadWrite.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/hbase/HBaseReadWrite.java
@@ -32,6 +32,7 @@ import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Increment;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
@@ -100,6 +101,7 @@ public class HBaseReadWrite implements MetadataStore {
   final static String TABLE_TABLE = "HBMS_TBLS";
   final static String USER_TO_ROLE_TABLE = "HBMS_USER_TO_ROLE";
   final static String FILE_METADATA_TABLE = "HBMS_FILE_METADATA";
+  final static String CHANGE_VERSION_TABLE = "HBMS_CHANGE_VERSION";
   final static byte[] CATALOG_CF = "c".getBytes(HBaseUtils.ENCODING);
   final static byte[] STATS_CF = "s".getBytes(HBaseUtils.ENCODING);
   final static String NO_CACHE_CONF = "no.use.cache";
@@ -109,7 +111,7 @@ public class HBaseReadWrite implements MetadataStore {
   public final static String[] tableNames = { AGGR_STATS_TABLE, DB_TABLE, FUNC_TABLE,
                                               GLOBAL_PRIVS_TABLE, PART_TABLE, USER_TO_ROLE_TABLE,
                                               ROLE_TABLE, SD_TABLE, SECURITY_TABLE, SEQUENCES_TABLE,
-                                              TABLE_TABLE, FILE_METADATA_TABLE };
+                                              TABLE_TABLE, FILE_METADATA_TABLE, CHANGE_VERSION_TABLE };
   public final static Map<String, List<byte[]>> columnFamilies = new HashMap<> (tableNames.length);
 
   static {
@@ -126,6 +128,7 @@ public class HBaseReadWrite implements MetadataStore {
     columnFamilies.put(TABLE_TABLE, Arrays.asList(CATALOG_CF, STATS_CF));
     // Stats CF will contain PPD stats.
     columnFamilies.put(FILE_METADATA_TABLE, Arrays.asList(CATALOG_CF, STATS_CF));
+    columnFamilies.put(CHANGE_VERSION_TABLE, Arrays.asList(CATALOG_CF));
   }
 
   final static byte[] AGGR_STATS_BLOOM_COL = "b".getBytes(HBaseUtils.ENCODING);
@@ -138,6 +141,7 @@ public class HBaseReadWrite implements MetadataStore {
   private final static byte[] MASTER_KEY_COL = "mk".getBytes(HBaseUtils.ENCODING);
   private final static byte[] GLOBAL_PRIVS_KEY = "gp".getBytes(HBaseUtils.ENCODING);
   private final static byte[] SEQUENCES_KEY = "seq".getBytes(HBaseUtils.ENCODING);
+  private final static byte[] CV_COL = "cv".getBytes(HBaseUtils.ENCODING);
   private final static int TABLES_TO_CACHE = 10;
   // False positives are very bad here because they cause us to invalidate entries we shouldn't.
   // Space used and # of hash functions grows in proportion to ln of num bits so a 10x increase
@@ -2136,6 +2140,31 @@ public class HBaseReadWrite implements MetadataStore {
     colStats.setStatsDesc(csd);
     return colStats;
   }
+
+  /**********************************************************************************************
+   * Change version related methods
+   *********************************************************************************************/
+
+  public long getChangeVersion(String topic) throws IOException {
+    byte[] key = HBaseUtils.buildKey(topic);
+    byte[] result = read(CHANGE_VERSION_TABLE, key, CATALOG_CF, CV_COL);
+    return (result == null) ? -1 : Long.valueOf(new String(result, HBaseUtils.ENCODING));
+  }
+
+  // TODO: The way this is called now is not ideal. It's all encapsulated and stuff, but,
+  //       before the txns (consistent HBase writes) are properly implemented, we should at least
+  //       put this in the same RPC with real updates. But there are no guarantees anyway, so...
+  public void incrementChangeVersion(String topic) throws IOException {
+    byte[] key = HBaseUtils.buildKey(topic);
+    byte[] serialized = read(CHANGE_VERSION_TABLE, key, CATALOG_CF, CV_COL);
+    long val = 0;
+    if (serialized != null) {
+      val = Long.valueOf(new String(serialized, HBaseUtils.ENCODING));
+    }
+    store(CHANGE_VERSION_TABLE, key, CATALOG_CF, CV_COL,
+        new Long(val + 1).toString().getBytes(HBaseUtils.ENCODING));
+  }
+
   /**********************************************************************************************
    * File metadata related methods
    *********************************************************************************************/

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 317913d..f7d5735 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
@@ -30,6 +30,7 @@ import org.apache.hadoop.hive.common.StatsSetupConst;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.FileMetadataHandler;
 import org.apache.hadoop.hive.metastore.HiveMetaStore;
+import org.apache.hadoop.hive.metastore.IMetaStoreClient;
 import org.apache.hadoop.hive.metastore.PartFilterExprUtil;
 import org.apache.hadoop.hive.metastore.PartitionExpressionProxy;
 import org.apache.hadoop.hive.metastore.RawStore;
@@ -2249,7 +2250,9 @@ public class HBaseStore implements RawStore {
     boolean commit = false;
     openTransaction();
     try {
-      getHBase().putFunction(func);
+      HBaseReadWrite hbase = getHBase();
+      hbase.putFunction(func);
+      hbase.incrementChangeVersion(IMetaStoreClient.PERMANENT_FUNCTION_CV);
       commit = true;
     } catch (IOException e) {
       LOG.error("Unable to create function", e);
@@ -2265,7 +2268,9 @@ public class HBaseStore implements RawStore {
     boolean commit = false;
     openTransaction();
     try {
-      getHBase().putFunction(newFunction);
+      HBaseReadWrite hbase = getHBase();
+      hbase.putFunction(newFunction);
+      hbase.incrementChangeVersion(IMetaStoreClient.PERMANENT_FUNCTION_CV);
       commit = true;
     } catch (IOException e) {
       LOG.error("Unable to alter function ", e);
@@ -2281,7 +2286,9 @@ public class HBaseStore implements RawStore {
     boolean commit = false;
     openTransaction();
     try {
-      getHBase().deleteFunction(dbName, funcName);
+      HBaseReadWrite hbase = getHBase();
+      hbase.deleteFunction(dbName, funcName);
+      hbase.incrementChangeVersion(IMetaStoreClient.PERMANENT_FUNCTION_CV);
       commit = true;
     } catch (IOException e) {
       LOG.error("Unable to delete function" + e);
@@ -2569,4 +2576,19 @@ public class HBaseStore implements RawStore {
       commitOrRoleBack(commit);
     }
   }
+
+  @Override
+  public long getChangeVersion(String topic) throws MetaException {
+    openTransaction();
+    boolean commit = true;
+    try {
+      return getHBase().getChangeVersion(topic);
+    } catch (IOException e) {
+      commit = false;
+      LOG.error("Unable to get change version", e);
+      throw new MetaException("Unable to get change version " + e.getMessage());
+    } finally {
+      commitOrRoleBack(commit);
+    }
+  }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/model/org/apache/hadoop/hive/metastore/model/MChangeVersion.java
----------------------------------------------------------------------
diff --git a/metastore/src/model/org/apache/hadoop/hive/metastore/model/MChangeVersion.java b/metastore/src/model/org/apache/hadoop/hive/metastore/model/MChangeVersion.java
new file mode 100644
index 0000000..d498c86
--- /dev/null
+++ b/metastore/src/model/org/apache/hadoop/hive/metastore/model/MChangeVersion.java
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.metastore.model;
+
+public class MChangeVersion {
+  private String topic;
+  private long version;
+
+  public MChangeVersion() {
+  }
+
+  public MChangeVersion(String topic, long version) {
+    this.setTopic(topic);
+    this.setVersion(version);
+  }
+
+  public String getTopic() {
+    return topic;
+  }
+
+  public void setTopic(String topic) {
+    this.topic = topic;
+  }
+
+  public long getVersion() {
+    return version;
+  }
+
+  public void setVersion(long version) {
+    this.version = version;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/model/package.jdo
----------------------------------------------------------------------
diff --git a/metastore/src/model/package.jdo b/metastore/src/model/package.jdo
index b41b3d8..7385a13 100644
--- a/metastore/src/model/package.jdo
+++ b/metastore/src/model/package.jdo
@@ -1019,7 +1019,18 @@
       </field>
     </class>
 
-
+    <class name="MChangeVersion" table="CHANGE_VERSION" identity-type="datastore" detachable="true">
+      <datastore-identity>
+        <column name="CHANGE_VERSION_ID"/>
+      </datastore-identity>
+      <field name="version">
+        <column name="VERSION" jdbc-type="BIGINT" allows-null="false"/>
+      </field>
+      <field name="topic">
+        <column name="TOPIC" length="255" jdbc-type="VARCHAR" allows-null="false"/>
+        <index name="UniqueTopic" unique="true"/>
+      </field>
+    </class>
   </package>
 </jdo>
 

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java
----------------------------------------------------------------------
diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java b/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java
index 660dd4e..94ca835 100644
--- a/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java
+++ b/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java
@@ -815,4 +815,9 @@ public class DummyRawStoreControlledCommit implements RawStore, Configurable {
   public FileMetadataHandler getFileMetadataHandler(FileMetadataExprType type) {
     return null;
   }
+
+  @Override
+  public long getChangeVersion(String topic) throws MetaException {
+    return 0;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java
----------------------------------------------------------------------
diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java b/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java
index 9103102..b108f95 100644
--- a/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java
+++ b/metastore/src/test/org/apache/hadoop/hive/metastore/DummyRawStoreForJdoConnection.java
@@ -831,6 +831,11 @@ public class DummyRawStoreForJdoConnection implements RawStore {
   public FileMetadataHandler getFileMetadataHandler(FileMetadataExprType type) {
     return null;
   }
+
+  @Override
+  public long getChangeVersion(String topic) throws MetaException {
+    return 0;
+  }
 }
 
 

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/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 5c32f6f..a92c002 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
@@ -3494,4 +3494,12 @@ private void constructOneLBLocationMap(FileStatus fSta,
       throw new HiveException(e);
     }
   }
+
+  public long getPermanenFunctionsChangeVersion() throws HiveException {
+    try {
+      return getMSC().getChangeVersion(IMetaStoreClient.PERMANENT_FUNCTION_CV);
+    } catch (TException e) {
+      throw new HiveException(e);
+    }
+  }
 };


[3/5] hive git commit: HIVE-12892 : Add global change versioning to permanent functions in metastore (Sergey Shelukhin, reviewed by Alan Gates)

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
index 01b332e..edcfa76 100644
--- a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
+++ b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
@@ -155,6 +155,7 @@ class ThriftHiveMetastoreIf : virtual public  ::facebook::fb303::FacebookService
   virtual void put_file_metadata(PutFileMetadataResult& _return, const PutFileMetadataRequest& req) = 0;
   virtual void clear_file_metadata(ClearFileMetadataResult& _return, const ClearFileMetadataRequest& req) = 0;
   virtual void cache_file_metadata(CacheFileMetadataResult& _return, const CacheFileMetadataRequest& req) = 0;
+  virtual void get_change_version(GetChangeVersionResult& _return, const GetChangeVersionRequest& req) = 0;
 };
 
 class ThriftHiveMetastoreIfFactory : virtual public  ::facebook::fb303::FacebookServiceIfFactory {
@@ -607,6 +608,9 @@ class ThriftHiveMetastoreNull : virtual public ThriftHiveMetastoreIf , virtual p
   void cache_file_metadata(CacheFileMetadataResult& /* _return */, const CacheFileMetadataRequest& /* req */) {
     return;
   }
+  void get_change_version(GetChangeVersionResult& /* _return */, const GetChangeVersionRequest& /* req */) {
+    return;
+  }
 };
 
 typedef struct _ThriftHiveMetastore_getMetaConf_args__isset {
@@ -17270,6 +17274,110 @@ class ThriftHiveMetastore_cache_file_metadata_presult {
 
 };
 
+typedef struct _ThriftHiveMetastore_get_change_version_args__isset {
+  _ThriftHiveMetastore_get_change_version_args__isset() : req(false) {}
+  bool req :1;
+} _ThriftHiveMetastore_get_change_version_args__isset;
+
+class ThriftHiveMetastore_get_change_version_args {
+ public:
+
+  ThriftHiveMetastore_get_change_version_args(const ThriftHiveMetastore_get_change_version_args&);
+  ThriftHiveMetastore_get_change_version_args& operator=(const ThriftHiveMetastore_get_change_version_args&);
+  ThriftHiveMetastore_get_change_version_args() {
+  }
+
+  virtual ~ThriftHiveMetastore_get_change_version_args() throw();
+  GetChangeVersionRequest req;
+
+  _ThriftHiveMetastore_get_change_version_args__isset __isset;
+
+  void __set_req(const GetChangeVersionRequest& val);
+
+  bool operator == (const ThriftHiveMetastore_get_change_version_args & rhs) const
+  {
+    if (!(req == rhs.req))
+      return false;
+    return true;
+  }
+  bool operator != (const ThriftHiveMetastore_get_change_version_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ThriftHiveMetastore_get_change_version_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ThriftHiveMetastore_get_change_version_pargs {
+ public:
+
+
+  virtual ~ThriftHiveMetastore_get_change_version_pargs() throw();
+  const GetChangeVersionRequest* req;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ThriftHiveMetastore_get_change_version_result__isset {
+  _ThriftHiveMetastore_get_change_version_result__isset() : success(false) {}
+  bool success :1;
+} _ThriftHiveMetastore_get_change_version_result__isset;
+
+class ThriftHiveMetastore_get_change_version_result {
+ public:
+
+  ThriftHiveMetastore_get_change_version_result(const ThriftHiveMetastore_get_change_version_result&);
+  ThriftHiveMetastore_get_change_version_result& operator=(const ThriftHiveMetastore_get_change_version_result&);
+  ThriftHiveMetastore_get_change_version_result() {
+  }
+
+  virtual ~ThriftHiveMetastore_get_change_version_result() throw();
+  GetChangeVersionResult success;
+
+  _ThriftHiveMetastore_get_change_version_result__isset __isset;
+
+  void __set_success(const GetChangeVersionResult& val);
+
+  bool operator == (const ThriftHiveMetastore_get_change_version_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    return true;
+  }
+  bool operator != (const ThriftHiveMetastore_get_change_version_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ThriftHiveMetastore_get_change_version_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ThriftHiveMetastore_get_change_version_presult__isset {
+  _ThriftHiveMetastore_get_change_version_presult__isset() : success(false) {}
+  bool success :1;
+} _ThriftHiveMetastore_get_change_version_presult__isset;
+
+class ThriftHiveMetastore_get_change_version_presult {
+ public:
+
+
+  virtual ~ThriftHiveMetastore_get_change_version_presult() throw();
+  GetChangeVersionResult* success;
+
+  _ThriftHiveMetastore_get_change_version_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
 class ThriftHiveMetastoreClient : virtual public ThriftHiveMetastoreIf, public  ::facebook::fb303::FacebookServiceClient {
  public:
   ThriftHiveMetastoreClient(boost::shared_ptr< ::apache::thrift::protocol::TProtocol> prot) :
@@ -17680,6 +17788,9 @@ class ThriftHiveMetastoreClient : virtual public ThriftHiveMetastoreIf, public
   void cache_file_metadata(CacheFileMetadataResult& _return, const CacheFileMetadataRequest& req);
   void send_cache_file_metadata(const CacheFileMetadataRequest& req);
   void recv_cache_file_metadata(CacheFileMetadataResult& _return);
+  void get_change_version(GetChangeVersionResult& _return, const GetChangeVersionRequest& req);
+  void send_get_change_version(const GetChangeVersionRequest& req);
+  void recv_get_change_version(GetChangeVersionResult& _return);
 };
 
 class ThriftHiveMetastoreProcessor : public  ::facebook::fb303::FacebookServiceProcessor {
@@ -17823,6 +17934,7 @@ class ThriftHiveMetastoreProcessor : public  ::facebook::fb303::FacebookServiceP
   void process_put_file_metadata(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_clear_file_metadata(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_cache_file_metadata(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_get_change_version(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
  public:
   ThriftHiveMetastoreProcessor(boost::shared_ptr<ThriftHiveMetastoreIf> iface) :
      ::facebook::fb303::FacebookServiceProcessor(iface),
@@ -17960,6 +18072,7 @@ class ThriftHiveMetastoreProcessor : public  ::facebook::fb303::FacebookServiceP
     processMap_["put_file_metadata"] = &ThriftHiveMetastoreProcessor::process_put_file_metadata;
     processMap_["clear_file_metadata"] = &ThriftHiveMetastoreProcessor::process_clear_file_metadata;
     processMap_["cache_file_metadata"] = &ThriftHiveMetastoreProcessor::process_cache_file_metadata;
+    processMap_["get_change_version"] = &ThriftHiveMetastoreProcessor::process_get_change_version;
   }
 
   virtual ~ThriftHiveMetastoreProcessor() {}
@@ -19271,6 +19384,16 @@ class ThriftHiveMetastoreMultiface : virtual public ThriftHiveMetastoreIf, publi
     return;
   }
 
+  void get_change_version(GetChangeVersionResult& _return, const GetChangeVersionRequest& req) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->get_change_version(_return, req);
+    }
+    ifaces_[i]->get_change_version(_return, req);
+    return;
+  }
+
 };
 
 // The 'concurrent' client is a thread safe client that correctly handles
@@ -19686,6 +19809,9 @@ class ThriftHiveMetastoreConcurrentClient : virtual public ThriftHiveMetastoreIf
   void cache_file_metadata(CacheFileMetadataResult& _return, const CacheFileMetadataRequest& req);
   int32_t send_cache_file_metadata(const CacheFileMetadataRequest& req);
   void recv_cache_file_metadata(CacheFileMetadataResult& _return, const int32_t seqid);
+  void get_change_version(GetChangeVersionResult& _return, const GetChangeVersionRequest& req);
+  int32_t send_get_change_version(const GetChangeVersionRequest& req);
+  void recv_get_change_version(GetChangeVersionResult& _return, const int32_t seqid);
 };
 
 #ifdef _WIN32

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
index 0fee77b..6a75113 100644
--- a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
+++ b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
@@ -687,6 +687,11 @@ class ThriftHiveMetastoreHandler : virtual public ThriftHiveMetastoreIf {
     printf("cache_file_metadata\n");
   }
 
+  void get_change_version(GetChangeVersionResult& _return, const GetChangeVersionRequest& req) {
+    // Your implementation goes here
+    printf("get_change_version\n");
+  }
+
 };
 
 int main(int argc, char **argv) {

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
index 81577b6..2695ffa 100644
--- a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
+++ b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
@@ -14626,6 +14626,178 @@ void FireEventResponse::printTo(std::ostream& out) const {
 }
 
 
+GetChangeVersionRequest::~GetChangeVersionRequest() throw() {
+}
+
+
+void GetChangeVersionRequest::__set_topic(const std::string& val) {
+  this->topic = val;
+}
+
+uint32_t GetChangeVersionRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_topic = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->topic);
+          isset_topic = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_topic)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t GetChangeVersionRequest::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("GetChangeVersionRequest");
+
+  xfer += oprot->writeFieldBegin("topic", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->topic);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(GetChangeVersionRequest &a, GetChangeVersionRequest &b) {
+  using ::std::swap;
+  swap(a.topic, b.topic);
+}
+
+GetChangeVersionRequest::GetChangeVersionRequest(const GetChangeVersionRequest& other609) {
+  topic = other609.topic;
+}
+GetChangeVersionRequest& GetChangeVersionRequest::operator=(const GetChangeVersionRequest& other610) {
+  topic = other610.topic;
+  return *this;
+}
+void GetChangeVersionRequest::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "GetChangeVersionRequest(";
+  out << "topic=" << to_string(topic);
+  out << ")";
+}
+
+
+GetChangeVersionResult::~GetChangeVersionResult() throw() {
+}
+
+
+void GetChangeVersionResult::__set_version(const int64_t val) {
+  this->version = val;
+}
+
+uint32_t GetChangeVersionResult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_version = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_I64) {
+          xfer += iprot->readI64(this->version);
+          isset_version = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_version)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t GetChangeVersionResult::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("GetChangeVersionResult");
+
+  xfer += oprot->writeFieldBegin("version", ::apache::thrift::protocol::T_I64, 1);
+  xfer += oprot->writeI64(this->version);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(GetChangeVersionResult &a, GetChangeVersionResult &b) {
+  using ::std::swap;
+  swap(a.version, b.version);
+}
+
+GetChangeVersionResult::GetChangeVersionResult(const GetChangeVersionResult& other611) {
+  version = other611.version;
+}
+GetChangeVersionResult& GetChangeVersionResult::operator=(const GetChangeVersionResult& other612) {
+  version = other612.version;
+  return *this;
+}
+void GetChangeVersionResult::printTo(std::ostream& out) const {
+  using ::apache::thrift::to_string;
+  out << "GetChangeVersionResult(";
+  out << "version=" << to_string(version);
+  out << ")";
+}
+
+
 MetadataPpdResult::~MetadataPpdResult() throw() {
 }
 
@@ -14716,15 +14888,15 @@ void swap(MetadataPpdResult &a, MetadataPpdResult &b) {
   swap(a.__isset, b.__isset);
 }
 
-MetadataPpdResult::MetadataPpdResult(const MetadataPpdResult& other609) {
-  metadata = other609.metadata;
-  includeBitset = other609.includeBitset;
-  __isset = other609.__isset;
+MetadataPpdResult::MetadataPpdResult(const MetadataPpdResult& other613) {
+  metadata = other613.metadata;
+  includeBitset = other613.includeBitset;
+  __isset = other613.__isset;
 }
-MetadataPpdResult& MetadataPpdResult::operator=(const MetadataPpdResult& other610) {
-  metadata = other610.metadata;
-  includeBitset = other610.includeBitset;
-  __isset = other610.__isset;
+MetadataPpdResult& MetadataPpdResult::operator=(const MetadataPpdResult& other614) {
+  metadata = other614.metadata;
+  includeBitset = other614.includeBitset;
+  __isset = other614.__isset;
   return *this;
 }
 void MetadataPpdResult::printTo(std::ostream& out) const {
@@ -14775,17 +14947,17 @@ uint32_t GetFileMetadataByExprResult::read(::apache::thrift::protocol::TProtocol
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->metadata.clear();
-            uint32_t _size611;
-            ::apache::thrift::protocol::TType _ktype612;
-            ::apache::thrift::protocol::TType _vtype613;
-            xfer += iprot->readMapBegin(_ktype612, _vtype613, _size611);
-            uint32_t _i615;
-            for (_i615 = 0; _i615 < _size611; ++_i615)
+            uint32_t _size615;
+            ::apache::thrift::protocol::TType _ktype616;
+            ::apache::thrift::protocol::TType _vtype617;
+            xfer += iprot->readMapBegin(_ktype616, _vtype617, _size615);
+            uint32_t _i619;
+            for (_i619 = 0; _i619 < _size615; ++_i619)
             {
-              int64_t _key616;
-              xfer += iprot->readI64(_key616);
-              MetadataPpdResult& _val617 = this->metadata[_key616];
-              xfer += _val617.read(iprot);
+              int64_t _key620;
+              xfer += iprot->readI64(_key620);
+              MetadataPpdResult& _val621 = this->metadata[_key620];
+              xfer += _val621.read(iprot);
             }
             xfer += iprot->readMapEnd();
           }
@@ -14826,11 +14998,11 @@ uint32_t GetFileMetadataByExprResult::write(::apache::thrift::protocol::TProtoco
   xfer += oprot->writeFieldBegin("metadata", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I64, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->metadata.size()));
-    std::map<int64_t, MetadataPpdResult> ::const_iterator _iter618;
-    for (_iter618 = this->metadata.begin(); _iter618 != this->metadata.end(); ++_iter618)
+    std::map<int64_t, MetadataPpdResult> ::const_iterator _iter622;
+    for (_iter622 = this->metadata.begin(); _iter622 != this->metadata.end(); ++_iter622)
     {
-      xfer += oprot->writeI64(_iter618->first);
-      xfer += _iter618->second.write(oprot);
+      xfer += oprot->writeI64(_iter622->first);
+      xfer += _iter622->second.write(oprot);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -14851,13 +15023,13 @@ void swap(GetFileMetadataByExprResult &a, GetFileMetadataByExprResult &b) {
   swap(a.isSupported, b.isSupported);
 }
 
-GetFileMetadataByExprResult::GetFileMetadataByExprResult(const GetFileMetadataByExprResult& other619) {
-  metadata = other619.metadata;
-  isSupported = other619.isSupported;
+GetFileMetadataByExprResult::GetFileMetadataByExprResult(const GetFileMetadataByExprResult& other623) {
+  metadata = other623.metadata;
+  isSupported = other623.isSupported;
 }
-GetFileMetadataByExprResult& GetFileMetadataByExprResult::operator=(const GetFileMetadataByExprResult& other620) {
-  metadata = other620.metadata;
-  isSupported = other620.isSupported;
+GetFileMetadataByExprResult& GetFileMetadataByExprResult::operator=(const GetFileMetadataByExprResult& other624) {
+  metadata = other624.metadata;
+  isSupported = other624.isSupported;
   return *this;
 }
 void GetFileMetadataByExprResult::printTo(std::ostream& out) const {
@@ -14918,14 +15090,14 @@ uint32_t GetFileMetadataByExprRequest::read(::apache::thrift::protocol::TProtoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->fileIds.clear();
-            uint32_t _size621;
-            ::apache::thrift::protocol::TType _etype624;
-            xfer += iprot->readListBegin(_etype624, _size621);
-            this->fileIds.resize(_size621);
-            uint32_t _i625;
-            for (_i625 = 0; _i625 < _size621; ++_i625)
+            uint32_t _size625;
+            ::apache::thrift::protocol::TType _etype628;
+            xfer += iprot->readListBegin(_etype628, _size625);
+            this->fileIds.resize(_size625);
+            uint32_t _i629;
+            for (_i629 = 0; _i629 < _size625; ++_i629)
             {
-              xfer += iprot->readI64(this->fileIds[_i625]);
+              xfer += iprot->readI64(this->fileIds[_i629]);
             }
             xfer += iprot->readListEnd();
           }
@@ -14952,9 +15124,9 @@ uint32_t GetFileMetadataByExprRequest::read(::apache::thrift::protocol::TProtoco
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast626;
-          xfer += iprot->readI32(ecast626);
-          this->type = (FileMetadataExprType::type)ecast626;
+          int32_t ecast630;
+          xfer += iprot->readI32(ecast630);
+          this->type = (FileMetadataExprType::type)ecast630;
           this->__isset.type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -14984,10 +15156,10 @@ uint32_t GetFileMetadataByExprRequest::write(::apache::thrift::protocol::TProtoc
   xfer += oprot->writeFieldBegin("fileIds", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast<uint32_t>(this->fileIds.size()));
-    std::vector<int64_t> ::const_iterator _iter627;
-    for (_iter627 = this->fileIds.begin(); _iter627 != this->fileIds.end(); ++_iter627)
+    std::vector<int64_t> ::const_iterator _iter631;
+    for (_iter631 = this->fileIds.begin(); _iter631 != this->fileIds.end(); ++_iter631)
     {
-      xfer += oprot->writeI64((*_iter627));
+      xfer += oprot->writeI64((*_iter631));
     }
     xfer += oprot->writeListEnd();
   }
@@ -15021,19 +15193,19 @@ void swap(GetFileMetadataByExprRequest &a, GetFileMetadataByExprRequest &b) {
   swap(a.__isset, b.__isset);
 }
 
-GetFileMetadataByExprRequest::GetFileMetadataByExprRequest(const GetFileMetadataByExprRequest& other628) {
-  fileIds = other628.fileIds;
-  expr = other628.expr;
-  doGetFooters = other628.doGetFooters;
-  type = other628.type;
-  __isset = other628.__isset;
+GetFileMetadataByExprRequest::GetFileMetadataByExprRequest(const GetFileMetadataByExprRequest& other632) {
+  fileIds = other632.fileIds;
+  expr = other632.expr;
+  doGetFooters = other632.doGetFooters;
+  type = other632.type;
+  __isset = other632.__isset;
 }
-GetFileMetadataByExprRequest& GetFileMetadataByExprRequest::operator=(const GetFileMetadataByExprRequest& other629) {
-  fileIds = other629.fileIds;
-  expr = other629.expr;
-  doGetFooters = other629.doGetFooters;
-  type = other629.type;
-  __isset = other629.__isset;
+GetFileMetadataByExprRequest& GetFileMetadataByExprRequest::operator=(const GetFileMetadataByExprRequest& other633) {
+  fileIds = other633.fileIds;
+  expr = other633.expr;
+  doGetFooters = other633.doGetFooters;
+  type = other633.type;
+  __isset = other633.__isset;
   return *this;
 }
 void GetFileMetadataByExprRequest::printTo(std::ostream& out) const {
@@ -15086,17 +15258,17 @@ uint32_t GetFileMetadataResult::read(::apache::thrift::protocol::TProtocol* ipro
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->metadata.clear();
-            uint32_t _size630;
-            ::apache::thrift::protocol::TType _ktype631;
-            ::apache::thrift::protocol::TType _vtype632;
-            xfer += iprot->readMapBegin(_ktype631, _vtype632, _size630);
-            uint32_t _i634;
-            for (_i634 = 0; _i634 < _size630; ++_i634)
+            uint32_t _size634;
+            ::apache::thrift::protocol::TType _ktype635;
+            ::apache::thrift::protocol::TType _vtype636;
+            xfer += iprot->readMapBegin(_ktype635, _vtype636, _size634);
+            uint32_t _i638;
+            for (_i638 = 0; _i638 < _size634; ++_i638)
             {
-              int64_t _key635;
-              xfer += iprot->readI64(_key635);
-              std::string& _val636 = this->metadata[_key635];
-              xfer += iprot->readBinary(_val636);
+              int64_t _key639;
+              xfer += iprot->readI64(_key639);
+              std::string& _val640 = this->metadata[_key639];
+              xfer += iprot->readBinary(_val640);
             }
             xfer += iprot->readMapEnd();
           }
@@ -15137,11 +15309,11 @@ uint32_t GetFileMetadataResult::write(::apache::thrift::protocol::TProtocol* opr
   xfer += oprot->writeFieldBegin("metadata", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_I64, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->metadata.size()));
-    std::map<int64_t, std::string> ::const_iterator _iter637;
-    for (_iter637 = this->metadata.begin(); _iter637 != this->metadata.end(); ++_iter637)
+    std::map<int64_t, std::string> ::const_iterator _iter641;
+    for (_iter641 = this->metadata.begin(); _iter641 != this->metadata.end(); ++_iter641)
     {
-      xfer += oprot->writeI64(_iter637->first);
-      xfer += oprot->writeBinary(_iter637->second);
+      xfer += oprot->writeI64(_iter641->first);
+      xfer += oprot->writeBinary(_iter641->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -15162,13 +15334,13 @@ void swap(GetFileMetadataResult &a, GetFileMetadataResult &b) {
   swap(a.isSupported, b.isSupported);
 }
 
-GetFileMetadataResult::GetFileMetadataResult(const GetFileMetadataResult& other638) {
-  metadata = other638.metadata;
-  isSupported = other638.isSupported;
+GetFileMetadataResult::GetFileMetadataResult(const GetFileMetadataResult& other642) {
+  metadata = other642.metadata;
+  isSupported = other642.isSupported;
 }
-GetFileMetadataResult& GetFileMetadataResult::operator=(const GetFileMetadataResult& other639) {
-  metadata = other639.metadata;
-  isSupported = other639.isSupported;
+GetFileMetadataResult& GetFileMetadataResult::operator=(const GetFileMetadataResult& other643) {
+  metadata = other643.metadata;
+  isSupported = other643.isSupported;
   return *this;
 }
 void GetFileMetadataResult::printTo(std::ostream& out) const {
@@ -15214,14 +15386,14 @@ uint32_t GetFileMetadataRequest::read(::apache::thrift::protocol::TProtocol* ipr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->fileIds.clear();
-            uint32_t _size640;
-            ::apache::thrift::protocol::TType _etype643;
-            xfer += iprot->readListBegin(_etype643, _size640);
-            this->fileIds.resize(_size640);
-            uint32_t _i644;
-            for (_i644 = 0; _i644 < _size640; ++_i644)
+            uint32_t _size644;
+            ::apache::thrift::protocol::TType _etype647;
+            xfer += iprot->readListBegin(_etype647, _size644);
+            this->fileIds.resize(_size644);
+            uint32_t _i648;
+            for (_i648 = 0; _i648 < _size644; ++_i648)
             {
-              xfer += iprot->readI64(this->fileIds[_i644]);
+              xfer += iprot->readI64(this->fileIds[_i648]);
             }
             xfer += iprot->readListEnd();
           }
@@ -15252,10 +15424,10 @@ uint32_t GetFileMetadataRequest::write(::apache::thrift::protocol::TProtocol* op
   xfer += oprot->writeFieldBegin("fileIds", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast<uint32_t>(this->fileIds.size()));
-    std::vector<int64_t> ::const_iterator _iter645;
-    for (_iter645 = this->fileIds.begin(); _iter645 != this->fileIds.end(); ++_iter645)
+    std::vector<int64_t> ::const_iterator _iter649;
+    for (_iter649 = this->fileIds.begin(); _iter649 != this->fileIds.end(); ++_iter649)
     {
-      xfer += oprot->writeI64((*_iter645));
+      xfer += oprot->writeI64((*_iter649));
     }
     xfer += oprot->writeListEnd();
   }
@@ -15271,11 +15443,11 @@ void swap(GetFileMetadataRequest &a, GetFileMetadataRequest &b) {
   swap(a.fileIds, b.fileIds);
 }
 
-GetFileMetadataRequest::GetFileMetadataRequest(const GetFileMetadataRequest& other646) {
-  fileIds = other646.fileIds;
+GetFileMetadataRequest::GetFileMetadataRequest(const GetFileMetadataRequest& other650) {
+  fileIds = other650.fileIds;
 }
-GetFileMetadataRequest& GetFileMetadataRequest::operator=(const GetFileMetadataRequest& other647) {
-  fileIds = other647.fileIds;
+GetFileMetadataRequest& GetFileMetadataRequest::operator=(const GetFileMetadataRequest& other651) {
+  fileIds = other651.fileIds;
   return *this;
 }
 void GetFileMetadataRequest::printTo(std::ostream& out) const {
@@ -15334,11 +15506,11 @@ void swap(PutFileMetadataResult &a, PutFileMetadataResult &b) {
   (void) b;
 }
 
-PutFileMetadataResult::PutFileMetadataResult(const PutFileMetadataResult& other648) {
-  (void) other648;
+PutFileMetadataResult::PutFileMetadataResult(const PutFileMetadataResult& other652) {
+  (void) other652;
 }
-PutFileMetadataResult& PutFileMetadataResult::operator=(const PutFileMetadataResult& other649) {
-  (void) other649;
+PutFileMetadataResult& PutFileMetadataResult::operator=(const PutFileMetadataResult& other653) {
+  (void) other653;
   return *this;
 }
 void PutFileMetadataResult::printTo(std::ostream& out) const {
@@ -15392,14 +15564,14 @@ uint32_t PutFileMetadataRequest::read(::apache::thrift::protocol::TProtocol* ipr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->fileIds.clear();
-            uint32_t _size650;
-            ::apache::thrift::protocol::TType _etype653;
-            xfer += iprot->readListBegin(_etype653, _size650);
-            this->fileIds.resize(_size650);
-            uint32_t _i654;
-            for (_i654 = 0; _i654 < _size650; ++_i654)
+            uint32_t _size654;
+            ::apache::thrift::protocol::TType _etype657;
+            xfer += iprot->readListBegin(_etype657, _size654);
+            this->fileIds.resize(_size654);
+            uint32_t _i658;
+            for (_i658 = 0; _i658 < _size654; ++_i658)
             {
-              xfer += iprot->readI64(this->fileIds[_i654]);
+              xfer += iprot->readI64(this->fileIds[_i658]);
             }
             xfer += iprot->readListEnd();
           }
@@ -15412,14 +15584,14 @@ uint32_t PutFileMetadataRequest::read(::apache::thrift::protocol::TProtocol* ipr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->metadata.clear();
-            uint32_t _size655;
-            ::apache::thrift::protocol::TType _etype658;
-            xfer += iprot->readListBegin(_etype658, _size655);
-            this->metadata.resize(_size655);
-            uint32_t _i659;
-            for (_i659 = 0; _i659 < _size655; ++_i659)
+            uint32_t _size659;
+            ::apache::thrift::protocol::TType _etype662;
+            xfer += iprot->readListBegin(_etype662, _size659);
+            this->metadata.resize(_size659);
+            uint32_t _i663;
+            for (_i663 = 0; _i663 < _size659; ++_i663)
             {
-              xfer += iprot->readBinary(this->metadata[_i659]);
+              xfer += iprot->readBinary(this->metadata[_i663]);
             }
             xfer += iprot->readListEnd();
           }
@@ -15430,9 +15602,9 @@ uint32_t PutFileMetadataRequest::read(::apache::thrift::protocol::TProtocol* ipr
         break;
       case 3:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast660;
-          xfer += iprot->readI32(ecast660);
-          this->type = (FileMetadataExprType::type)ecast660;
+          int32_t ecast664;
+          xfer += iprot->readI32(ecast664);
+          this->type = (FileMetadataExprType::type)ecast664;
           this->__isset.type = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -15462,10 +15634,10 @@ uint32_t PutFileMetadataRequest::write(::apache::thrift::protocol::TProtocol* op
   xfer += oprot->writeFieldBegin("fileIds", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast<uint32_t>(this->fileIds.size()));
-    std::vector<int64_t> ::const_iterator _iter661;
-    for (_iter661 = this->fileIds.begin(); _iter661 != this->fileIds.end(); ++_iter661)
+    std::vector<int64_t> ::const_iterator _iter665;
+    for (_iter665 = this->fileIds.begin(); _iter665 != this->fileIds.end(); ++_iter665)
     {
-      xfer += oprot->writeI64((*_iter661));
+      xfer += oprot->writeI64((*_iter665));
     }
     xfer += oprot->writeListEnd();
   }
@@ -15474,10 +15646,10 @@ uint32_t PutFileMetadataRequest::write(::apache::thrift::protocol::TProtocol* op
   xfer += oprot->writeFieldBegin("metadata", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->metadata.size()));
-    std::vector<std::string> ::const_iterator _iter662;
-    for (_iter662 = this->metadata.begin(); _iter662 != this->metadata.end(); ++_iter662)
+    std::vector<std::string> ::const_iterator _iter666;
+    for (_iter666 = this->metadata.begin(); _iter666 != this->metadata.end(); ++_iter666)
     {
-      xfer += oprot->writeBinary((*_iter662));
+      xfer += oprot->writeBinary((*_iter666));
     }
     xfer += oprot->writeListEnd();
   }
@@ -15501,17 +15673,17 @@ void swap(PutFileMetadataRequest &a, PutFileMetadataRequest &b) {
   swap(a.__isset, b.__isset);
 }
 
-PutFileMetadataRequest::PutFileMetadataRequest(const PutFileMetadataRequest& other663) {
-  fileIds = other663.fileIds;
-  metadata = other663.metadata;
-  type = other663.type;
-  __isset = other663.__isset;
+PutFileMetadataRequest::PutFileMetadataRequest(const PutFileMetadataRequest& other667) {
+  fileIds = other667.fileIds;
+  metadata = other667.metadata;
+  type = other667.type;
+  __isset = other667.__isset;
 }
-PutFileMetadataRequest& PutFileMetadataRequest::operator=(const PutFileMetadataRequest& other664) {
-  fileIds = other664.fileIds;
-  metadata = other664.metadata;
-  type = other664.type;
-  __isset = other664.__isset;
+PutFileMetadataRequest& PutFileMetadataRequest::operator=(const PutFileMetadataRequest& other668) {
+  fileIds = other668.fileIds;
+  metadata = other668.metadata;
+  type = other668.type;
+  __isset = other668.__isset;
   return *this;
 }
 void PutFileMetadataRequest::printTo(std::ostream& out) const {
@@ -15572,11 +15744,11 @@ void swap(ClearFileMetadataResult &a, ClearFileMetadataResult &b) {
   (void) b;
 }
 
-ClearFileMetadataResult::ClearFileMetadataResult(const ClearFileMetadataResult& other665) {
-  (void) other665;
+ClearFileMetadataResult::ClearFileMetadataResult(const ClearFileMetadataResult& other669) {
+  (void) other669;
 }
-ClearFileMetadataResult& ClearFileMetadataResult::operator=(const ClearFileMetadataResult& other666) {
-  (void) other666;
+ClearFileMetadataResult& ClearFileMetadataResult::operator=(const ClearFileMetadataResult& other670) {
+  (void) other670;
   return *this;
 }
 void ClearFileMetadataResult::printTo(std::ostream& out) const {
@@ -15620,14 +15792,14 @@ uint32_t ClearFileMetadataRequest::read(::apache::thrift::protocol::TProtocol* i
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->fileIds.clear();
-            uint32_t _size667;
-            ::apache::thrift::protocol::TType _etype670;
-            xfer += iprot->readListBegin(_etype670, _size667);
-            this->fileIds.resize(_size667);
-            uint32_t _i671;
-            for (_i671 = 0; _i671 < _size667; ++_i671)
+            uint32_t _size671;
+            ::apache::thrift::protocol::TType _etype674;
+            xfer += iprot->readListBegin(_etype674, _size671);
+            this->fileIds.resize(_size671);
+            uint32_t _i675;
+            for (_i675 = 0; _i675 < _size671; ++_i675)
             {
-              xfer += iprot->readI64(this->fileIds[_i671]);
+              xfer += iprot->readI64(this->fileIds[_i675]);
             }
             xfer += iprot->readListEnd();
           }
@@ -15658,10 +15830,10 @@ uint32_t ClearFileMetadataRequest::write(::apache::thrift::protocol::TProtocol*
   xfer += oprot->writeFieldBegin("fileIds", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast<uint32_t>(this->fileIds.size()));
-    std::vector<int64_t> ::const_iterator _iter672;
-    for (_iter672 = this->fileIds.begin(); _iter672 != this->fileIds.end(); ++_iter672)
+    std::vector<int64_t> ::const_iterator _iter676;
+    for (_iter676 = this->fileIds.begin(); _iter676 != this->fileIds.end(); ++_iter676)
     {
-      xfer += oprot->writeI64((*_iter672));
+      xfer += oprot->writeI64((*_iter676));
     }
     xfer += oprot->writeListEnd();
   }
@@ -15677,11 +15849,11 @@ void swap(ClearFileMetadataRequest &a, ClearFileMetadataRequest &b) {
   swap(a.fileIds, b.fileIds);
 }
 
-ClearFileMetadataRequest::ClearFileMetadataRequest(const ClearFileMetadataRequest& other673) {
-  fileIds = other673.fileIds;
+ClearFileMetadataRequest::ClearFileMetadataRequest(const ClearFileMetadataRequest& other677) {
+  fileIds = other677.fileIds;
 }
-ClearFileMetadataRequest& ClearFileMetadataRequest::operator=(const ClearFileMetadataRequest& other674) {
-  fileIds = other674.fileIds;
+ClearFileMetadataRequest& ClearFileMetadataRequest::operator=(const ClearFileMetadataRequest& other678) {
+  fileIds = other678.fileIds;
   return *this;
 }
 void ClearFileMetadataRequest::printTo(std::ostream& out) const {
@@ -15763,11 +15935,11 @@ void swap(CacheFileMetadataResult &a, CacheFileMetadataResult &b) {
   swap(a.isSupported, b.isSupported);
 }
 
-CacheFileMetadataResult::CacheFileMetadataResult(const CacheFileMetadataResult& other675) {
-  isSupported = other675.isSupported;
+CacheFileMetadataResult::CacheFileMetadataResult(const CacheFileMetadataResult& other679) {
+  isSupported = other679.isSupported;
 }
-CacheFileMetadataResult& CacheFileMetadataResult::operator=(const CacheFileMetadataResult& other676) {
-  isSupported = other676.isSupported;
+CacheFileMetadataResult& CacheFileMetadataResult::operator=(const CacheFileMetadataResult& other680) {
+  isSupported = other680.isSupported;
   return *this;
 }
 void CacheFileMetadataResult::printTo(std::ostream& out) const {
@@ -15908,19 +16080,19 @@ void swap(CacheFileMetadataRequest &a, CacheFileMetadataRequest &b) {
   swap(a.__isset, b.__isset);
 }
 
-CacheFileMetadataRequest::CacheFileMetadataRequest(const CacheFileMetadataRequest& other677) {
-  dbName = other677.dbName;
-  tblName = other677.tblName;
-  partName = other677.partName;
-  isAllParts = other677.isAllParts;
-  __isset = other677.__isset;
+CacheFileMetadataRequest::CacheFileMetadataRequest(const CacheFileMetadataRequest& other681) {
+  dbName = other681.dbName;
+  tblName = other681.tblName;
+  partName = other681.partName;
+  isAllParts = other681.isAllParts;
+  __isset = other681.__isset;
 }
-CacheFileMetadataRequest& CacheFileMetadataRequest::operator=(const CacheFileMetadataRequest& other678) {
-  dbName = other678.dbName;
-  tblName = other678.tblName;
-  partName = other678.partName;
-  isAllParts = other678.isAllParts;
-  __isset = other678.__isset;
+CacheFileMetadataRequest& CacheFileMetadataRequest::operator=(const CacheFileMetadataRequest& other682) {
+  dbName = other682.dbName;
+  tblName = other682.tblName;
+  partName = other682.partName;
+  isAllParts = other682.isAllParts;
+  __isset = other682.__isset;
   return *this;
 }
 void CacheFileMetadataRequest::printTo(std::ostream& out) const {
@@ -15968,14 +16140,14 @@ uint32_t GetAllFunctionsResponse::read(::apache::thrift::protocol::TProtocol* ip
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->functions.clear();
-            uint32_t _size679;
-            ::apache::thrift::protocol::TType _etype682;
-            xfer += iprot->readListBegin(_etype682, _size679);
-            this->functions.resize(_size679);
-            uint32_t _i683;
-            for (_i683 = 0; _i683 < _size679; ++_i683)
+            uint32_t _size683;
+            ::apache::thrift::protocol::TType _etype686;
+            xfer += iprot->readListBegin(_etype686, _size683);
+            this->functions.resize(_size683);
+            uint32_t _i687;
+            for (_i687 = 0; _i687 < _size683; ++_i687)
             {
-              xfer += this->functions[_i683].read(iprot);
+              xfer += this->functions[_i687].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -16005,10 +16177,10 @@ uint32_t GetAllFunctionsResponse::write(::apache::thrift::protocol::TProtocol* o
     xfer += oprot->writeFieldBegin("functions", ::apache::thrift::protocol::T_LIST, 1);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->functions.size()));
-      std::vector<Function> ::const_iterator _iter684;
-      for (_iter684 = this->functions.begin(); _iter684 != this->functions.end(); ++_iter684)
+      std::vector<Function> ::const_iterator _iter688;
+      for (_iter688 = this->functions.begin(); _iter688 != this->functions.end(); ++_iter688)
       {
-        xfer += (*_iter684).write(oprot);
+        xfer += (*_iter688).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -16025,13 +16197,13 @@ void swap(GetAllFunctionsResponse &a, GetAllFunctionsResponse &b) {
   swap(a.__isset, b.__isset);
 }
 
-GetAllFunctionsResponse::GetAllFunctionsResponse(const GetAllFunctionsResponse& other685) {
-  functions = other685.functions;
-  __isset = other685.__isset;
+GetAllFunctionsResponse::GetAllFunctionsResponse(const GetAllFunctionsResponse& other689) {
+  functions = other689.functions;
+  __isset = other689.__isset;
 }
-GetAllFunctionsResponse& GetAllFunctionsResponse::operator=(const GetAllFunctionsResponse& other686) {
-  functions = other686.functions;
-  __isset = other686.__isset;
+GetAllFunctionsResponse& GetAllFunctionsResponse::operator=(const GetAllFunctionsResponse& other690) {
+  functions = other690.functions;
+  __isset = other690.__isset;
   return *this;
 }
 void GetAllFunctionsResponse::printTo(std::ostream& out) const {
@@ -16173,19 +16345,19 @@ void swap(TableMeta &a, TableMeta &b) {
   swap(a.__isset, b.__isset);
 }
 
-TableMeta::TableMeta(const TableMeta& other687) {
-  dbName = other687.dbName;
-  tableName = other687.tableName;
-  tableType = other687.tableType;
-  comments = other687.comments;
-  __isset = other687.__isset;
+TableMeta::TableMeta(const TableMeta& other691) {
+  dbName = other691.dbName;
+  tableName = other691.tableName;
+  tableType = other691.tableType;
+  comments = other691.comments;
+  __isset = other691.__isset;
 }
-TableMeta& TableMeta::operator=(const TableMeta& other688) {
-  dbName = other688.dbName;
-  tableName = other688.tableName;
-  tableType = other688.tableType;
-  comments = other688.comments;
-  __isset = other688.__isset;
+TableMeta& TableMeta::operator=(const TableMeta& other692) {
+  dbName = other692.dbName;
+  tableName = other692.tableName;
+  tableType = other692.tableType;
+  comments = other692.comments;
+  __isset = other692.__isset;
   return *this;
 }
 void TableMeta::printTo(std::ostream& out) const {
@@ -16268,13 +16440,13 @@ void swap(MetaException &a, MetaException &b) {
   swap(a.__isset, b.__isset);
 }
 
-MetaException::MetaException(const MetaException& other689) : TException() {
-  message = other689.message;
-  __isset = other689.__isset;
+MetaException::MetaException(const MetaException& other693) : TException() {
+  message = other693.message;
+  __isset = other693.__isset;
 }
-MetaException& MetaException::operator=(const MetaException& other690) {
-  message = other690.message;
-  __isset = other690.__isset;
+MetaException& MetaException::operator=(const MetaException& other694) {
+  message = other694.message;
+  __isset = other694.__isset;
   return *this;
 }
 void MetaException::printTo(std::ostream& out) const {
@@ -16365,13 +16537,13 @@ void swap(UnknownTableException &a, UnknownTableException &b) {
   swap(a.__isset, b.__isset);
 }
 
-UnknownTableException::UnknownTableException(const UnknownTableException& other691) : TException() {
-  message = other691.message;
-  __isset = other691.__isset;
+UnknownTableException::UnknownTableException(const UnknownTableException& other695) : TException() {
+  message = other695.message;
+  __isset = other695.__isset;
 }
-UnknownTableException& UnknownTableException::operator=(const UnknownTableException& other692) {
-  message = other692.message;
-  __isset = other692.__isset;
+UnknownTableException& UnknownTableException::operator=(const UnknownTableException& other696) {
+  message = other696.message;
+  __isset = other696.__isset;
   return *this;
 }
 void UnknownTableException::printTo(std::ostream& out) const {
@@ -16462,13 +16634,13 @@ void swap(UnknownDBException &a, UnknownDBException &b) {
   swap(a.__isset, b.__isset);
 }
 
-UnknownDBException::UnknownDBException(const UnknownDBException& other693) : TException() {
-  message = other693.message;
-  __isset = other693.__isset;
+UnknownDBException::UnknownDBException(const UnknownDBException& other697) : TException() {
+  message = other697.message;
+  __isset = other697.__isset;
 }
-UnknownDBException& UnknownDBException::operator=(const UnknownDBException& other694) {
-  message = other694.message;
-  __isset = other694.__isset;
+UnknownDBException& UnknownDBException::operator=(const UnknownDBException& other698) {
+  message = other698.message;
+  __isset = other698.__isset;
   return *this;
 }
 void UnknownDBException::printTo(std::ostream& out) const {
@@ -16559,13 +16731,13 @@ void swap(AlreadyExistsException &a, AlreadyExistsException &b) {
   swap(a.__isset, b.__isset);
 }
 
-AlreadyExistsException::AlreadyExistsException(const AlreadyExistsException& other695) : TException() {
-  message = other695.message;
-  __isset = other695.__isset;
+AlreadyExistsException::AlreadyExistsException(const AlreadyExistsException& other699) : TException() {
+  message = other699.message;
+  __isset = other699.__isset;
 }
-AlreadyExistsException& AlreadyExistsException::operator=(const AlreadyExistsException& other696) {
-  message = other696.message;
-  __isset = other696.__isset;
+AlreadyExistsException& AlreadyExistsException::operator=(const AlreadyExistsException& other700) {
+  message = other700.message;
+  __isset = other700.__isset;
   return *this;
 }
 void AlreadyExistsException::printTo(std::ostream& out) const {
@@ -16656,13 +16828,13 @@ void swap(InvalidPartitionException &a, InvalidPartitionException &b) {
   swap(a.__isset, b.__isset);
 }
 
-InvalidPartitionException::InvalidPartitionException(const InvalidPartitionException& other697) : TException() {
-  message = other697.message;
-  __isset = other697.__isset;
+InvalidPartitionException::InvalidPartitionException(const InvalidPartitionException& other701) : TException() {
+  message = other701.message;
+  __isset = other701.__isset;
 }
-InvalidPartitionException& InvalidPartitionException::operator=(const InvalidPartitionException& other698) {
-  message = other698.message;
-  __isset = other698.__isset;
+InvalidPartitionException& InvalidPartitionException::operator=(const InvalidPartitionException& other702) {
+  message = other702.message;
+  __isset = other702.__isset;
   return *this;
 }
 void InvalidPartitionException::printTo(std::ostream& out) const {
@@ -16753,13 +16925,13 @@ void swap(UnknownPartitionException &a, UnknownPartitionException &b) {
   swap(a.__isset, b.__isset);
 }
 
-UnknownPartitionException::UnknownPartitionException(const UnknownPartitionException& other699) : TException() {
-  message = other699.message;
-  __isset = other699.__isset;
+UnknownPartitionException::UnknownPartitionException(const UnknownPartitionException& other703) : TException() {
+  message = other703.message;
+  __isset = other703.__isset;
 }
-UnknownPartitionException& UnknownPartitionException::operator=(const UnknownPartitionException& other700) {
-  message = other700.message;
-  __isset = other700.__isset;
+UnknownPartitionException& UnknownPartitionException::operator=(const UnknownPartitionException& other704) {
+  message = other704.message;
+  __isset = other704.__isset;
   return *this;
 }
 void UnknownPartitionException::printTo(std::ostream& out) const {
@@ -16850,13 +17022,13 @@ void swap(InvalidObjectException &a, InvalidObjectException &b) {
   swap(a.__isset, b.__isset);
 }
 
-InvalidObjectException::InvalidObjectException(const InvalidObjectException& other701) : TException() {
-  message = other701.message;
-  __isset = other701.__isset;
+InvalidObjectException::InvalidObjectException(const InvalidObjectException& other705) : TException() {
+  message = other705.message;
+  __isset = other705.__isset;
 }
-InvalidObjectException& InvalidObjectException::operator=(const InvalidObjectException& other702) {
-  message = other702.message;
-  __isset = other702.__isset;
+InvalidObjectException& InvalidObjectException::operator=(const InvalidObjectException& other706) {
+  message = other706.message;
+  __isset = other706.__isset;
   return *this;
 }
 void InvalidObjectException::printTo(std::ostream& out) const {
@@ -16947,13 +17119,13 @@ void swap(NoSuchObjectException &a, NoSuchObjectException &b) {
   swap(a.__isset, b.__isset);
 }
 
-NoSuchObjectException::NoSuchObjectException(const NoSuchObjectException& other703) : TException() {
-  message = other703.message;
-  __isset = other703.__isset;
+NoSuchObjectException::NoSuchObjectException(const NoSuchObjectException& other707) : TException() {
+  message = other707.message;
+  __isset = other707.__isset;
 }
-NoSuchObjectException& NoSuchObjectException::operator=(const NoSuchObjectException& other704) {
-  message = other704.message;
-  __isset = other704.__isset;
+NoSuchObjectException& NoSuchObjectException::operator=(const NoSuchObjectException& other708) {
+  message = other708.message;
+  __isset = other708.__isset;
   return *this;
 }
 void NoSuchObjectException::printTo(std::ostream& out) const {
@@ -17044,13 +17216,13 @@ void swap(IndexAlreadyExistsException &a, IndexAlreadyExistsException &b) {
   swap(a.__isset, b.__isset);
 }
 
-IndexAlreadyExistsException::IndexAlreadyExistsException(const IndexAlreadyExistsException& other705) : TException() {
-  message = other705.message;
-  __isset = other705.__isset;
+IndexAlreadyExistsException::IndexAlreadyExistsException(const IndexAlreadyExistsException& other709) : TException() {
+  message = other709.message;
+  __isset = other709.__isset;
 }
-IndexAlreadyExistsException& IndexAlreadyExistsException::operator=(const IndexAlreadyExistsException& other706) {
-  message = other706.message;
-  __isset = other706.__isset;
+IndexAlreadyExistsException& IndexAlreadyExistsException::operator=(const IndexAlreadyExistsException& other710) {
+  message = other710.message;
+  __isset = other710.__isset;
   return *this;
 }
 void IndexAlreadyExistsException::printTo(std::ostream& out) const {
@@ -17141,13 +17313,13 @@ void swap(InvalidOperationException &a, InvalidOperationException &b) {
   swap(a.__isset, b.__isset);
 }
 
-InvalidOperationException::InvalidOperationException(const InvalidOperationException& other707) : TException() {
-  message = other707.message;
-  __isset = other707.__isset;
+InvalidOperationException::InvalidOperationException(const InvalidOperationException& other711) : TException() {
+  message = other711.message;
+  __isset = other711.__isset;
 }
-InvalidOperationException& InvalidOperationException::operator=(const InvalidOperationException& other708) {
-  message = other708.message;
-  __isset = other708.__isset;
+InvalidOperationException& InvalidOperationException::operator=(const InvalidOperationException& other712) {
+  message = other712.message;
+  __isset = other712.__isset;
   return *this;
 }
 void InvalidOperationException::printTo(std::ostream& out) const {
@@ -17238,13 +17410,13 @@ void swap(ConfigValSecurityException &a, ConfigValSecurityException &b) {
   swap(a.__isset, b.__isset);
 }
 
-ConfigValSecurityException::ConfigValSecurityException(const ConfigValSecurityException& other709) : TException() {
-  message = other709.message;
-  __isset = other709.__isset;
+ConfigValSecurityException::ConfigValSecurityException(const ConfigValSecurityException& other713) : TException() {
+  message = other713.message;
+  __isset = other713.__isset;
 }
-ConfigValSecurityException& ConfigValSecurityException::operator=(const ConfigValSecurityException& other710) {
-  message = other710.message;
-  __isset = other710.__isset;
+ConfigValSecurityException& ConfigValSecurityException::operator=(const ConfigValSecurityException& other714) {
+  message = other714.message;
+  __isset = other714.__isset;
   return *this;
 }
 void ConfigValSecurityException::printTo(std::ostream& out) const {
@@ -17335,13 +17507,13 @@ void swap(InvalidInputException &a, InvalidInputException &b) {
   swap(a.__isset, b.__isset);
 }
 
-InvalidInputException::InvalidInputException(const InvalidInputException& other711) : TException() {
-  message = other711.message;
-  __isset = other711.__isset;
+InvalidInputException::InvalidInputException(const InvalidInputException& other715) : TException() {
+  message = other715.message;
+  __isset = other715.__isset;
 }
-InvalidInputException& InvalidInputException::operator=(const InvalidInputException& other712) {
-  message = other712.message;
-  __isset = other712.__isset;
+InvalidInputException& InvalidInputException::operator=(const InvalidInputException& other716) {
+  message = other716.message;
+  __isset = other716.__isset;
   return *this;
 }
 void InvalidInputException::printTo(std::ostream& out) const {
@@ -17432,13 +17604,13 @@ void swap(NoSuchTxnException &a, NoSuchTxnException &b) {
   swap(a.__isset, b.__isset);
 }
 
-NoSuchTxnException::NoSuchTxnException(const NoSuchTxnException& other713) : TException() {
-  message = other713.message;
-  __isset = other713.__isset;
+NoSuchTxnException::NoSuchTxnException(const NoSuchTxnException& other717) : TException() {
+  message = other717.message;
+  __isset = other717.__isset;
 }
-NoSuchTxnException& NoSuchTxnException::operator=(const NoSuchTxnException& other714) {
-  message = other714.message;
-  __isset = other714.__isset;
+NoSuchTxnException& NoSuchTxnException::operator=(const NoSuchTxnException& other718) {
+  message = other718.message;
+  __isset = other718.__isset;
   return *this;
 }
 void NoSuchTxnException::printTo(std::ostream& out) const {
@@ -17529,13 +17701,13 @@ void swap(TxnAbortedException &a, TxnAbortedException &b) {
   swap(a.__isset, b.__isset);
 }
 
-TxnAbortedException::TxnAbortedException(const TxnAbortedException& other715) : TException() {
-  message = other715.message;
-  __isset = other715.__isset;
+TxnAbortedException::TxnAbortedException(const TxnAbortedException& other719) : TException() {
+  message = other719.message;
+  __isset = other719.__isset;
 }
-TxnAbortedException& TxnAbortedException::operator=(const TxnAbortedException& other716) {
-  message = other716.message;
-  __isset = other716.__isset;
+TxnAbortedException& TxnAbortedException::operator=(const TxnAbortedException& other720) {
+  message = other720.message;
+  __isset = other720.__isset;
   return *this;
 }
 void TxnAbortedException::printTo(std::ostream& out) const {
@@ -17626,13 +17798,13 @@ void swap(TxnOpenException &a, TxnOpenException &b) {
   swap(a.__isset, b.__isset);
 }
 
-TxnOpenException::TxnOpenException(const TxnOpenException& other717) : TException() {
-  message = other717.message;
-  __isset = other717.__isset;
+TxnOpenException::TxnOpenException(const TxnOpenException& other721) : TException() {
+  message = other721.message;
+  __isset = other721.__isset;
 }
-TxnOpenException& TxnOpenException::operator=(const TxnOpenException& other718) {
-  message = other718.message;
-  __isset = other718.__isset;
+TxnOpenException& TxnOpenException::operator=(const TxnOpenException& other722) {
+  message = other722.message;
+  __isset = other722.__isset;
   return *this;
 }
 void TxnOpenException::printTo(std::ostream& out) const {
@@ -17723,13 +17895,13 @@ void swap(NoSuchLockException &a, NoSuchLockException &b) {
   swap(a.__isset, b.__isset);
 }
 
-NoSuchLockException::NoSuchLockException(const NoSuchLockException& other719) : TException() {
-  message = other719.message;
-  __isset = other719.__isset;
+NoSuchLockException::NoSuchLockException(const NoSuchLockException& other723) : TException() {
+  message = other723.message;
+  __isset = other723.__isset;
 }
-NoSuchLockException& NoSuchLockException::operator=(const NoSuchLockException& other720) {
-  message = other720.message;
-  __isset = other720.__isset;
+NoSuchLockException& NoSuchLockException::operator=(const NoSuchLockException& other724) {
+  message = other724.message;
+  __isset = other724.__isset;
   return *this;
 }
 void NoSuchLockException::printTo(std::ostream& out) const {

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
index c501ac0..97c07a5 100644
--- a/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
+++ b/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
@@ -329,6 +329,10 @@ class FireEventRequest;
 
 class FireEventResponse;
 
+class GetChangeVersionRequest;
+
+class GetChangeVersionResult;
+
 class MetadataPpdResult;
 
 class GetFileMetadataByExprResult;
@@ -5960,6 +5964,86 @@ inline std::ostream& operator<<(std::ostream& out, const FireEventResponse& obj)
   return out;
 }
 
+
+class GetChangeVersionRequest {
+ public:
+
+  GetChangeVersionRequest(const GetChangeVersionRequest&);
+  GetChangeVersionRequest& operator=(const GetChangeVersionRequest&);
+  GetChangeVersionRequest() : topic() {
+  }
+
+  virtual ~GetChangeVersionRequest() throw();
+  std::string topic;
+
+  void __set_topic(const std::string& val);
+
+  bool operator == (const GetChangeVersionRequest & rhs) const
+  {
+    if (!(topic == rhs.topic))
+      return false;
+    return true;
+  }
+  bool operator != (const GetChangeVersionRequest &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const GetChangeVersionRequest & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(GetChangeVersionRequest &a, GetChangeVersionRequest &b);
+
+inline std::ostream& operator<<(std::ostream& out, const GetChangeVersionRequest& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
+
+class GetChangeVersionResult {
+ public:
+
+  GetChangeVersionResult(const GetChangeVersionResult&);
+  GetChangeVersionResult& operator=(const GetChangeVersionResult&);
+  GetChangeVersionResult() : version(0) {
+  }
+
+  virtual ~GetChangeVersionResult() throw();
+  int64_t version;
+
+  void __set_version(const int64_t val);
+
+  bool operator == (const GetChangeVersionResult & rhs) const
+  {
+    if (!(version == rhs.version))
+      return false;
+    return true;
+  }
+  bool operator != (const GetChangeVersionResult &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const GetChangeVersionResult & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+  virtual void printTo(std::ostream& out) const;
+};
+
+void swap(GetChangeVersionResult &a, GetChangeVersionResult &b);
+
+inline std::ostream& operator<<(std::ostream& out, const GetChangeVersionResult& obj)
+{
+  obj.printTo(out);
+  return out;
+}
+
 typedef struct _MetadataPpdResult__isset {
   _MetadataPpdResult__isset() : metadata(false), includeBitset(false) {}
   bool metadata :1;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionRequest.java
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionRequest.java b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionRequest.java
new file mode 100644
index 0000000..0215256
--- /dev/null
+++ b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionRequest.java
@@ -0,0 +1,388 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.hadoop.hive.metastore.api;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class GetChangeVersionRequest implements org.apache.thrift.TBase<GetChangeVersionRequest, GetChangeVersionRequest._Fields>, java.io.Serializable, Cloneable, Comparable<GetChangeVersionRequest> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GetChangeVersionRequest");
+
+  private static final org.apache.thrift.protocol.TField TOPIC_FIELD_DESC = new org.apache.thrift.protocol.TField("topic", org.apache.thrift.protocol.TType.STRING, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GetChangeVersionRequestStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GetChangeVersionRequestTupleSchemeFactory());
+  }
+
+  private String topic; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    TOPIC((short)1, "topic");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // TOPIC
+          return TOPIC;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.TOPIC, new org.apache.thrift.meta_data.FieldMetaData("topic", org.apache.thrift.TFieldRequirementType.REQUIRED,
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GetChangeVersionRequest.class, metaDataMap);
+  }
+
+  public GetChangeVersionRequest() {
+  }
+
+  public GetChangeVersionRequest(
+    String topic)
+  {
+    this();
+    this.topic = topic;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GetChangeVersionRequest(GetChangeVersionRequest other) {
+    if (other.isSetTopic()) {
+      this.topic = other.topic;
+    }
+  }
+
+  public GetChangeVersionRequest deepCopy() {
+    return new GetChangeVersionRequest(this);
+  }
+
+  @Override
+  public void clear() {
+    this.topic = null;
+  }
+
+  public String getTopic() {
+    return this.topic;
+  }
+
+  public void setTopic(String topic) {
+    this.topic = topic;
+  }
+
+  public void unsetTopic() {
+    this.topic = null;
+  }
+
+  /** Returns true if field topic is set (has been assigned a value) and false otherwise */
+  public boolean isSetTopic() {
+    return this.topic != null;
+  }
+
+  public void setTopicIsSet(boolean value) {
+    if (!value) {
+      this.topic = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case TOPIC:
+      if (value == null) {
+        unsetTopic();
+      } else {
+        setTopic((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case TOPIC:
+      return getTopic();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case TOPIC:
+      return isSetTopic();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GetChangeVersionRequest)
+      return this.equals((GetChangeVersionRequest)that);
+    return false;
+  }
+
+  public boolean equals(GetChangeVersionRequest that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_topic = true && this.isSetTopic();
+    boolean that_present_topic = true && that.isSetTopic();
+    if (this_present_topic || that_present_topic) {
+      if (!(this_present_topic && that_present_topic))
+        return false;
+      if (!this.topic.equals(that.topic))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_topic = true && (isSetTopic());
+    list.add(present_topic);
+    if (present_topic)
+      list.add(topic);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(GetChangeVersionRequest other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetTopic()).compareTo(other.isSetTopic());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTopic()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.topic, other.topic);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("GetChangeVersionRequest(");
+    boolean first = true;
+
+    sb.append("topic:");
+    if (this.topic == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.topic);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetTopic()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'topic' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class GetChangeVersionRequestStandardSchemeFactory implements SchemeFactory {
+    public GetChangeVersionRequestStandardScheme getScheme() {
+      return new GetChangeVersionRequestStandardScheme();
+    }
+  }
+
+  private static class GetChangeVersionRequestStandardScheme extends StandardScheme<GetChangeVersionRequest> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GetChangeVersionRequest struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // TOPIC
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.topic = iprot.readString();
+              struct.setTopicIsSet(true);
+            } else {
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GetChangeVersionRequest struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.topic != null) {
+        oprot.writeFieldBegin(TOPIC_FIELD_DESC);
+        oprot.writeString(struct.topic);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GetChangeVersionRequestTupleSchemeFactory implements SchemeFactory {
+    public GetChangeVersionRequestTupleScheme getScheme() {
+      return new GetChangeVersionRequestTupleScheme();
+    }
+  }
+
+  private static class GetChangeVersionRequestTupleScheme extends TupleScheme<GetChangeVersionRequest> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GetChangeVersionRequest struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.topic);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GetChangeVersionRequest struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.topic = iprot.readString();
+      struct.setTopicIsSet(true);
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionResult.java
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionResult.java b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionResult.java
new file mode 100644
index 0000000..2b3f73d
--- /dev/null
+++ b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetChangeVersionResult.java
@@ -0,0 +1,386 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.hadoop.hive.metastore.api;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class GetChangeVersionResult implements org.apache.thrift.TBase<GetChangeVersionResult, GetChangeVersionResult._Fields>, java.io.Serializable, Cloneable, Comparable<GetChangeVersionResult> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GetChangeVersionResult");
+
+  private static final org.apache.thrift.protocol.TField VERSION_FIELD_DESC = new org.apache.thrift.protocol.TField("version", org.apache.thrift.protocol.TType.I64, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new GetChangeVersionResultStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new GetChangeVersionResultTupleSchemeFactory());
+  }
+
+  private long version; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    VERSION((short)1, "version");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // VERSION
+          return VERSION;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  private static final int __VERSION_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.VERSION, new org.apache.thrift.meta_data.FieldMetaData("version", org.apache.thrift.TFieldRequirementType.REQUIRED,
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GetChangeVersionResult.class, metaDataMap);
+  }
+
+  public GetChangeVersionResult() {
+  }
+
+  public GetChangeVersionResult(
+    long version)
+  {
+    this();
+    this.version = version;
+    setVersionIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public GetChangeVersionResult(GetChangeVersionResult other) {
+    __isset_bitfield = other.__isset_bitfield;
+    this.version = other.version;
+  }
+
+  public GetChangeVersionResult deepCopy() {
+    return new GetChangeVersionResult(this);
+  }
+
+  @Override
+  public void clear() {
+    setVersionIsSet(false);
+    this.version = 0;
+  }
+
+  public long getVersion() {
+    return this.version;
+  }
+
+  public void setVersion(long version) {
+    this.version = version;
+    setVersionIsSet(true);
+  }
+
+  public void unsetVersion() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __VERSION_ISSET_ID);
+  }
+
+  /** Returns true if field version is set (has been assigned a value) and false otherwise */
+  public boolean isSetVersion() {
+    return EncodingUtils.testBit(__isset_bitfield, __VERSION_ISSET_ID);
+  }
+
+  public void setVersionIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __VERSION_ISSET_ID, value);
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case VERSION:
+      if (value == null) {
+        unsetVersion();
+      } else {
+        setVersion((Long)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case VERSION:
+      return getVersion();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case VERSION:
+      return isSetVersion();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof GetChangeVersionResult)
+      return this.equals((GetChangeVersionResult)that);
+    return false;
+  }
+
+  public boolean equals(GetChangeVersionResult that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_version = true;
+    boolean that_present_version = true;
+    if (this_present_version || that_present_version) {
+      if (!(this_present_version && that_present_version))
+        return false;
+      if (this.version != that.version)
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_version = true;
+    list.add(present_version);
+    if (present_version)
+      list.add(version);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(GetChangeVersionResult other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = Boolean.valueOf(isSetVersion()).compareTo(other.isSetVersion());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetVersion()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.version, other.version);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("GetChangeVersionResult(");
+    boolean first = true;
+
+    sb.append("version:");
+    sb.append(this.version);
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    if (!isSetVersion()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'version' is unset! Struct:" + toString());
+    }
+
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class GetChangeVersionResultStandardSchemeFactory implements SchemeFactory {
+    public GetChangeVersionResultStandardScheme getScheme() {
+      return new GetChangeVersionResultStandardScheme();
+    }
+  }
+
+  private static class GetChangeVersionResultStandardScheme extends StandardScheme<GetChangeVersionResult> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, GetChangeVersionResult struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // VERSION
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.version = iprot.readI64();
+              struct.setVersionIsSet(true);
+            } else {
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, GetChangeVersionResult struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(VERSION_FIELD_DESC);
+      oprot.writeI64(struct.version);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class GetChangeVersionResultTupleSchemeFactory implements SchemeFactory {
+    public GetChangeVersionResultTupleScheme getScheme() {
+      return new GetChangeVersionResultTupleScheme();
+    }
+  }
+
+  private static class GetChangeVersionResultTupleScheme extends TupleScheme<GetChangeVersionResult> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, GetChangeVersionResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeI64(struct.version);
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, GetChangeVersionResult struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.version = iprot.readI64();
+      struct.setVersionIsSet(true);
+    }
+  }
+
+}


[4/5] hive git commit: HIVE-12892 : Add global change versioning to permanent functions in metastore (Sergey Shelukhin, reviewed by Alan Gates)

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
index 7c530b2..9c6d121 100644
--- a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
+++ b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
@@ -1240,14 +1240,14 @@ uint32_t ThriftHiveMetastore_get_databases_result::read(::apache::thrift::protoc
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size721;
-            ::apache::thrift::protocol::TType _etype724;
-            xfer += iprot->readListBegin(_etype724, _size721);
-            this->success.resize(_size721);
-            uint32_t _i725;
-            for (_i725 = 0; _i725 < _size721; ++_i725)
+            uint32_t _size725;
+            ::apache::thrift::protocol::TType _etype728;
+            xfer += iprot->readListBegin(_etype728, _size725);
+            this->success.resize(_size725);
+            uint32_t _i729;
+            for (_i729 = 0; _i729 < _size725; ++_i729)
             {
-              xfer += iprot->readString(this->success[_i725]);
+              xfer += iprot->readString(this->success[_i729]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1286,10 +1286,10 @@ uint32_t ThriftHiveMetastore_get_databases_result::write(::apache::thrift::proto
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter726;
-      for (_iter726 = this->success.begin(); _iter726 != this->success.end(); ++_iter726)
+      std::vector<std::string> ::const_iterator _iter730;
+      for (_iter730 = this->success.begin(); _iter730 != this->success.end(); ++_iter730)
       {
-        xfer += oprot->writeString((*_iter726));
+        xfer += oprot->writeString((*_iter730));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1334,14 +1334,14 @@ uint32_t ThriftHiveMetastore_get_databases_presult::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size727;
-            ::apache::thrift::protocol::TType _etype730;
-            xfer += iprot->readListBegin(_etype730, _size727);
-            (*(this->success)).resize(_size727);
-            uint32_t _i731;
-            for (_i731 = 0; _i731 < _size727; ++_i731)
+            uint32_t _size731;
+            ::apache::thrift::protocol::TType _etype734;
+            xfer += iprot->readListBegin(_etype734, _size731);
+            (*(this->success)).resize(_size731);
+            uint32_t _i735;
+            for (_i735 = 0; _i735 < _size731; ++_i735)
             {
-              xfer += iprot->readString((*(this->success))[_i731]);
+              xfer += iprot->readString((*(this->success))[_i735]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1458,14 +1458,14 @@ uint32_t ThriftHiveMetastore_get_all_databases_result::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size732;
-            ::apache::thrift::protocol::TType _etype735;
-            xfer += iprot->readListBegin(_etype735, _size732);
-            this->success.resize(_size732);
-            uint32_t _i736;
-            for (_i736 = 0; _i736 < _size732; ++_i736)
+            uint32_t _size736;
+            ::apache::thrift::protocol::TType _etype739;
+            xfer += iprot->readListBegin(_etype739, _size736);
+            this->success.resize(_size736);
+            uint32_t _i740;
+            for (_i740 = 0; _i740 < _size736; ++_i740)
             {
-              xfer += iprot->readString(this->success[_i736]);
+              xfer += iprot->readString(this->success[_i740]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1504,10 +1504,10 @@ uint32_t ThriftHiveMetastore_get_all_databases_result::write(::apache::thrift::p
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter737;
-      for (_iter737 = this->success.begin(); _iter737 != this->success.end(); ++_iter737)
+      std::vector<std::string> ::const_iterator _iter741;
+      for (_iter741 = this->success.begin(); _iter741 != this->success.end(); ++_iter741)
       {
-        xfer += oprot->writeString((*_iter737));
+        xfer += oprot->writeString((*_iter741));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1552,14 +1552,14 @@ uint32_t ThriftHiveMetastore_get_all_databases_presult::read(::apache::thrift::p
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size738;
-            ::apache::thrift::protocol::TType _etype741;
-            xfer += iprot->readListBegin(_etype741, _size738);
-            (*(this->success)).resize(_size738);
-            uint32_t _i742;
-            for (_i742 = 0; _i742 < _size738; ++_i742)
+            uint32_t _size742;
+            ::apache::thrift::protocol::TType _etype745;
+            xfer += iprot->readListBegin(_etype745, _size742);
+            (*(this->success)).resize(_size742);
+            uint32_t _i746;
+            for (_i746 = 0; _i746 < _size742; ++_i746)
             {
-              xfer += iprot->readString((*(this->success))[_i742]);
+              xfer += iprot->readString((*(this->success))[_i746]);
             }
             xfer += iprot->readListEnd();
           }
@@ -2621,17 +2621,17 @@ uint32_t ThriftHiveMetastore_get_type_all_result::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->success.clear();
-            uint32_t _size743;
-            ::apache::thrift::protocol::TType _ktype744;
-            ::apache::thrift::protocol::TType _vtype745;
-            xfer += iprot->readMapBegin(_ktype744, _vtype745, _size743);
-            uint32_t _i747;
-            for (_i747 = 0; _i747 < _size743; ++_i747)
+            uint32_t _size747;
+            ::apache::thrift::protocol::TType _ktype748;
+            ::apache::thrift::protocol::TType _vtype749;
+            xfer += iprot->readMapBegin(_ktype748, _vtype749, _size747);
+            uint32_t _i751;
+            for (_i751 = 0; _i751 < _size747; ++_i751)
             {
-              std::string _key748;
-              xfer += iprot->readString(_key748);
-              Type& _val749 = this->success[_key748];
-              xfer += _val749.read(iprot);
+              std::string _key752;
+              xfer += iprot->readString(_key752);
+              Type& _val753 = this->success[_key752];
+              xfer += _val753.read(iprot);
             }
             xfer += iprot->readMapEnd();
           }
@@ -2670,11 +2670,11 @@ uint32_t ThriftHiveMetastore_get_type_all_result::write(::apache::thrift::protoc
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0);
     {
       xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::map<std::string, Type> ::const_iterator _iter750;
-      for (_iter750 = this->success.begin(); _iter750 != this->success.end(); ++_iter750)
+      std::map<std::string, Type> ::const_iterator _iter754;
+      for (_iter754 = this->success.begin(); _iter754 != this->success.end(); ++_iter754)
       {
-        xfer += oprot->writeString(_iter750->first);
-        xfer += _iter750->second.write(oprot);
+        xfer += oprot->writeString(_iter754->first);
+        xfer += _iter754->second.write(oprot);
       }
       xfer += oprot->writeMapEnd();
     }
@@ -2719,17 +2719,17 @@ uint32_t ThriftHiveMetastore_get_type_all_presult::read(::apache::thrift::protoc
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             (*(this->success)).clear();
-            uint32_t _size751;
-            ::apache::thrift::protocol::TType _ktype752;
-            ::apache::thrift::protocol::TType _vtype753;
-            xfer += iprot->readMapBegin(_ktype752, _vtype753, _size751);
-            uint32_t _i755;
-            for (_i755 = 0; _i755 < _size751; ++_i755)
+            uint32_t _size755;
+            ::apache::thrift::protocol::TType _ktype756;
+            ::apache::thrift::protocol::TType _vtype757;
+            xfer += iprot->readMapBegin(_ktype756, _vtype757, _size755);
+            uint32_t _i759;
+            for (_i759 = 0; _i759 < _size755; ++_i759)
             {
-              std::string _key756;
-              xfer += iprot->readString(_key756);
-              Type& _val757 = (*(this->success))[_key756];
-              xfer += _val757.read(iprot);
+              std::string _key760;
+              xfer += iprot->readString(_key760);
+              Type& _val761 = (*(this->success))[_key760];
+              xfer += _val761.read(iprot);
             }
             xfer += iprot->readMapEnd();
           }
@@ -2883,14 +2883,14 @@ uint32_t ThriftHiveMetastore_get_fields_result::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size758;
-            ::apache::thrift::protocol::TType _etype761;
-            xfer += iprot->readListBegin(_etype761, _size758);
-            this->success.resize(_size758);
-            uint32_t _i762;
-            for (_i762 = 0; _i762 < _size758; ++_i762)
+            uint32_t _size762;
+            ::apache::thrift::protocol::TType _etype765;
+            xfer += iprot->readListBegin(_etype765, _size762);
+            this->success.resize(_size762);
+            uint32_t _i766;
+            for (_i766 = 0; _i766 < _size762; ++_i766)
             {
-              xfer += this->success[_i762].read(iprot);
+              xfer += this->success[_i766].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2945,10 +2945,10 @@ uint32_t ThriftHiveMetastore_get_fields_result::write(::apache::thrift::protocol
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter763;
-      for (_iter763 = this->success.begin(); _iter763 != this->success.end(); ++_iter763)
+      std::vector<FieldSchema> ::const_iterator _iter767;
+      for (_iter767 = this->success.begin(); _iter767 != this->success.end(); ++_iter767)
       {
-        xfer += (*_iter763).write(oprot);
+        xfer += (*_iter767).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3001,14 +3001,14 @@ uint32_t ThriftHiveMetastore_get_fields_presult::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size764;
-            ::apache::thrift::protocol::TType _etype767;
-            xfer += iprot->readListBegin(_etype767, _size764);
-            (*(this->success)).resize(_size764);
-            uint32_t _i768;
-            for (_i768 = 0; _i768 < _size764; ++_i768)
+            uint32_t _size768;
+            ::apache::thrift::protocol::TType _etype771;
+            xfer += iprot->readListBegin(_etype771, _size768);
+            (*(this->success)).resize(_size768);
+            uint32_t _i772;
+            for (_i772 = 0; _i772 < _size768; ++_i772)
             {
-              xfer += (*(this->success))[_i768].read(iprot);
+              xfer += (*(this->success))[_i772].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3194,14 +3194,14 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::read(::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size769;
-            ::apache::thrift::protocol::TType _etype772;
-            xfer += iprot->readListBegin(_etype772, _size769);
-            this->success.resize(_size769);
-            uint32_t _i773;
-            for (_i773 = 0; _i773 < _size769; ++_i773)
+            uint32_t _size773;
+            ::apache::thrift::protocol::TType _etype776;
+            xfer += iprot->readListBegin(_etype776, _size773);
+            this->success.resize(_size773);
+            uint32_t _i777;
+            for (_i777 = 0; _i777 < _size773; ++_i777)
             {
-              xfer += this->success[_i773].read(iprot);
+              xfer += this->success[_i777].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3256,10 +3256,10 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::write(:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter774;
-      for (_iter774 = this->success.begin(); _iter774 != this->success.end(); ++_iter774)
+      std::vector<FieldSchema> ::const_iterator _iter778;
+      for (_iter778 = this->success.begin(); _iter778 != this->success.end(); ++_iter778)
       {
-        xfer += (*_iter774).write(oprot);
+        xfer += (*_iter778).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3312,14 +3312,14 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_presult::read(:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size775;
-            ::apache::thrift::protocol::TType _etype778;
-            xfer += iprot->readListBegin(_etype778, _size775);
-            (*(this->success)).resize(_size775);
-            uint32_t _i779;
-            for (_i779 = 0; _i779 < _size775; ++_i779)
+            uint32_t _size779;
+            ::apache::thrift::protocol::TType _etype782;
+            xfer += iprot->readListBegin(_etype782, _size779);
+            (*(this->success)).resize(_size779);
+            uint32_t _i783;
+            for (_i783 = 0; _i783 < _size779; ++_i783)
             {
-              xfer += (*(this->success))[_i779].read(iprot);
+              xfer += (*(this->success))[_i783].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3489,14 +3489,14 @@ uint32_t ThriftHiveMetastore_get_schema_result::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size780;
-            ::apache::thrift::protocol::TType _etype783;
-            xfer += iprot->readListBegin(_etype783, _size780);
-            this->success.resize(_size780);
-            uint32_t _i784;
-            for (_i784 = 0; _i784 < _size780; ++_i784)
+            uint32_t _size784;
+            ::apache::thrift::protocol::TType _etype787;
+            xfer += iprot->readListBegin(_etype787, _size784);
+            this->success.resize(_size784);
+            uint32_t _i788;
+            for (_i788 = 0; _i788 < _size784; ++_i788)
             {
-              xfer += this->success[_i784].read(iprot);
+              xfer += this->success[_i788].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3551,10 +3551,10 @@ uint32_t ThriftHiveMetastore_get_schema_result::write(::apache::thrift::protocol
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter785;
-      for (_iter785 = this->success.begin(); _iter785 != this->success.end(); ++_iter785)
+      std::vector<FieldSchema> ::const_iterator _iter789;
+      for (_iter789 = this->success.begin(); _iter789 != this->success.end(); ++_iter789)
       {
-        xfer += (*_iter785).write(oprot);
+        xfer += (*_iter789).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3607,14 +3607,14 @@ uint32_t ThriftHiveMetastore_get_schema_presult::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size786;
-            ::apache::thrift::protocol::TType _etype789;
-            xfer += iprot->readListBegin(_etype789, _size786);
-            (*(this->success)).resize(_size786);
-            uint32_t _i790;
-            for (_i790 = 0; _i790 < _size786; ++_i790)
+            uint32_t _size790;
+            ::apache::thrift::protocol::TType _etype793;
+            xfer += iprot->readListBegin(_etype793, _size790);
+            (*(this->success)).resize(_size790);
+            uint32_t _i794;
+            for (_i794 = 0; _i794 < _size790; ++_i794)
             {
-              xfer += (*(this->success))[_i790].read(iprot);
+              xfer += (*(this->success))[_i794].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3800,14 +3800,14 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::read(::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size791;
-            ::apache::thrift::protocol::TType _etype794;
-            xfer += iprot->readListBegin(_etype794, _size791);
-            this->success.resize(_size791);
-            uint32_t _i795;
-            for (_i795 = 0; _i795 < _size791; ++_i795)
+            uint32_t _size795;
+            ::apache::thrift::protocol::TType _etype798;
+            xfer += iprot->readListBegin(_etype798, _size795);
+            this->success.resize(_size795);
+            uint32_t _i799;
+            for (_i799 = 0; _i799 < _size795; ++_i799)
             {
-              xfer += this->success[_i795].read(iprot);
+              xfer += this->success[_i799].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3862,10 +3862,10 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::write(:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter796;
-      for (_iter796 = this->success.begin(); _iter796 != this->success.end(); ++_iter796)
+      std::vector<FieldSchema> ::const_iterator _iter800;
+      for (_iter800 = this->success.begin(); _iter800 != this->success.end(); ++_iter800)
       {
-        xfer += (*_iter796).write(oprot);
+        xfer += (*_iter800).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3918,14 +3918,14 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_presult::read(:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size797;
-            ::apache::thrift::protocol::TType _etype800;
-            xfer += iprot->readListBegin(_etype800, _size797);
-            (*(this->success)).resize(_size797);
-            uint32_t _i801;
-            for (_i801 = 0; _i801 < _size797; ++_i801)
+            uint32_t _size801;
+            ::apache::thrift::protocol::TType _etype804;
+            xfer += iprot->readListBegin(_etype804, _size801);
+            (*(this->success)).resize(_size801);
+            uint32_t _i805;
+            for (_i805 = 0; _i805 < _size801; ++_i805)
             {
-              xfer += (*(this->success))[_i801].read(iprot);
+              xfer += (*(this->success))[_i805].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -5099,14 +5099,14 @@ uint32_t ThriftHiveMetastore_get_tables_result::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size802;
-            ::apache::thrift::protocol::TType _etype805;
-            xfer += iprot->readListBegin(_etype805, _size802);
-            this->success.resize(_size802);
-            uint32_t _i806;
-            for (_i806 = 0; _i806 < _size802; ++_i806)
+            uint32_t _size806;
+            ::apache::thrift::protocol::TType _etype809;
+            xfer += iprot->readListBegin(_etype809, _size806);
+            this->success.resize(_size806);
+            uint32_t _i810;
+            for (_i810 = 0; _i810 < _size806; ++_i810)
             {
-              xfer += iprot->readString(this->success[_i806]);
+              xfer += iprot->readString(this->success[_i810]);
             }
             xfer += iprot->readListEnd();
           }
@@ -5145,10 +5145,10 @@ uint32_t ThriftHiveMetastore_get_tables_result::write(::apache::thrift::protocol
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter807;
-      for (_iter807 = this->success.begin(); _iter807 != this->success.end(); ++_iter807)
+      std::vector<std::string> ::const_iterator _iter811;
+      for (_iter811 = this->success.begin(); _iter811 != this->success.end(); ++_iter811)
       {
-        xfer += oprot->writeString((*_iter807));
+        xfer += oprot->writeString((*_iter811));
       }
       xfer += oprot->writeListEnd();
     }
@@ -5193,14 +5193,14 @@ uint32_t ThriftHiveMetastore_get_tables_presult::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size808;
-            ::apache::thrift::protocol::TType _etype811;
-            xfer += iprot->readListBegin(_etype811, _size808);
-            (*(this->success)).resize(_size808);
-            uint32_t _i812;
-            for (_i812 = 0; _i812 < _size808; ++_i812)
+            uint32_t _size812;
+            ::apache::thrift::protocol::TType _etype815;
+            xfer += iprot->readListBegin(_etype815, _size812);
+            (*(this->success)).resize(_size812);
+            uint32_t _i816;
+            for (_i816 = 0; _i816 < _size812; ++_i816)
             {
-              xfer += iprot->readString((*(this->success))[_i812]);
+              xfer += iprot->readString((*(this->success))[_i816]);
             }
             xfer += iprot->readListEnd();
           }
@@ -5275,14 +5275,14 @@ uint32_t ThriftHiveMetastore_get_table_meta_args::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->tbl_types.clear();
-            uint32_t _size813;
-            ::apache::thrift::protocol::TType _etype816;
-            xfer += iprot->readListBegin(_etype816, _size813);
-            this->tbl_types.resize(_size813);
-            uint32_t _i817;
-            for (_i817 = 0; _i817 < _size813; ++_i817)
+            uint32_t _size817;
+            ::apache::thrift::protocol::TType _etype820;
+            xfer += iprot->readListBegin(_etype820, _size817);
+            this->tbl_types.resize(_size817);
+            uint32_t _i821;
+            for (_i821 = 0; _i821 < _size817; ++_i821)
             {
-              xfer += iprot->readString(this->tbl_types[_i817]);
+              xfer += iprot->readString(this->tbl_types[_i821]);
             }
             xfer += iprot->readListEnd();
           }
@@ -5319,10 +5319,10 @@ uint32_t ThriftHiveMetastore_get_table_meta_args::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("tbl_types", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->tbl_types.size()));
-    std::vector<std::string> ::const_iterator _iter818;
-    for (_iter818 = this->tbl_types.begin(); _iter818 != this->tbl_types.end(); ++_iter818)
+    std::vector<std::string> ::const_iterator _iter822;
+    for (_iter822 = this->tbl_types.begin(); _iter822 != this->tbl_types.end(); ++_iter822)
     {
-      xfer += oprot->writeString((*_iter818));
+      xfer += oprot->writeString((*_iter822));
     }
     xfer += oprot->writeListEnd();
   }
@@ -5354,10 +5354,10 @@ uint32_t ThriftHiveMetastore_get_table_meta_pargs::write(::apache::thrift::proto
   xfer += oprot->writeFieldBegin("tbl_types", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->tbl_types)).size()));
-    std::vector<std::string> ::const_iterator _iter819;
-    for (_iter819 = (*(this->tbl_types)).begin(); _iter819 != (*(this->tbl_types)).end(); ++_iter819)
+    std::vector<std::string> ::const_iterator _iter823;
+    for (_iter823 = (*(this->tbl_types)).begin(); _iter823 != (*(this->tbl_types)).end(); ++_iter823)
     {
-      xfer += oprot->writeString((*_iter819));
+      xfer += oprot->writeString((*_iter823));
     }
     xfer += oprot->writeListEnd();
   }
@@ -5398,14 +5398,14 @@ uint32_t ThriftHiveMetastore_get_table_meta_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size820;
-            ::apache::thrift::protocol::TType _etype823;
-            xfer += iprot->readListBegin(_etype823, _size820);
-            this->success.resize(_size820);
-            uint32_t _i824;
-            for (_i824 = 0; _i824 < _size820; ++_i824)
+            uint32_t _size824;
+            ::apache::thrift::protocol::TType _etype827;
+            xfer += iprot->readListBegin(_etype827, _size824);
+            this->success.resize(_size824);
+            uint32_t _i828;
+            for (_i828 = 0; _i828 < _size824; ++_i828)
             {
-              xfer += this->success[_i824].read(iprot);
+              xfer += this->success[_i828].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -5444,10 +5444,10 @@ uint32_t ThriftHiveMetastore_get_table_meta_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<TableMeta> ::const_iterator _iter825;
-      for (_iter825 = this->success.begin(); _iter825 != this->success.end(); ++_iter825)
+      std::vector<TableMeta> ::const_iterator _iter829;
+      for (_iter829 = this->success.begin(); _iter829 != this->success.end(); ++_iter829)
       {
-        xfer += (*_iter825).write(oprot);
+        xfer += (*_iter829).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -5492,14 +5492,14 @@ uint32_t ThriftHiveMetastore_get_table_meta_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size826;
-            ::apache::thrift::protocol::TType _etype829;
-            xfer += iprot->readListBegin(_etype829, _size826);
-            (*(this->success)).resize(_size826);
-            uint32_t _i830;
-            for (_i830 = 0; _i830 < _size826; ++_i830)
+            uint32_t _size830;
+            ::apache::thrift::protocol::TType _etype833;
+            xfer += iprot->readListBegin(_etype833, _size830);
+            (*(this->success)).resize(_size830);
+            uint32_t _i834;
+            for (_i834 = 0; _i834 < _size830; ++_i834)
             {
-              xfer += (*(this->success))[_i830].read(iprot);
+              xfer += (*(this->success))[_i834].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -5637,14 +5637,14 @@ uint32_t ThriftHiveMetastore_get_all_tables_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size831;
-            ::apache::thrift::protocol::TType _etype834;
-            xfer += iprot->readListBegin(_etype834, _size831);
-            this->success.resize(_size831);
-            uint32_t _i835;
-            for (_i835 = 0; _i835 < _size831; ++_i835)
+            uint32_t _size835;
+            ::apache::thrift::protocol::TType _etype838;
+            xfer += iprot->readListBegin(_etype838, _size835);
+            this->success.resize(_size835);
+            uint32_t _i839;
+            for (_i839 = 0; _i839 < _size835; ++_i839)
             {
-              xfer += iprot->readString(this->success[_i835]);
+              xfer += iprot->readString(this->success[_i839]);
             }
             xfer += iprot->readListEnd();
           }
@@ -5683,10 +5683,10 @@ uint32_t ThriftHiveMetastore_get_all_tables_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter836;
-      for (_iter836 = this->success.begin(); _iter836 != this->success.end(); ++_iter836)
+      std::vector<std::string> ::const_iterator _iter840;
+      for (_iter840 = this->success.begin(); _iter840 != this->success.end(); ++_iter840)
       {
-        xfer += oprot->writeString((*_iter836));
+        xfer += oprot->writeString((*_iter840));
       }
       xfer += oprot->writeListEnd();
     }
@@ -5731,14 +5731,14 @@ uint32_t ThriftHiveMetastore_get_all_tables_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size837;
-            ::apache::thrift::protocol::TType _etype840;
-            xfer += iprot->readListBegin(_etype840, _size837);
-            (*(this->success)).resize(_size837);
-            uint32_t _i841;
-            for (_i841 = 0; _i841 < _size837; ++_i841)
+            uint32_t _size841;
+            ::apache::thrift::protocol::TType _etype844;
+            xfer += iprot->readListBegin(_etype844, _size841);
+            (*(this->success)).resize(_size841);
+            uint32_t _i845;
+            for (_i845 = 0; _i845 < _size841; ++_i845)
             {
-              xfer += iprot->readString((*(this->success))[_i841]);
+              xfer += iprot->readString((*(this->success))[_i845]);
             }
             xfer += iprot->readListEnd();
           }
@@ -6048,14 +6048,14 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_args::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->tbl_names.clear();
-            uint32_t _size842;
-            ::apache::thrift::protocol::TType _etype845;
-            xfer += iprot->readListBegin(_etype845, _size842);
-            this->tbl_names.resize(_size842);
-            uint32_t _i846;
-            for (_i846 = 0; _i846 < _size842; ++_i846)
+            uint32_t _size846;
+            ::apache::thrift::protocol::TType _etype849;
+            xfer += iprot->readListBegin(_etype849, _size846);
+            this->tbl_names.resize(_size846);
+            uint32_t _i850;
+            for (_i850 = 0; _i850 < _size846; ++_i850)
             {
-              xfer += iprot->readString(this->tbl_names[_i846]);
+              xfer += iprot->readString(this->tbl_names[_i850]);
             }
             xfer += iprot->readListEnd();
           }
@@ -6088,10 +6088,10 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_args::write(::apache::thr
   xfer += oprot->writeFieldBegin("tbl_names", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->tbl_names.size()));
-    std::vector<std::string> ::const_iterator _iter847;
-    for (_iter847 = this->tbl_names.begin(); _iter847 != this->tbl_names.end(); ++_iter847)
+    std::vector<std::string> ::const_iterator _iter851;
+    for (_iter851 = this->tbl_names.begin(); _iter851 != this->tbl_names.end(); ++_iter851)
     {
-      xfer += oprot->writeString((*_iter847));
+      xfer += oprot->writeString((*_iter851));
     }
     xfer += oprot->writeListEnd();
   }
@@ -6119,10 +6119,10 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_pargs::write(::apache::th
   xfer += oprot->writeFieldBegin("tbl_names", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->tbl_names)).size()));
-    std::vector<std::string> ::const_iterator _iter848;
-    for (_iter848 = (*(this->tbl_names)).begin(); _iter848 != (*(this->tbl_names)).end(); ++_iter848)
+    std::vector<std::string> ::const_iterator _iter852;
+    for (_iter852 = (*(this->tbl_names)).begin(); _iter852 != (*(this->tbl_names)).end(); ++_iter852)
     {
-      xfer += oprot->writeString((*_iter848));
+      xfer += oprot->writeString((*_iter852));
     }
     xfer += oprot->writeListEnd();
   }
@@ -6163,14 +6163,14 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_result::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size849;
-            ::apache::thrift::protocol::TType _etype852;
-            xfer += iprot->readListBegin(_etype852, _size849);
-            this->success.resize(_size849);
-            uint32_t _i853;
-            for (_i853 = 0; _i853 < _size849; ++_i853)
+            uint32_t _size853;
+            ::apache::thrift::protocol::TType _etype856;
+            xfer += iprot->readListBegin(_etype856, _size853);
+            this->success.resize(_size853);
+            uint32_t _i857;
+            for (_i857 = 0; _i857 < _size853; ++_i857)
             {
-              xfer += this->success[_i853].read(iprot);
+              xfer += this->success[_i857].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -6225,10 +6225,10 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_result::write(::apache::t
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<Table> ::const_iterator _iter854;
-      for (_iter854 = this->success.begin(); _iter854 != this->success.end(); ++_iter854)
+      std::vector<Table> ::const_iterator _iter858;
+      for (_iter858 = this->success.begin(); _iter858 != this->success.end(); ++_iter858)
       {
-        xfer += (*_iter854).write(oprot);
+        xfer += (*_iter858).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -6281,14 +6281,14 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_presult::read(::apache::t
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size855;
-            ::apache::thrift::protocol::TType _etype858;
-            xfer += iprot->readListBegin(_etype858, _size855);
-            (*(this->success)).resize(_size855);
-            uint32_t _i859;
-            for (_i859 = 0; _i859 < _size855; ++_i859)
+            uint32_t _size859;
+            ::apache::thrift::protocol::TType _etype862;
+            xfer += iprot->readListBegin(_etype862, _size859);
+            (*(this->success)).resize(_size859);
+            uint32_t _i863;
+            for (_i863 = 0; _i863 < _size859; ++_i863)
             {
-              xfer += (*(this->success))[_i859].read(iprot);
+              xfer += (*(this->success))[_i863].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -6474,14 +6474,14 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_result::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size860;
-            ::apache::thrift::protocol::TType _etype863;
-            xfer += iprot->readListBegin(_etype863, _size860);
-            this->success.resize(_size860);
-            uint32_t _i864;
-            for (_i864 = 0; _i864 < _size860; ++_i864)
+            uint32_t _size864;
+            ::apache::thrift::protocol::TType _etype867;
+            xfer += iprot->readListBegin(_etype867, _size864);
+            this->success.resize(_size864);
+            uint32_t _i868;
+            for (_i868 = 0; _i868 < _size864; ++_i868)
             {
-              xfer += iprot->readString(this->success[_i864]);
+              xfer += iprot->readString(this->success[_i868]);
             }
             xfer += iprot->readListEnd();
           }
@@ -6536,10 +6536,10 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_result::write(::apache::t
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter865;
-      for (_iter865 = this->success.begin(); _iter865 != this->success.end(); ++_iter865)
+      std::vector<std::string> ::const_iterator _iter869;
+      for (_iter869 = this->success.begin(); _iter869 != this->success.end(); ++_iter869)
       {
-        xfer += oprot->writeString((*_iter865));
+        xfer += oprot->writeString((*_iter869));
       }
       xfer += oprot->writeListEnd();
     }
@@ -6592,14 +6592,14 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_presult::read(::apache::t
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size866;
-            ::apache::thrift::protocol::TType _etype869;
-            xfer += iprot->readListBegin(_etype869, _size866);
-            (*(this->success)).resize(_size866);
-            uint32_t _i870;
-            for (_i870 = 0; _i870 < _size866; ++_i870)
+            uint32_t _size870;
+            ::apache::thrift::protocol::TType _etype873;
+            xfer += iprot->readListBegin(_etype873, _size870);
+            (*(this->success)).resize(_size870);
+            uint32_t _i874;
+            for (_i874 = 0; _i874 < _size870; ++_i874)
             {
-              xfer += iprot->readString((*(this->success))[_i870]);
+              xfer += iprot->readString((*(this->success))[_i874]);
             }
             xfer += iprot->readListEnd();
           }
@@ -7933,14 +7933,14 @@ uint32_t ThriftHiveMetastore_add_partitions_args::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->new_parts.clear();
-            uint32_t _size871;
-            ::apache::thrift::protocol::TType _etype874;
-            xfer += iprot->readListBegin(_etype874, _size871);
-            this->new_parts.resize(_size871);
-            uint32_t _i875;
-            for (_i875 = 0; _i875 < _size871; ++_i875)
+            uint32_t _size875;
+            ::apache::thrift::protocol::TType _etype878;
+            xfer += iprot->readListBegin(_etype878, _size875);
+            this->new_parts.resize(_size875);
+            uint32_t _i879;
+            for (_i879 = 0; _i879 < _size875; ++_i879)
             {
-              xfer += this->new_parts[_i875].read(iprot);
+              xfer += this->new_parts[_i879].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -7969,10 +7969,10 @@ uint32_t ThriftHiveMetastore_add_partitions_args::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->new_parts.size()));
-    std::vector<Partition> ::const_iterator _iter876;
-    for (_iter876 = this->new_parts.begin(); _iter876 != this->new_parts.end(); ++_iter876)
+    std::vector<Partition> ::const_iterator _iter880;
+    for (_iter880 = this->new_parts.begin(); _iter880 != this->new_parts.end(); ++_iter880)
     {
-      xfer += (*_iter876).write(oprot);
+      xfer += (*_iter880).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -7996,10 +7996,10 @@ uint32_t ThriftHiveMetastore_add_partitions_pargs::write(::apache::thrift::proto
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->new_parts)).size()));
-    std::vector<Partition> ::const_iterator _iter877;
-    for (_iter877 = (*(this->new_parts)).begin(); _iter877 != (*(this->new_parts)).end(); ++_iter877)
+    std::vector<Partition> ::const_iterator _iter881;
+    for (_iter881 = (*(this->new_parts)).begin(); _iter881 != (*(this->new_parts)).end(); ++_iter881)
     {
-      xfer += (*_iter877).write(oprot);
+      xfer += (*_iter881).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -8208,14 +8208,14 @@ uint32_t ThriftHiveMetastore_add_partitions_pspec_args::read(::apache::thrift::p
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->new_parts.clear();
-            uint32_t _size878;
-            ::apache::thrift::protocol::TType _etype881;
-            xfer += iprot->readListBegin(_etype881, _size878);
-            this->new_parts.resize(_size878);
-            uint32_t _i882;
-            for (_i882 = 0; _i882 < _size878; ++_i882)
+            uint32_t _size882;
+            ::apache::thrift::protocol::TType _etype885;
+            xfer += iprot->readListBegin(_etype885, _size882);
+            this->new_parts.resize(_size882);
+            uint32_t _i886;
+            for (_i886 = 0; _i886 < _size882; ++_i886)
             {
-              xfer += this->new_parts[_i882].read(iprot);
+              xfer += this->new_parts[_i886].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -8244,10 +8244,10 @@ uint32_t ThriftHiveMetastore_add_partitions_pspec_args::write(::apache::thrift::
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->new_parts.size()));
-    std::vector<PartitionSpec> ::const_iterator _iter883;
-    for (_iter883 = this->new_parts.begin(); _iter883 != this->new_parts.end(); ++_iter883)
+    std::vector<PartitionSpec> ::const_iterator _iter887;
+    for (_iter887 = this->new_parts.begin(); _iter887 != this->new_parts.end(); ++_iter887)
     {
-      xfer += (*_iter883).write(oprot);
+      xfer += (*_iter887).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -8271,10 +8271,10 @@ uint32_t ThriftHiveMetastore_add_partitions_pspec_pargs::write(::apache::thrift:
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->new_parts)).size()));
-    std::vector<PartitionSpec> ::const_iterator _iter884;
-    for (_iter884 = (*(this->new_parts)).begin(); _iter884 != (*(this->new_parts)).end(); ++_iter884)
+    std::vector<PartitionSpec> ::const_iterator _iter888;
+    for (_iter888 = (*(this->new_parts)).begin(); _iter888 != (*(this->new_parts)).end(); ++_iter888)
     {
-      xfer += (*_iter884).write(oprot);
+      xfer += (*_iter888).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -8499,14 +8499,14 @@ uint32_t ThriftHiveMetastore_append_partition_args::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size885;
-            ::apache::thrift::protocol::TType _etype888;
-            xfer += iprot->readListBegin(_etype888, _size885);
-            this->part_vals.resize(_size885);
-            uint32_t _i889;
-            for (_i889 = 0; _i889 < _size885; ++_i889)
+            uint32_t _size889;
+            ::apache::thrift::protocol::TType _etype892;
+            xfer += iprot->readListBegin(_etype892, _size889);
+            this->part_vals.resize(_size889);
+            uint32_t _i893;
+            for (_i893 = 0; _i893 < _size889; ++_i893)
             {
-              xfer += iprot->readString(this->part_vals[_i889]);
+              xfer += iprot->readString(this->part_vals[_i893]);
             }
             xfer += iprot->readListEnd();
           }
@@ -8543,10 +8543,10 @@ uint32_t ThriftHiveMetastore_append_partition_args::write(::apache::thrift::prot
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
-    std::vector<std::string> ::const_iterator _iter890;
-    for (_iter890 = this->part_vals.begin(); _iter890 != this->part_vals.end(); ++_iter890)
+    std::vector<std::string> ::const_iterator _iter894;
+    for (_iter894 = this->part_vals.begin(); _iter894 != this->part_vals.end(); ++_iter894)
     {
-      xfer += oprot->writeString((*_iter890));
+      xfer += oprot->writeString((*_iter894));
     }
     xfer += oprot->writeListEnd();
   }
@@ -8578,10 +8578,10 @@ uint32_t ThriftHiveMetastore_append_partition_pargs::write(::apache::thrift::pro
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
-    std::vector<std::string> ::const_iterator _iter891;
-    for (_iter891 = (*(this->part_vals)).begin(); _iter891 != (*(this->part_vals)).end(); ++_iter891)
+    std::vector<std::string> ::const_iterator _iter895;
+    for (_iter895 = (*(this->part_vals)).begin(); _iter895 != (*(this->part_vals)).end(); ++_iter895)
     {
-      xfer += oprot->writeString((*_iter891));
+      xfer += oprot->writeString((*_iter895));
     }
     xfer += oprot->writeListEnd();
   }
@@ -9053,14 +9053,14 @@ uint32_t ThriftHiveMetastore_append_partition_with_environment_context_args::rea
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size892;
-            ::apache::thrift::protocol::TType _etype895;
-            xfer += iprot->readListBegin(_etype895, _size892);
-            this->part_vals.resize(_size892);
-            uint32_t _i896;
-            for (_i896 = 0; _i896 < _size892; ++_i896)
+            uint32_t _size896;
+            ::apache::thrift::protocol::TType _etype899;
+            xfer += iprot->readListBegin(_etype899, _size896);
+            this->part_vals.resize(_size896);
+            uint32_t _i900;
+            for (_i900 = 0; _i900 < _size896; ++_i900)
             {
-              xfer += iprot->readString(this->part_vals[_i896]);
+              xfer += iprot->readString(this->part_vals[_i900]);
             }
             xfer += iprot->readListEnd();
           }
@@ -9105,10 +9105,10 @@ uint32_t ThriftHiveMetastore_append_partition_with_environment_context_args::wri
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
-    std::vector<std::string> ::const_iterator _iter897;
-    for (_iter897 = this->part_vals.begin(); _iter897 != this->part_vals.end(); ++_iter897)
+    std::vector<std::string> ::const_iterator _iter901;
+    for (_iter901 = this->part_vals.begin(); _iter901 != this->part_vals.end(); ++_iter901)
     {
-      xfer += oprot->writeString((*_iter897));
+      xfer += oprot->writeString((*_iter901));
     }
     xfer += oprot->writeListEnd();
   }
@@ -9144,10 +9144,10 @@ uint32_t ThriftHiveMetastore_append_partition_with_environment_context_pargs::wr
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
-    std::vector<std::string> ::const_iterator _iter898;
-    for (_iter898 = (*(this->part_vals)).begin(); _iter898 != (*(this->part_vals)).end(); ++_iter898)
+    std::vector<std::string> ::const_iterator _iter902;
+    for (_iter902 = (*(this->part_vals)).begin(); _iter902 != (*(this->part_vals)).end(); ++_iter902)
     {
-      xfer += oprot->writeString((*_iter898));
+      xfer += oprot->writeString((*_iter902));
     }
     xfer += oprot->writeListEnd();
   }
@@ -9950,14 +9950,14 @@ uint32_t ThriftHiveMetastore_drop_partition_args::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size899;
-            ::apache::thrift::protocol::TType _etype902;
-            xfer += iprot->readListBegin(_etype902, _size899);
-            this->part_vals.resize(_size899);
-            uint32_t _i903;
-            for (_i903 = 0; _i903 < _size899; ++_i903)
+            uint32_t _size903;
+            ::apache::thrift::protocol::TType _etype906;
+            xfer += iprot->readListBegin(_etype906, _size903);
+            this->part_vals.resize(_size903);
+            uint32_t _i907;
+            for (_i907 = 0; _i907 < _size903; ++_i907)
             {
-              xfer += iprot->readString(this->part_vals[_i903]);
+              xfer += iprot->readString(this->part_vals[_i907]);
             }
             xfer += iprot->readListEnd();
           }
@@ -10002,10 +10002,10 @@ uint32_t ThriftHiveMetastore_drop_partition_args::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
-    std::vector<std::string> ::const_iterator _iter904;
-    for (_iter904 = this->part_vals.begin(); _iter904 != this->part_vals.end(); ++_iter904)
+    std::vector<std::string> ::const_iterator _iter908;
+    for (_iter908 = this->part_vals.begin(); _iter908 != this->part_vals.end(); ++_iter908)
     {
-      xfer += oprot->writeString((*_iter904));
+      xfer += oprot->writeString((*_iter908));
     }
     xfer += oprot->writeListEnd();
   }
@@ -10041,10 +10041,10 @@ uint32_t ThriftHiveMetastore_drop_partition_pargs::write(::apache::thrift::proto
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
-    std::vector<std::string> ::const_iterator _iter905;
-    for (_iter905 = (*(this->part_vals)).begin(); _iter905 != (*(this->part_vals)).end(); ++_iter905)
+    std::vector<std::string> ::const_iterator _iter909;
+    for (_iter909 = (*(this->part_vals)).begin(); _iter909 != (*(this->part_vals)).end(); ++_iter909)
     {
-      xfer += oprot->writeString((*_iter905));
+      xfer += oprot->writeString((*_iter909));
     }
     xfer += oprot->writeListEnd();
   }
@@ -10253,14 +10253,14 @@ uint32_t ThriftHiveMetastore_drop_partition_with_environment_context_args::read(
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size906;
-            ::apache::thrift::protocol::TType _etype909;
-            xfer += iprot->readListBegin(_etype909, _size906);
-            this->part_vals.resize(_size906);
-            uint32_t _i910;
-            for (_i910 = 0; _i910 < _size906; ++_i910)
+            uint32_t _size910;
+            ::apache::thrift::protocol::TType _etype913;
+            xfer += iprot->readListBegin(_etype913, _size910);
+            this->part_vals.resize(_size910);
+            uint32_t _i914;
+            for (_i914 = 0; _i914 < _size910; ++_i914)
             {
-              xfer += iprot->readString(this->part_vals[_i910]);
+              xfer += iprot->readString(this->part_vals[_i914]);
             }
             xfer += iprot->readListEnd();
           }
@@ -10313,10 +10313,10 @@ uint32_t ThriftHiveMetastore_drop_partition_with_environment_context_args::write
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
-    std::vector<std::string> ::const_iterator _iter911;
-    for (_iter911 = this->part_vals.begin(); _iter911 != this->part_vals.end(); ++_iter911)
+    std::vector<std::string> ::const_iterator _iter915;
+    for (_iter915 = this->part_vals.begin(); _iter915 != this->part_vals.end(); ++_iter915)
     {
-      xfer += oprot->writeString((*_iter911));
+      xfer += oprot->writeString((*_iter915));
     }
     xfer += oprot->writeListEnd();
   }
@@ -10356,10 +10356,10 @@ uint32_t ThriftHiveMetastore_drop_partition_with_environment_context_pargs::writ
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
-    std::vector<std::string> ::const_iterator _iter912;
-    for (_iter912 = (*(this->part_vals)).begin(); _iter912 != (*(this->part_vals)).end(); ++_iter912)
+    std::vector<std::string> ::const_iterator _iter916;
+    for (_iter916 = (*(this->part_vals)).begin(); _iter916 != (*(this->part_vals)).end(); ++_iter916)
     {
-      xfer += oprot->writeString((*_iter912));
+      xfer += oprot->writeString((*_iter916));
     }
     xfer += oprot->writeListEnd();
   }
@@ -11365,14 +11365,14 @@ uint32_t ThriftHiveMetastore_get_partition_args::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size913;
-            ::apache::thrift::protocol::TType _etype916;
-            xfer += iprot->readListBegin(_etype916, _size913);
-            this->part_vals.resize(_size913);
-            uint32_t _i917;
-            for (_i917 = 0; _i917 < _size913; ++_i917)
+            uint32_t _size917;
+            ::apache::thrift::protocol::TType _etype920;
+            xfer += iprot->readListBegin(_etype920, _size917);
+            this->part_vals.resize(_size917);
+            uint32_t _i921;
+            for (_i921 = 0; _i921 < _size917; ++_i921)
             {
-              xfer += iprot->readString(this->part_vals[_i917]);
+              xfer += iprot->readString(this->part_vals[_i921]);
             }
             xfer += iprot->readListEnd();
           }
@@ -11409,10 +11409,10 @@ uint32_t ThriftHiveMetastore_get_partition_args::write(::apache::thrift::protoco
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
-    std::vector<std::string> ::const_iterator _iter918;
-    for (_iter918 = this->part_vals.begin(); _iter918 != this->part_vals.end(); ++_iter918)
+    std::vector<std::string> ::const_iterator _iter922;
+    for (_iter922 = this->part_vals.begin(); _iter922 != this->part_vals.end(); ++_iter922)
     {
-      xfer += oprot->writeString((*_iter918));
+      xfer += oprot->writeString((*_iter922));
     }
     xfer += oprot->writeListEnd();
   }
@@ -11444,10 +11444,10 @@ uint32_t ThriftHiveMetastore_get_partition_pargs::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
-    std::vector<std::string> ::const_iterator _iter919;
-    for (_iter919 = (*(this->part_vals)).begin(); _iter919 != (*(this->part_vals)).end(); ++_iter919)
+    std::vector<std::string> ::const_iterator _iter923;
+    for (_iter923 = (*(this->part_vals)).begin(); _iter923 != (*(this->part_vals)).end(); ++_iter923)
     {
-      xfer += oprot->writeString((*_iter919));
+      xfer += oprot->writeString((*_iter923));
     }
     xfer += oprot->writeListEnd();
   }
@@ -11636,17 +11636,17 @@ uint32_t ThriftHiveMetastore_exchange_partition_args::read(::apache::thrift::pro
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->partitionSpecs.clear();
-            uint32_t _size920;
-            ::apache::thrift::protocol::TType _ktype921;
-            ::apache::thrift::protocol::TType _vtype922;
-            xfer += iprot->readMapBegin(_ktype921, _vtype922, _size920);
-            uint32_t _i924;
-            for (_i924 = 0; _i924 < _size920; ++_i924)
+            uint32_t _size924;
+            ::apache::thrift::protocol::TType _ktype925;
+            ::apache::thrift::protocol::TType _vtype926;
+            xfer += iprot->readMapBegin(_ktype925, _vtype926, _size924);
+            uint32_t _i928;
+            for (_i928 = 0; _i928 < _size924; ++_i928)
             {
-              std::string _key925;
-              xfer += iprot->readString(_key925);
-              std::string& _val926 = this->partitionSpecs[_key925];
-              xfer += iprot->readString(_val926);
+              std::string _key929;
+              xfer += iprot->readString(_key929);
+              std::string& _val930 = this->partitionSpecs[_key929];
+              xfer += iprot->readString(_val930);
             }
             xfer += iprot->readMapEnd();
           }
@@ -11707,11 +11707,11 @@ uint32_t ThriftHiveMetastore_exchange_partition_args::write(::apache::thrift::pr
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->partitionSpecs.size()));
-    std::map<std::string, std::string> ::const_iterator _iter927;
-    for (_iter927 = this->partitionSpecs.begin(); _iter927 != this->partitionSpecs.end(); ++_iter927)
+    std::map<std::string, std::string> ::const_iterator _iter931;
+    for (_iter931 = this->partitionSpecs.begin(); _iter931 != this->partitionSpecs.end(); ++_iter931)
     {
-      xfer += oprot->writeString(_iter927->first);
-      xfer += oprot->writeString(_iter927->second);
+      xfer += oprot->writeString(_iter931->first);
+      xfer += oprot->writeString(_iter931->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -11751,11 +11751,11 @@ uint32_t ThriftHiveMetastore_exchange_partition_pargs::write(::apache::thrift::p
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->partitionSpecs)).size()));
-    std::map<std::string, std::string> ::const_iterator _iter928;
-    for (_iter928 = (*(this->partitionSpecs)).begin(); _iter928 != (*(this->partitionSpecs)).end(); ++_iter928)
+    std::map<std::string, std::string> ::const_iterator _iter932;
+    for (_iter932 = (*(this->partitionSpecs)).begin(); _iter932 != (*(this->partitionSpecs)).end(); ++_iter932)
     {
-      xfer += oprot->writeString(_iter928->first);
-      xfer += oprot->writeString(_iter928->second);
+      xfer += oprot->writeString(_iter932->first);
+      xfer += oprot->writeString(_iter932->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -12000,17 +12000,17 @@ uint32_t ThriftHiveMetastore_exchange_partitions_args::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->partitionSpecs.clear();
-            uint32_t _size929;
-            ::apache::thrift::protocol::TType _ktype930;
-            ::apache::thrift::protocol::TType _vtype931;
-            xfer += iprot->readMapBegin(_ktype930, _vtype931, _size929);
-            uint32_t _i933;
-            for (_i933 = 0; _i933 < _size929; ++_i933)
+            uint32_t _size933;
+            ::apache::thrift::protocol::TType _ktype934;
+            ::apache::thrift::protocol::TType _vtype935;
+            xfer += iprot->readMapBegin(_ktype934, _vtype935, _size933);
+            uint32_t _i937;
+            for (_i937 = 0; _i937 < _size933; ++_i937)
             {
-              std::string _key934;
-              xfer += iprot->readString(_key934);
-              std::string& _val935 = this->partitionSpecs[_key934];
-              xfer += iprot->readString(_val935);
+              std::string _key938;
+              xfer += iprot->readString(_key938);
+              std::string& _val939 = this->partitionSpecs[_key938];
+              xfer += iprot->readString(_val939);
             }
             xfer += iprot->readMapEnd();
           }
@@ -12071,11 +12071,11 @@ uint32_t ThriftHiveMetastore_exchange_partitions_args::write(::apache::thrift::p
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->partitionSpecs.size()));
-    std::map<std::string, std::string> ::const_iterator _iter936;
-    for (_iter936 = this->partitionSpecs.begin(); _iter936 != this->partitionSpecs.end(); ++_iter936)
+    std::map<std::string, std::string> ::const_iterator _iter940;
+    for (_iter940 = this->partitionSpecs.begin(); _iter940 != this->partitionSpecs.end(); ++_iter940)
     {
-      xfer += oprot->writeString(_iter936->first);
-      xfer += oprot->writeString(_iter936->second);
+      xfer += oprot->writeString(_iter940->first);
+      xfer += oprot->writeString(_iter940->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -12115,11 +12115,11 @@ uint32_t ThriftHiveMetastore_exchange_partitions_pargs::write(::apache::thrift::
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->partitionSpecs)).size()));
-    std::map<std::string, std::string> ::const_iterator _iter937;
-    for (_iter937 = (*(this->partitionSpecs)).begin(); _iter937 != (*(this->partitionSpecs)).end(); ++_iter937)
+    std::map<std::string, std::string> ::const_iterator _iter941;
+    for (_iter941 = (*(this->partitionSpecs)).begin(); _iter941 != (*(this->partitionSpecs)).end(); ++_iter941)
     {
-      xfer += oprot->writeString(_iter937->first);
-      xfer += oprot->writeString(_iter937->second);
+      xfer += oprot->writeString(_iter941->first);
+      xfer += oprot->writeString(_iter941->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -12176,14 +12176,14 @@ uint32_t ThriftHiveMetastore_exchange_partitions_result::read(::apache::thrift::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size938;
-            ::apache::thrift::protocol::TType _etype941;
-            xfer += iprot->readListBegin(_etype941, _size938);
-            this->success.resize(_size938);
-            uint32_t _i942;
-            for (_i942 = 0; _i942 < _size938; ++_i942)
+            uint32_t _size942;
+            ::apache::thrift::protocol::TType _etype945;
+            xfer += iprot->readListBegin(_etype945, _size942);
+            this->success.resize(_size942);
+            uint32_t _i946;
+            for (_i946 = 0; _i946 < _size942; ++_i946)
             {
-              xfer += this->success[_i942].read(iprot);
+              xfer += this->success[_i946].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -12246,10 +12246,10 @@ uint32_t ThriftHiveMetastore_exchange_partitions_result::write(::apache::thrift:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<Partition> ::const_iterator _iter943;
-      for (_iter943 = this->success.begin(); _iter943 != this->success.end(); ++_iter943)
+      std::vector<Partition> ::const_iterator _iter947;
+      for (_iter947 = this->success.begin(); _iter947 != this->success.end(); ++_iter947)
       {
-        xfer += (*_iter943).write(oprot);
+        xfer += (*_iter947).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -12306,14 +12306,14 @@ uint32_t ThriftHiveMetastore_exchange_partitions_presult::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size944;
-            ::apache::thrift::protocol::TType _etype947;
-            xfer += iprot->readListBegin(_etype947, _size944);
-            (*(this->success)).resize(_size944);
-            uint32_t _i948;
-            for (_i948 = 0; _i948 < _size944; ++_i948)
+            uint32_t _size948;
+            ::apache::thrift::protocol::TType _etype951;
+            xfer += iprot->readListBegin(_etype951, _size948);
+            (*(this->success)).resize(_size948);
+            uint32_t _i952;
+            for (_i952 = 0; _i952 < _size948; ++_i952)
             {
-              xfer += (*(this->success))[_i948].read(iprot);
+              xfer += (*(this->success))[_i952].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -12412,14 +12412,14 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size949;
-            ::apache::thrift::protocol::TType _etype952;
-            xfer += iprot->readListBegin(_etype952, _size949);
-            this->part_vals.resize(_size949);
-            uint32_t _i953;
-            for (_i953 = 0; _i953 < _size949; ++_i953)
+            uint32_t _size953;
+            ::apache::thrift::protocol::TType _etype956;
+            xfer += iprot->readListBegin(_etype956, _size953);
+            this->part_vals.resize(_size953);
+            uint32_t _i957;
+            for (_i957 = 0; _i957 < _size953; ++_i957)
             {
-              xfer += iprot->readString(this->part_vals[_i953]);
+              xfer += iprot->readString(this->part_vals[_i957]);
             }
             xfer += iprot->readListEnd();
           }
@@ -12440,14 +12440,14 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->group_names.clear();
-            uint32_t _size954;
-            ::apache::thrift::protocol::TType _etype957;
-            xfer += iprot->readListBegin(_etype957, _size954);
-            this->group_names.resize(_size954);
-            uint32_t _i958;
-            for (_i958 = 0; _i958 < _size954; ++_i958)
+            uint32_t _size958;
+            ::apache::thrift::protocol::TType _etype961;
+            xfer += iprot->readListBegin(_etype961, _size958);
+            this->group_names.resize(_size958);
+            uint32_t _i962;
+            for (_i962 = 0; _i962 < _size958; ++_i962)
             {
-              xfer += iprot->readString(this->group_names[_i958]);
+              xfer += iprot->readString(this->group_names[_i962]);
             }
             xfer += iprot->readListEnd();
           }
@@ -12484,10 +12484,10 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::write(::apache::thrif
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
-    std::vector<std::string> ::const_iterator _iter959;
-    for (_iter959 = this->part_vals.begin(); _iter959 != this->part_vals.end(); ++_iter959)
+    std::vector<std::string> ::const_iterator _iter963;
+    for (_iter963 = this->part_vals.begin(); _iter963 != this->part_vals.end(); ++_iter963)
     {
-      xfer += oprot->writeString((*_iter959));
+      xfer += oprot->writeString((*_iter963));
     }
     xfer += oprot->writeListEnd();
   }
@@ -12500,10 +12500,10 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::write(::apache::thrif
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->group_names.size()));
-    std::vector<std::string> ::const_iterator _iter960;
-    for (_iter960 = this->group_names.begin(); _iter960 != this->group_names.end(); ++_iter960)
+    std::vector<std::string> ::const_iterator _iter964;
+    for (_iter964 = this->group_names.begin(); _iter964 != this->group_names.end(); ++_iter964)
     {
-      xfer += oprot->writeString((*_iter960));
+      xfer += oprot->writeString((*_iter964));
     }
     xfer += oprot->writeListEnd();
   }
@@ -12535,10 +12535,10 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_pargs::write(::apache::thri
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
-    std::vector<std::string> ::const_iterator _iter961;
-    for (_iter961 = (*(this->part_vals)).begin(); _iter961 != (*(this->part_vals)).end(); ++_iter961)
+    std::vector<std::string> ::const_iterator _iter965;
+    for (_iter965 = (*(this->part_vals)).begin(); _iter965 != (*(this->part_vals)).end(); ++_iter965)
     {
-      xfer += oprot->writeString((*_iter961));
+      xfer += oprot->writeString((*_iter965));
     }
     xfer += oprot->writeListEnd();
   }
@@ -12551,10 +12551,10 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_pargs::write(::apache::thri
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->group_names)).size()));
-    std::vector<std::string> ::const_iterator _iter962;
-    for (_iter962 = (*(this->group_names)).begin(); _iter962 != (*(this->group_names)).end(); ++_iter962)
+    std::vector<std::string> ::const_iterator _iter966;
+    for (_iter966 = (*(this->group_names)).begin(); _iter966 != (*(this->group_names)).end(); ++_iter966)
     {
-      xfer += oprot->writeString((*_iter962));
+      xfer += oprot->writeString((*_iter966));
     }
     xfer += oprot->writeListEnd();
   }
@@ -13113,14 +13113,14 @@ uint32_t ThriftHiveMetastore_get_partitions_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size963;
-            ::apache::thrift::protocol::TType _etype966;
-            xfer += iprot->readListBegin(_etype966, _size963);
-            this->success.resize(_size963);
-            uint32_t _i967;
-            for (_i967 = 0; _i967 < _size963; ++_i967)
+            uint32_t _size967;
+            ::apache::thrift::protocol::TType _etype970;
+            xfer += iprot->readListBegin(_etype970, _size967);
+            this->success.resize(_size967);
+            uint32_t _i971;
+            for (_i971 = 0; _i971 < _size967; ++_i971)
             {
-              xfer += this->success[_i967].read(iprot);
+              xfer += this->success[_i971].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -13167,10 +13167,10 @@ uint32_t ThriftHiveMetastore_get_partitions_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<Partition> ::const_iterator _iter968;
-      for (_iter968 = this->success.begin(); _iter968 != this->success.end(); ++_iter968)
+      std::vector<Partition> ::const_iterator _iter972;
+      for (_iter972 = this->success.begin(); _iter972 != this->success.end(); ++_iter972)
       {
-        xfer += (*_iter968).write(oprot);
+        xfer += (*_iter972).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -13219,14 +13219,14 @@ uint32_t ThriftHiveMetastore_get_partitions_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size969;
-            ::apache::thrift::protocol::TType _etype972;
-            xfer += iprot->readListBegin(_etype972, _size969);
-            (*(this->success)).resize(_size969);
-            uint32_t _i973;
-            for (_i973 = 0; _i973 < _size969; ++_i973)
+            uint32_t _size973;
+            ::apache::thrift::protocol::TType _etype976;
+            xfer += iprot->readListBegin(_etype976, _size973);
+            (*(this->success)).resize(_size973);
+            uint32_t _i977;
+            for (_i977 = 0; _i977 < _size973; ++_i977)
             {
-              xfer += (*(this->success))[_i973].read(iprot);
+              xfer += (*(this->success))[_i977].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -13325,14 +13325,14 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_args::read(::apache::thrif
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->group_names.clear();
-            uint32_t _size974;
-            ::apache::thrift::protocol::TType _etype977;
-            xfer += iprot->readListBegin(_etype977, _size974);
-            this->group_names.resize(_size974);
-            uint32_t _i978;
-            for (_i978 = 0; _i978 < _size974; ++_i978)
+            uint32_t _size978;
+            ::apache::thrift::protocol::TType _etype981;
+            xfer += iprot->readListBegin(_etype981, _size978);
+            this->group_names.resize(_size978);
+            uint32_t _i982;
+            for (_i982 = 0; _i982 < _size978; ++_i982)
             {
-              xfer += iprot->readString(this->group_names[_i978]);
+              xfer += iprot->readString(this->group_names[_i982]);
             }
             xfer += iprot->readListEnd();
           }
@@ -13377,10 +13377,10 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_args::write(::apache::thri
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->group_names.size()));
-    std::vector<std::string> ::const_iterator _iter979;
-    for (_iter979 = this->group_names.begin(); _iter979 != this->group_names.end(); ++_iter979)
+    std::vector<std::string> ::const_iterator _iter983;
+    for (_iter983 = this->group_names.begin(); _iter983 != this->group_names.end(); ++_iter983)
     {
-      xfer += oprot->writeString((*_iter979));
+      xfer += oprot->writeString((*_iter983));
     }
     xfer += oprot->writeListEnd();
   }
@@ -13420,10 +13420,10 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_pargs::write(::apache::thr
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->group_names)).size()));
-    std::vector<std::string> ::const_iterator _iter980;
-    for (_iter980 = (*(this->group_names)).begin(); _iter980 != (*(this->group_names)).end(); ++_iter980)
+    std::vector<std::string> ::const_iterator _iter984;
+    for (_iter984 = (*(this->group_names)).begin(); _iter984 != (*(this->group_names)).end(); ++_iter984)
     {
-      xfer += oprot->writeString((*_iter980));
+      xfer += oprot->writeString((*_iter984));
     }
     xfer += oprot->writeListEnd();
   }
@@ -13464,14 +13464,14 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_result::read(::apache::thr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size981;
-            ::apache::thrift::protocol::TType _etype984;
-            xfer += iprot->readListBegin(_etype984, _size981);
-            this->success.resize(_size981);
-            uint32_t _i985;
-            for (_i985 = 0; _i985 < _size981; ++_i985)
+            uint32_t _size985;
+            ::apache::thrift::protocol::TType _etype988;
+            xfer += iprot->readListBegin(_etype988, _size985);
+            this->success.resize(_size985);
+            uint32_t _i989;
+            for (_i989 = 0; _i989 < _size985; ++_i989)
             {
-              xfer += this->success[_i985].read(iprot);
+              xfer += this->success[_i989].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -13518,10 +13518,10 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_result::write(::apache::th
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<Partition> ::const_iterator _iter986;
-      for (_iter986 = this->success.begin(); _iter986 != this->success.end(); ++_iter986)
+      std::vector<Partition> ::const_iterator _iter990;
+      for (_iter990 = this->success.begin(); _iter990 != this->success.end(); ++_iter990)
       {
-        xfer += (*_iter986).write(oprot);
+        xfer += (*_iter990).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -13570,14 +13570,14 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_presult::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size987;
-            ::apache::thrift::protocol::TType _etype990;
-            xfer += iprot->readListBegin(_etype990, _size987);
-            (*(this->success)).resize(_size987);
-            uint32_t _i991;
-            for (_i991 = 0; _i991 < _size987; ++_i991)
+            uint32_t _size991;
+            ::apache::thrift::protocol::TType _etype994;
+            xfer += iprot->readListBegin(_etype994, _size991);
+            (*(this->success)).resize(_size991);
+            uint32_t _i995;
+            for (_i995 = 0; _i995 < _size991; ++_i995)
             {
-              xfer += (*(this->success))[_i991].read(iprot);
+              xfer += (*(this->success))[_i995].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -13755,14 +13755,14 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_result::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size992;
-            ::apache::thrift::protocol::TType _etype995;
-            xfer += iprot->readListBegin(_etype995, _size992);
-            this->success.resize(_size992);
-            uint32_t _i996;
-            for (_i996 = 0; _i996 < _size992; ++_i996)
+            uint32_t _size996;
+            ::apache::thrift::protocol::TType _etype999;
+            xfer += iprot->readListBegin(_etype999, _size996);
+            this->success.resize(_size996);
+            uint32_t _i1000;
+            for (_i1000 = 0; _i1000 < _size996; ++_i1000)
             {
-              xfer += this->success[_i996].read(iprot);
+              xfer += this->success[_i1000].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -13809,10 +13809,10 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_result::write(::apache::thrift
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<PartitionSpec> ::const_iterator _iter997;
-      for (_iter997 = this->success.begin(); _iter997 != this->success.end(); ++_iter997)
+      std::vector<PartitionSpec> ::const_iterator _iter1001;
+      for (_iter1001 = this->success.begin(); _iter1001 != this->success.end(); ++_iter1001)
       {
-        xfer += (*_iter997).write(oprot);
+        xfer += (*_iter1001).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -13861,14 +13861,14 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_presult::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size998;
-            ::apache::thrift::protocol::TType _etype1001;
-            xfer += iprot->readListBegin(_etype1001, _size998);
-            (*(this->success)).resize(_size998);
-            uint32_t _i1002;
-            for (_i1002 = 0; _i1002 < _size998; ++_i1002)
+            uint32_t _size1002;
+            ::apache::thrift::protocol::TType _etype1005;
+            xfer += iprot->readListBegin(_etype1005, _size1002);
+            (*(this->success)).resize(_size1002);
+            uint32_t _i1006;
+            for (_i1006 = 0; _i1006 < _size1002; ++_i1006)
             {
-              xfer += (*(this->success))[_i1002].read(iprot);
+              xfer += (*(this->success))[_i1006].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -14046,14 +14046,14 @@ uint32_t ThriftHiveMetastore_get_partition_names_result::read(::apache::thrift::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size1003;
-            ::apache::thrift::protocol::TType _etype1006;
-            xfer += iprot->readListBegin(_etype1006, _size1003);
-            this->success.resize(_size1003);
-            uint32_t _i1007;
-            for (_i1007 = 0; _i1007 < _size1003; ++_i1007)
+            uint32_t _size1007;
+            ::apache::thrift::protocol::TType _etype1010;
+            xfer += iprot->readListBegin(_etype1010, _size1007);
+            this->success.resize(_size1007);
+            uint32_t _i1011;
+            for (_i1011 = 0; _i1011 < _size1007; ++_i1011)
             {
-              xfer += iprot->readString(this->success[_i1007]);
+              xfer += iprot->readString(this->success[_i1011]);
             }
             xfer += iprot->readListEnd();
           }
@@ -14092,10 +14092,10 @@ uint32_t ThriftHiveMetastore_get_partition_names_result::write(::apache::thrift:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
-      std::vector<std::string> ::const_iterator _iter1008;
-      for (_iter1008 = this->success.begin(); _iter1008 != this->success.end(); ++_iter1008)
+      std::vector<std::string> ::const_iterator _iter1012;
+      for (_iter1012 = this->success.begin(); _iter1012 != this->success.end(); ++_iter1012)
       {
-        xfer += oprot->writeString((*_iter1008));
+        xfer += oprot->writeString((*_iter1012));
       }
       xfer += oprot->writeListEnd();
     }
@@ -14140,14 +14140,14 @@ uint32_t ThriftHiveMetastore_get_partition_names_presult::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size1009;
-            ::apache::thrift::protocol::TType _etype1012;
-            xfer += iprot->readListBegin(_etype1012, _size1009);
-            (*(this->success)).resize(_size1009);
-            uint32_t _i1013;
-            for (_i1013 = 0; _i1013 < _size1009; ++_i1013)
+            uint32_t _size1013;
+            ::apache::thrift::protocol::TType _etype1016;
+            xfer += iprot->readListBegin(_etype1016, _size1013);
+            (*(this->success)).resize(_size1013);
+            uint32_t _i1017;
+            for (_i1017 = 0; _i1017 < _size1013; ++_i1017)
             {
-              xfer += iprot->readString((*(this->success))[_i1013]);
+              xfer += iprot->readString((*(this->success))[_i1017]);
             }
             xfer += iprot->readListEnd();
           }
@@ -14222,14 +14222,14 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_args::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size1014;
-            ::apache::thrift::protocol::TType _etype1017;
-            xfer += iprot->readListBegin(_etype1017, _size1014);
-            this->part_vals.resize(_size1014);
-            uint32_t _i1018;
-            for (_i1018 = 0; _i1018 < _size1014; ++_i1018)
+            uint32_t _size1018;
+            ::apache::thrift::protocol::TType _etype1021;
+            xfer += iprot->readListBegin(_etype1021, _size1018);
+            this->part_vals.resize(_size1018);
+            uint32_t _i1022;
+            for (_i1022 = 0; _i1022 < _size1018; ++_i1022)
             {
-              xfer += iprot->readString(this->part_vals[_i1018]);
+              xfer += iprot->readString(this->part_vals[_i1022]);
             }
             xfer += iprot->readListEnd();
           }
@@ -14274,10 +14274,10 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_args::write(::apache::thrift::pro
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
-    std::vector<std::string> ::const_iterator _iter1019;
-    for (_iter1019 = this->part_vals.begin(); _iter1019 != this->part_vals.end(); ++_iter1019)
+    std::vector<std::string> ::const_iterator _iter1023;
+    for (_iter1023 = this->part_vals.begin(); _iter1023 != this->part_vals.end(); ++_iter1023)
     {
-      xfer += oprot->writeString((*_iter1019));
+      xfer += oprot->writeString((*_iter1023));
     }
     xfer += oprot->writeListEnd();
   }
@@ -14313,10 +14313,10 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_pargs::write(::apache::thrift::pr
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
-    std::vector<std::string> ::const_iterator _iter1020;
-    for (_iter1020 = (*(this->part_vals)).begin(); _iter1020 != (*(this->part_vals)).end(); ++_iter1020)
+    std::vector<std::string> ::const_iterator _iter1024;
+    for (_iter1024 = (*(this->part_vals)).begin(); _iter1024 != (*(this->part_vals)).end(); ++_iter1024)
     {
-      xfer += oprot->writeString((*_iter1020));
+      xfer += oprot->writeString((*_iter1024));
     }
     xfer += oprot->writeListEnd();
   }
@@ -14361,14 +14361,14 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_result::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size1021;
-            ::apache::thrift::protocol::TType _etype1024;
-            xfer += iprot->readListBegin(_etype1024, _size1021);
-            this->success.resize(_size1021);
-            uint32_t _i1025;
-            for (_i1025 = 0; _i1025 < _size1021; ++_i1025)
+            uint32_t _size1025;
+            ::apache::thrift::protocol::TType _etype1028;
+            xfer += iprot->readListBegin(_etype1028, _size1025);
+            this->success.resize(_size1025);
+            uint32_t _i1029;
+            for (_i1029 = 0; _i1029 < _size1025; ++_i1029)
             {
-              xfer += this->success[_i1025].read(iprot);
+              xfer += this->success[_i1029].read(iprot);
             }
             xfer += ipro

<TRUNCATED>

[5/5] hive git commit: HIVE-12892 : Add global change versioning to permanent functions in metastore (Sergey Shelukhin, reviewed by Alan Gates)

Posted by se...@apache.org.
HIVE-12892 : Add global change versioning to permanent functions in metastore (Sergey Shelukhin, reviewed by Alan Gates)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/5be9c92f
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/5be9c92f
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/5be9c92f

Branch: refs/heads/master
Commit: 5be9c92fbd2d39f7265b5a493fa098b4ebdb72b9
Parents: a285de0
Author: Sergey Shelukhin <se...@apache.org>
Authored: Tue Feb 9 14:37:07 2016 -0800
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Tue Feb 9 14:37:07 2016 -0800

----------------------------------------------------------------------
 metastore/if/hive_metastore.thrift              |   13 +-
 .../upgrade/derby/033-HIVE-12892.derby.sql      |    3 +
 .../upgrade/derby/hive-schema-2.1.0.derby.sql   |    7 +
 .../derby/upgrade-2.0.0-to-2.1.0.derby.sql      |    1 +
 .../upgrade/mssql/018-HIVE-12892.mssql.sql      |    9 +
 .../upgrade/mssql/hive-schema-2.1.0.mssql.sql   |   13 +
 .../mssql/upgrade-2.0.0-to-2.1.0.mssql.sql      |    2 +
 .../upgrade/mysql/033-HIVE-12892.mysql.sql      |   10 +
 .../upgrade/mysql/hive-schema-2.1.0.mysql.sql   |   11 +
 .../mysql/upgrade-2.0.0-to-2.1.0.mysql.sql      |    2 +
 .../upgrade/oracle/033-HIVE-12892.oracle.sql    |    8 +
 .../upgrade/oracle/hive-schema-2.1.0.oracle.sql |   11 +-
 .../oracle/upgrade-2.0.0-to-2.1.0.oracle.sql    |    2 +
 .../postgres/032-HIVE-12892.postgres.sql        |   10 +
 .../postgres/hive-schema-2.1.0.postgres.sql     |   14 +
 .../upgrade-2.0.0-to-2.1.0.postgres.sql         |    2 +
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp  | 2257 ++++++++++--------
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.h    |  126 +
 .../ThriftHiveMetastore_server.skeleton.cpp     |    5 +
 .../gen/thrift/gen-cpp/hive_metastore_types.cpp |  736 +++---
 .../gen/thrift/gen-cpp/hive_metastore_types.h   |   84 +
 .../metastore/api/GetChangeVersionRequest.java  |  388 +++
 .../metastore/api/GetChangeVersionResult.java   |  386 +++
 .../hive/metastore/api/ThriftHiveMetastore.java | 1622 ++++++++++---
 .../gen-php/metastore/ThriftHiveMetastore.php   |  215 ++
 .../src/gen/thrift/gen-php/metastore/Types.php  |  150 ++
 .../hive_metastore/ThriftHiveMetastore-remote   |    7 +
 .../hive_metastore/ThriftHiveMetastore.py       |  189 ++
 .../gen/thrift/gen-py/hive_metastore/ttypes.py  |  134 ++
 .../gen/thrift/gen-rb/hive_metastore_types.rb   |   34 +
 .../gen/thrift/gen-rb/thrift_hive_metastore.rb  |   54 +
 .../hadoop/hive/metastore/HiveMetaStore.java    |  111 +-
 .../hive/metastore/HiveMetaStoreClient.java     |    6 +
 .../hadoop/hive/metastore/IMetaStoreClient.java |    3 +
 .../hadoop/hive/metastore/ObjectStore.java      |  102 +-
 .../apache/hadoop/hive/metastore/RawStore.java  |    3 +
 .../hive/metastore/hbase/HBaseReadWrite.java    |   31 +-
 .../hadoop/hive/metastore/hbase/HBaseStore.java |   28 +-
 .../hive/metastore/model/MChangeVersion.java    |   48 +
 metastore/src/model/package.jdo                 |   13 +-
 .../DummyRawStoreControlledCommit.java          |    5 +
 .../DummyRawStoreForJdoConnection.java          |    5 +
 .../apache/hadoop/hive/ql/metadata/Hive.java    |    8 +
 43 files changed, 5131 insertions(+), 1737 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/if/hive_metastore.thrift
----------------------------------------------------------------------
diff --git a/metastore/if/hive_metastore.thrift b/metastore/if/hive_metastore.thrift
index 9d8c092..1abcfe5 100755
--- a/metastore/if/hive_metastore.thrift
+++ b/metastore/if/hive_metastore.thrift
@@ -740,7 +740,17 @@ struct FireEventRequest {
 struct FireEventResponse {
     // NOP for now, this is just a place holder for future responses
 }
-    
+
+
+struct GetChangeVersionRequest {
+  1: required string topic
+}
+
+struct GetChangeVersionResult {
+  1: required i64 version
+}
+
+
 struct MetadataPpdResult {
   1: optional binary metadata,
   2: optional binary includeBitset
@@ -1314,6 +1324,7 @@ service ThriftHiveMetastore extends fb303.FacebookService
   ClearFileMetadataResult clear_file_metadata(1:ClearFileMetadataRequest req)
   CacheFileMetadataResult cache_file_metadata(1:CacheFileMetadataRequest req)
 
+  GetChangeVersionResult get_change_version(1:GetChangeVersionRequest req)
 }
 
 // * Note about the DDL_TIME: When creating or altering a table or a partition,

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/derby/033-HIVE-12892.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/033-HIVE-12892.derby.sql b/metastore/scripts/upgrade/derby/033-HIVE-12892.derby.sql
new file mode 100644
index 0000000..ab004d9
--- /dev/null
+++ b/metastore/scripts/upgrade/derby/033-HIVE-12892.derby.sql
@@ -0,0 +1,3 @@
+CREATE TABLE "APP"."CHANGE_VERSION" ("CHANGE_VERSION_ID" BIGINT NOT NULL, "VERSION" BIGINT NOT NULL, "TOPIC" VARCHAR(255));
+ALTER TABLE "APP"."CHANGE_VERSION" ADD CONSTRAINT "CHANGE_VERSION_PK" PRIMARY KEY ("CHANGE_VERSION_ID");
+CREATE UNIQUE INDEX "APP"."UNIQUECHANGEVERSION" ON "APP"."CHANGE_VERSION" ("TOPIC");

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql b/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
index 660a85a..42f4eb6 100644
--- a/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
@@ -98,6 +98,8 @@ CREATE TABLE "APP"."PART_COL_STATS"("DB_NAME" VARCHAR(128) NOT NULL,"TABLE_NAME"
 
 CREATE TABLE "APP"."VERSION" ("VER_ID" BIGINT NOT NULL, "SCHEMA_VERSION" VARCHAR(127) NOT NULL, "VERSION_COMMENT" VARCHAR(255));
 
+CREATE TABLE "APP"."CHANGE_VERSION" ("CHANGE_VERSION_ID" BIGINT NOT NULL, "VERSION" BIGINT NOT NULL, "TOPIC" VARCHAR(255));
+
 CREATE TABLE "APP"."FUNCS" ("FUNC_ID" BIGINT NOT NULL, "CLASS_NAME" VARCHAR(4000), "CREATE_TIME" INTEGER NOT NULL, "DB_ID" BIGINT, "FUNC_NAME" VARCHAR(128), "FUNC_TYPE" INTEGER NOT NULL, "OWNER_NAME" VARCHAR(128), "OWNER_TYPE" VARCHAR(10));
 
 CREATE TABLE "APP"."FUNC_RU" ("FUNC_ID" BIGINT NOT NULL, "RESOURCE_TYPE" INTEGER NOT NULL, "RESOURCE_URI" VARCHAR(4000), "INTEGER_IDX" INTEGER NOT NULL);
@@ -310,6 +312,11 @@ ALTER TABLE "APP"."PART_COL_STATS" ADD CONSTRAINT "PART_COL_STATS_FK" FOREIGN KE
 
 ALTER TABLE "APP"."VERSION" ADD CONSTRAINT "VERSION_PK" PRIMARY KEY ("VER_ID");
 
+ALTER TABLE "APP"."CHANGE_VERSION" ADD CONSTRAINT "CHANGE_VERSION_PK" PRIMARY KEY ("CHANGE_VERSION_ID");
+
+CREATE UNIQUE INDEX "APP"."UNIQUECHANGEVERSION" ON "APP"."CHANGE_VERSION" ("TOPIC");
+
+
 ALTER TABLE "APP"."FUNCS" ADD CONSTRAINT "FUNCS_FK1" FOREIGN KEY ("DB_ID") REFERENCES "APP"."DBS" ("DB_ID") ON DELETE NO ACTION ON UPDATE NO ACTION;
 
 ALTER TABLE "APP"."FUNC_RU" ADD CONSTRAINT "FUNC_RU_FK1" FOREIGN KEY ("FUNC_ID") REFERENCES "APP"."FUNCS" ("FUNC_ID") ON DELETE NO ACTION ON UPDATE NO ACTION;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/derby/upgrade-2.0.0-to-2.1.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/upgrade-2.0.0-to-2.1.0.derby.sql b/metastore/scripts/upgrade/derby/upgrade-2.0.0-to-2.1.0.derby.sql
index 30de00b..a0bac3c 100644
--- a/metastore/scripts/upgrade/derby/upgrade-2.0.0-to-2.1.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/upgrade-2.0.0-to-2.1.0.derby.sql
@@ -1,3 +1,4 @@
 -- Upgrade MetaStore schema from 2.0.0 to 2.1.0
+RUN '033-HIVE-12892.derby.sql';
 
 UPDATE "APP".VERSION SET SCHEMA_VERSION='2.1.0', VERSION_COMMENT='Hive release version 2.1.0' where VER_ID=1;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/mssql/018-HIVE-12892.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/018-HIVE-12892.mssql.sql b/metastore/scripts/upgrade/mssql/018-HIVE-12892.mssql.sql
new file mode 100644
index 0000000..a13591d
--- /dev/null
+++ b/metastore/scripts/upgrade/mssql/018-HIVE-12892.mssql.sql
@@ -0,0 +1,9 @@
+-- Table CHANGE_VERSION
+CREATE TABLE CHANGE_VERSION
+(
+    CHANGE_VERSION_ID bigint NOT NULL,
+    VERSION bigint NOT NULL,
+    TOPIC nvarchar(255) NOT NULL
+);
+ALTER TABLE CHANGE_VERSION ADD CONSTRAINT CHANGE_VERSION_PK PRIMARY KEY (CHANGE_VERSION_ID);
+CREATE UNIQUE INDEX UNIQUECHANGEVERSION ON CHANGE_VERSION (TOPIC);

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/mssql/hive-schema-2.1.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/hive-schema-2.1.0.mssql.sql b/metastore/scripts/upgrade/mssql/hive-schema-2.1.0.mssql.sql
index 085c17d..cf5a662 100644
--- a/metastore/scripts/upgrade/mssql/hive-schema-2.1.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/hive-schema-2.1.0.mssql.sql
@@ -165,6 +165,19 @@ CREATE TABLE VERSION
 
 ALTER TABLE VERSION ADD CONSTRAINT VERSION_PK PRIMARY KEY (VER_ID);
 
+-- Table CHANGE_VERSION
+CREATE TABLE CHANGE_VERSION
+(
+    CHANGE_VERSION_ID bigint NOT NULL,
+    VERSION bigint NOT NULL,
+    TOPIC nvarchar(255) NOT NULL
+);
+
+ALTER TABLE CHANGE_VERSION ADD CONSTRAINT CHANGE_VERSION_PK PRIMARY KEY (CHANGE_VERSION_ID);
+
+CREATE UNIQUE INDEX UNIQUECHANGEVERSION ON CHANGE_VERSION (TOPIC);
+
+
 -- Table GLOBAL_PRIVS for classes [org.apache.hadoop.hive.metastore.model.MGlobalPrivilege]
 CREATE TABLE GLOBAL_PRIVS
 (

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/mssql/upgrade-2.0.0-to-2.1.0.mssql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mssql/upgrade-2.0.0-to-2.1.0.mssql.sql b/metastore/scripts/upgrade/mssql/upgrade-2.0.0-to-2.1.0.mssql.sql
index 0b806eb..f25daf2 100644
--- a/metastore/scripts/upgrade/mssql/upgrade-2.0.0-to-2.1.0.mssql.sql
+++ b/metastore/scripts/upgrade/mssql/upgrade-2.0.0-to-2.1.0.mssql.sql
@@ -1,4 +1,6 @@
 SELECT 'Upgrading MetaStore schema from 2.0.0 to 2.1.0' AS MESSAGE;
 
+:r 018-HIVE-12892.mssql.sql;
+
 UPDATE VERSION SET SCHEMA_VERSION='2.1.0', VERSION_COMMENT='Hive release version 2.1.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.0.0 to 2.1.0' AS MESSAGE;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/mysql/033-HIVE-12892.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/033-HIVE-12892.mysql.sql b/metastore/scripts/upgrade/mysql/033-HIVE-12892.mysql.sql
new file mode 100644
index 0000000..783afe8
--- /dev/null
+++ b/metastore/scripts/upgrade/mysql/033-HIVE-12892.mysql.sql
@@ -0,0 +1,10 @@
+-- Table structure for CHANGE_VERSION
+--
+CREATE TABLE IF NOT EXISTS `CHANGE_VERSION` (
+  `CHANGE_VERSION_ID` BIGINT NOT NULL,
+  `VERSION` BIGINT NOT NULL,
+  `TOPIC` VARCHAR(255) NOT NULL,
+  PRIMARY KEY (`CHANGE_VERSION_ID`),
+  UNIQUE KEY `UNIQUECHANGEVERSION` (`TOPIC`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+--

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/mysql/hive-schema-2.1.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/hive-schema-2.1.0.mysql.sql b/metastore/scripts/upgrade/mysql/hive-schema-2.1.0.mysql.sql
index 06c3d90..6fd3209 100644
--- a/metastore/scripts/upgrade/mysql/hive-schema-2.1.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/hive-schema-2.1.0.mysql.sql
@@ -760,6 +760,17 @@ CREATE TABLE IF NOT EXISTS `VERSION` (
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
 --
+-- Table structure for CHANGE_VERSION
+--
+CREATE TABLE IF NOT EXISTS `CHANGE_VERSION` (
+  `CHANGE_VERSION_ID` BIGINT NOT NULL,
+  `VERSION` BIGINT NOT NULL,
+  `TOPIC` VARCHAR(255) NOT NULL,
+  PRIMARY KEY (`CHANGE_VERSION_ID`),
+  UNIQUE KEY `UNIQUECHANGEVERSION` (`TOPIC`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
 -- Table structure for table FUNCS
 --
 CREATE TABLE IF NOT EXISTS `FUNCS` (

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/mysql/upgrade-2.0.0-to-2.1.0.mysql.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/mysql/upgrade-2.0.0-to-2.1.0.mysql.sql b/metastore/scripts/upgrade/mysql/upgrade-2.0.0-to-2.1.0.mysql.sql
index 2a2bb6d..e790636 100644
--- a/metastore/scripts/upgrade/mysql/upgrade-2.0.0-to-2.1.0.mysql.sql
+++ b/metastore/scripts/upgrade/mysql/upgrade-2.0.0-to-2.1.0.mysql.sql
@@ -1,5 +1,7 @@
 SELECT 'Upgrading MetaStore schema from 2.0.0 to 2.1.0' AS ' ';
 
+SOURCE 033-HIVE-12892.mysql.sql;
+
 UPDATE VERSION SET SCHEMA_VERSION='2.1.0', VERSION_COMMENT='Hive release version 2.1.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.0.0 to 2.1.0' AS ' ';
 

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/oracle/033-HIVE-12892.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/033-HIVE-12892.oracle.sql b/metastore/scripts/upgrade/oracle/033-HIVE-12892.oracle.sql
new file mode 100644
index 0000000..d6a2977
--- /dev/null
+++ b/metastore/scripts/upgrade/oracle/033-HIVE-12892.oracle.sql
@@ -0,0 +1,8 @@
+  VERSION_COMMENT VARCHAR(255) NOT NULL
+CREATE TABLE CHANGE_VERSION (
+  CHANGE_VERSION_ID NUMBER NOT NULL,
+  VERSION NUMBER NOT NULL,
+  TOPIC VARCHAR(255) NOT NULL
+);
+ALTER TABLE CHANGE_VERSION ADD CONSTRAINT CHANGE_VERSION_PK PRIMARY KEY (CHANGE_VERSION_ID);
+CREATE UNIQUE INDEX UNIQUE_CHANGE_VERSION ON CHANGE_VERSION (TOPIC);

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/oracle/hive-schema-2.1.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/hive-schema-2.1.0.oracle.sql b/metastore/scripts/upgrade/oracle/hive-schema-2.1.0.oracle.sql
index 644463d..774f6be 100644
--- a/metastore/scripts/upgrade/oracle/hive-schema-2.1.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/hive-schema-2.1.0.oracle.sql
@@ -488,10 +488,19 @@ CREATE TABLE TAB_COL_STATS (
 CREATE TABLE VERSION (
   VER_ID NUMBER NOT NULL,
   SCHEMA_VERSION VARCHAR(127) NOT NULL,
-  VERSION_COMMENT VARCHAR(255)
+  VERSION_COMMENT VARCHAR(255) NOT NULL
 );
 ALTER TABLE VERSION ADD CONSTRAINT VERSION_PK PRIMARY KEY (VER_ID);
 
+CREATE TABLE CHANGE_VERSION (
+  CHANGE_VERSION_ID NUMBER NOT NULL,
+  VERSION NUMBER NOT NULL,
+  TOPIC VARCHAR(255) NOT NULL
+);
+ALTER TABLE CHANGE_VERSION ADD CONSTRAINT CHANGE_VERSION_PK PRIMARY KEY (CHANGE_VERSION_ID);
+
+CREATE UNIQUE INDEX UNIQUE_CHANGE_VERSION ON CHANGE_VERSION (TOPIC);
+
 ALTER TABLE TAB_COL_STATS ADD CONSTRAINT TAB_COL_STATS_PKEY PRIMARY KEY (CS_ID);
 
 ALTER TABLE TAB_COL_STATS ADD CONSTRAINT TAB_COL_STATS_FK FOREIGN KEY (TBL_ID) REFERENCES TBLS (TBL_ID) INITIALLY DEFERRED ;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/oracle/upgrade-2.0.0-to-2.1.0.oracle.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/oracle/upgrade-2.0.0-to-2.1.0.oracle.sql b/metastore/scripts/upgrade/oracle/upgrade-2.0.0-to-2.1.0.oracle.sql
index 9cf5fa3..8368d08 100644
--- a/metastore/scripts/upgrade/oracle/upgrade-2.0.0-to-2.1.0.oracle.sql
+++ b/metastore/scripts/upgrade/oracle/upgrade-2.0.0-to-2.1.0.oracle.sql
@@ -1,4 +1,6 @@
 SELECT 'Upgrading MetaStore schema from 2.0.0 to 2.1.0' AS Status from dual;
 
+@033-HIVE-12892.oracle.sql;
+
 UPDATE VERSION SET SCHEMA_VERSION='2.1.0', VERSION_COMMENT='Hive release version 2.1.0' where VER_ID=1;
 SELECT 'Finished upgrading MetaStore schema from 2.0.0 to 2.1.0' AS Status from dual;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/postgres/032-HIVE-12892.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/032-HIVE-12892.postgres.sql b/metastore/scripts/upgrade/postgres/032-HIVE-12892.postgres.sql
new file mode 100644
index 0000000..302c51a
--- /dev/null
+++ b/metastore/scripts/upgrade/postgres/032-HIVE-12892.postgres.sql
@@ -0,0 +1,10 @@
+-- Table structure for CHANGE_VERSION
+--
+CREATE TABLE "CHANGE_VERSION" (
+  "CHANGE_VERSION_ID" bigint,
+  "VERSION" bigint NOT NULL,
+  "TOPIC" character varying(255) NOT NULL
+);
+--
+ALTER TABLE ONLY "CHANGE_VERSION" ADD CONSTRAINT "CHANGE_VERSION_pkey" PRIMARY KEY ("CHANGE_VERSION_ID");
+ALTER TABLE ONLY "CHANGE_VERSION" ADD CONSTRAINT "CHANGE_VERSION_UNIQUE" UNIQUE ("TOPIC");

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql b/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
index 1db9993..7463a37 100644
--- a/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/hive-schema-2.1.0.postgres.sql
@@ -514,6 +514,15 @@ CREATE TABLE "VERSION" (
 );
 
 --
+-- Table structure for CHANGE_VERSION
+--
+CREATE TABLE "CHANGE_VERSION" (
+  "CHANGE_VERSION_ID" bigint,
+  "VERSION" bigint NOT NULL,
+  "TOPIC" character varying(255) NOT NULL
+);
+
+--
 -- Name: PART_COL_STATS Type: TABLE; Schema: public; Owner: hiveuser; Tablespace:
 --
 
@@ -1427,6 +1436,11 @@ ALTER TABLE ONLY "PART_COL_STATS" ADD CONSTRAINT "PART_COL_STATS_fkey" FOREIGN K
 
 ALTER TABLE ONLY "VERSION" ADD CONSTRAINT "VERSION_pkey" PRIMARY KEY ("VER_ID");
 
+ALTER TABLE ONLY "CHANGE_VERSION" ADD CONSTRAINT "CHANGE_VERSION_pkey" PRIMARY KEY ("CHANGE_VERSION_ID");
+
+ALTER TABLE ONLY "CHANGE_VERSION" ADD CONSTRAINT "CHANGE_VERSION_UNIQUE" UNIQUE ("TOPIC");
+
+
 -- Name: FUNCS_FK1; Type: FK CONSTRAINT; Schema: public; Owner: hiveuser
 ALTER TABLE ONLY "FUNCS"
     ADD CONSTRAINT "FUNCS_FK1" FOREIGN KEY ("DB_ID") REFERENCES "DBS" ("DB_ID") DEFERRABLE;

http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/scripts/upgrade/postgres/upgrade-2.0.0-to-2.1.0.postgres.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/postgres/upgrade-2.0.0-to-2.1.0.postgres.sql b/metastore/scripts/upgrade/postgres/upgrade-2.0.0-to-2.1.0.postgres.sql
index 316d44a..6172407 100644
--- a/metastore/scripts/upgrade/postgres/upgrade-2.0.0-to-2.1.0.postgres.sql
+++ b/metastore/scripts/upgrade/postgres/upgrade-2.0.0-to-2.1.0.postgres.sql
@@ -1,5 +1,7 @@
 SELECT 'Upgrading MetaStore schema from 2.0.0 to 2.1.0';
 
+\i 032-HIVE-12892.postgres.sql;
+
 UPDATE "VERSION" SET "SCHEMA_VERSION"='2.1.0', "VERSION_COMMENT"='Hive release version 2.1.0' where "VER_ID"=1;
 SELECT 'Finished upgrading MetaStore schema from 2.0.0 to 2.1.0';
 


[2/5] hive git commit: HIVE-12892 : Add global change versioning to permanent functions in metastore (Sergey Shelukhin, reviewed by Alan Gates)

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/5be9c92f/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
index 7ae18a1..9652b42 100644
--- a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
+++ b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
@@ -308,6 +308,8 @@ public class ThriftHiveMetastore {
 
     public CacheFileMetadataResult cache_file_metadata(CacheFileMetadataRequest req) throws org.apache.thrift.TException;
 
+    public GetChangeVersionResult get_change_version(GetChangeVersionRequest req) throws org.apache.thrift.TException;
+
   }
 
   public interface AsyncIface extends com.facebook.fb303.FacebookService .AsyncIface {
@@ -578,6 +580,8 @@ public class ThriftHiveMetastore {
 
     public void cache_file_metadata(CacheFileMetadataRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
+    public void get_change_version(GetChangeVersionRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
   }
 
   public static class Client extends com.facebook.fb303.FacebookService.Client implements Iface {
@@ -4487,6 +4491,29 @@ public class ThriftHiveMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "cache_file_metadata failed: unknown result");
     }
 
+    public GetChangeVersionResult get_change_version(GetChangeVersionRequest req) throws org.apache.thrift.TException
+    {
+      send_get_change_version(req);
+      return recv_get_change_version();
+    }
+
+    public void send_get_change_version(GetChangeVersionRequest req) throws org.apache.thrift.TException
+    {
+      get_change_version_args args = new get_change_version_args();
+      args.setReq(req);
+      sendBase("get_change_version", args);
+    }
+
+    public GetChangeVersionResult recv_get_change_version() throws org.apache.thrift.TException
+    {
+      get_change_version_result result = new get_change_version_result();
+      receiveBase(result, "get_change_version");
+      if (result.isSetSuccess()) {
+        return result.success;
+      }
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get_change_version failed: unknown result");
+    }
+
   }
   public static class AsyncClient extends com.facebook.fb303.FacebookService.AsyncClient implements AsyncIface {
     public static class Factory implements org.apache.thrift.async.TAsyncClientFactory<AsyncClient> {
@@ -9229,6 +9256,38 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public void get_change_version(GetChangeVersionRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+      checkReady();
+      get_change_version_call method_call = new get_change_version_call(req, resultHandler, this, ___protocolFactory, ___transport);
+      this.___currentMethod = method_call;
+      ___manager.call(method_call);
+    }
+
+    public static class get_change_version_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private GetChangeVersionRequest req;
+      public get_change_version_call(GetChangeVersionRequest req, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+        super(client, protocolFactory, transport, resultHandler, false);
+        this.req = req;
+      }
+
+      public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get_change_version", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        get_change_version_args args = new get_change_version_args();
+        args.setReq(req);
+        args.write(prot);
+        prot.writeMessageEnd();
+      }
+
+      public GetChangeVersionResult getResult() throws org.apache.thrift.TException {
+        if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+          throw new IllegalStateException("Method call not finished!");
+        }
+        org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+        org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+        return (new Client(prot)).recv_get_change_version();
+      }
+    }
+
   }
 
   public static class Processor<I extends Iface> extends com.facebook.fb303.FacebookService.Processor<I> implements org.apache.thrift.TProcessor {
@@ -9375,6 +9434,7 @@ public class ThriftHiveMetastore {
       processMap.put("put_file_metadata", new put_file_metadata());
       processMap.put("clear_file_metadata", new clear_file_metadata());
       processMap.put("cache_file_metadata", new cache_file_metadata());
+      processMap.put("get_change_version", new get_change_version());
       return processMap;
     }
 
@@ -12800,6 +12860,26 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public static class get_change_version<I extends Iface> extends org.apache.thrift.ProcessFunction<I, get_change_version_args> {
+      public get_change_version() {
+        super("get_change_version");
+      }
+
+      public get_change_version_args getEmptyArgsInstance() {
+        return new get_change_version_args();
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public get_change_version_result getResult(I iface, get_change_version_args args) throws org.apache.thrift.TException {
+        get_change_version_result result = new get_change_version_result();
+        result.success = iface.get_change_version(args.req);
+        return result;
+      }
+    }
+
   }
 
   public static class AsyncProcessor<I extends AsyncIface> extends com.facebook.fb303.FacebookService.AsyncProcessor<I> {
@@ -12946,6 +13026,7 @@ public class ThriftHiveMetastore {
       processMap.put("put_file_metadata", new put_file_metadata());
       processMap.put("clear_file_metadata", new clear_file_metadata());
       processMap.put("cache_file_metadata", new cache_file_metadata());
+      processMap.put("get_change_version", new get_change_version());
       return processMap;
     }
 
@@ -21105,6 +21186,57 @@ public class ThriftHiveMetastore {
       }
     }
 
+    public static class get_change_version<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, get_change_version_args, GetChangeVersionResult> {
+      public get_change_version() {
+        super("get_change_version");
+      }
+
+      public get_change_version_args getEmptyArgsInstance() {
+        return new get_change_version_args();
+      }
+
+      public AsyncMethodCallback<GetChangeVersionResult> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+        final org.apache.thrift.AsyncProcessFunction fcall = this;
+        return new AsyncMethodCallback<GetChangeVersionResult>() {
+          public void onComplete(GetChangeVersionResult o) {
+            get_change_version_result result = new get_change_version_result();
+            result.success = o;
+            try {
+              fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+              return;
+            } catch (Exception e) {
+              LOGGER.error("Exception writing to internal frame buffer", e);
+            }
+            fb.close();
+          }
+          public void onError(Exception e) {
+            byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+            org.apache.thrift.TBase msg;
+            get_change_version_result result = new get_change_version_result();
+            {
+              msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+              msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+            }
+            try {
+              fcall.sendResponse(fb,msg,msgType,seqid);
+              return;
+            } catch (Exception ex) {
+              LOGGER.error("Exception writing to internal frame buffer", ex);
+            }
+            fb.close();
+          }
+        };
+      }
+
+      protected boolean isOneway() {
+        return false;
+      }
+
+      public void start(I iface, get_change_version_args args, org.apache.thrift.async.AsyncMethodCallback<GetChangeVersionResult> resultHandler) throws TException {
+        iface.get_change_version(args.req,resultHandler);
+      }
+    }
+
   }
 
   public static class getMetaConf_args implements org.apache.thrift.TBase<getMetaConf_args, getMetaConf_args._Fields>, java.io.Serializable, Cloneable, Comparable<getMetaConf_args>   {
@@ -156075,33 +156207,695 @@ public class ThriftHiveMetastore {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flushCache_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(flushCache_result.class, metaDataMap);
+    }
+
+    public flushCache_result() {
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public flushCache_result(flushCache_result other) {
+    }
+
+    public flushCache_result deepCopy() {
+      return new flushCache_result(this);
+    }
+
+    @Override
+    public void clear() {
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof flushCache_result)
+        return this.equals((flushCache_result)that);
+      return false;
+    }
+
+    public boolean equals(flushCache_result that) {
+      if (that == null)
+        return false;
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      List<Object> list = new ArrayList<Object>();
+
+      return list.hashCode();
+    }
+
+    @Override
+    public int compareTo(flushCache_result other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+      }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("flushCache_result(");
+      boolean first = true;
+
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class flushCache_resultStandardSchemeFactory implements SchemeFactory {
+      public flushCache_resultStandardScheme getScheme() {
+        return new flushCache_resultStandardScheme();
+      }
+    }
+
+    private static class flushCache_resultStandardScheme extends StandardScheme<flushCache_result> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, flushCache_result struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+            break;
+          }
+          switch (schemeField.id) {
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, flushCache_result struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class flushCache_resultTupleSchemeFactory implements SchemeFactory {
+      public flushCache_resultTupleScheme getScheme() {
+        return new flushCache_resultTupleScheme();
+      }
+    }
+
+    private static class flushCache_resultTupleScheme extends TupleScheme<flushCache_result> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, flushCache_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, flushCache_result struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+      }
+    }
+
+  }
+
+  public static class get_file_metadata_by_expr_args implements org.apache.thrift.TBase<get_file_metadata_by_expr_args, get_file_metadata_by_expr_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_by_expr_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_by_expr_args");
+
+    private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new get_file_metadata_by_expr_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new get_file_metadata_by_expr_argsTupleSchemeFactory());
+    }
+
+    private GetFileMetadataByExprRequest req; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      REQ((short)1, "req");
+
+      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 1: // REQ
+            return REQ;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataByExprRequest.class)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_by_expr_args.class, metaDataMap);
+    }
+
+    public get_file_metadata_by_expr_args() {
+    }
+
+    public get_file_metadata_by_expr_args(
+      GetFileMetadataByExprRequest req)
+    {
+      this();
+      this.req = req;
+    }
+
+    /**
+     * Performs a deep copy on <i>other</i>.
+     */
+    public get_file_metadata_by_expr_args(get_file_metadata_by_expr_args other) {
+      if (other.isSetReq()) {
+        this.req = new GetFileMetadataByExprRequest(other.req);
+      }
+    }
+
+    public get_file_metadata_by_expr_args deepCopy() {
+      return new get_file_metadata_by_expr_args(this);
+    }
+
+    @Override
+    public void clear() {
+      this.req = null;
+    }
+
+    public GetFileMetadataByExprRequest getReq() {
+      return this.req;
+    }
+
+    public void setReq(GetFileMetadataByExprRequest req) {
+      this.req = req;
+    }
+
+    public void unsetReq() {
+      this.req = null;
+    }
+
+    /** Returns true if field req is set (has been assigned a value) and false otherwise */
+    public boolean isSetReq() {
+      return this.req != null;
+    }
+
+    public void setReqIsSet(boolean value) {
+      if (!value) {
+        this.req = null;
+      }
+    }
+
+    public void setFieldValue(_Fields field, Object value) {
+      switch (field) {
+      case REQ:
+        if (value == null) {
+          unsetReq();
+        } else {
+          setReq((GetFileMetadataByExprRequest)value);
+        }
+        break;
+
+      }
+    }
+
+    public Object getFieldValue(_Fields field) {
+      switch (field) {
+      case REQ:
+        return getReq();
+
+      }
+      throw new IllegalStateException();
+    }
+
+    /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+    public boolean isSet(_Fields field) {
+      if (field == null) {
+        throw new IllegalArgumentException();
+      }
+
+      switch (field) {
+      case REQ:
+        return isSetReq();
+      }
+      throw new IllegalStateException();
+    }
+
+    @Override
+    public boolean equals(Object that) {
+      if (that == null)
+        return false;
+      if (that instanceof get_file_metadata_by_expr_args)
+        return this.equals((get_file_metadata_by_expr_args)that);
+      return false;
+    }
+
+    public boolean equals(get_file_metadata_by_expr_args that) {
+      if (that == null)
+        return false;
+
+      boolean this_present_req = true && this.isSetReq();
+      boolean that_present_req = true && that.isSetReq();
+      if (this_present_req || that_present_req) {
+        if (!(this_present_req && that_present_req))
+          return false;
+        if (!this.req.equals(that.req))
+          return false;
+      }
+
+      return true;
+    }
+
+    @Override
+    public int hashCode() {
+      List<Object> list = new ArrayList<Object>();
+
+      boolean present_req = true && (isSetReq());
+      list.add(present_req);
+      if (present_req)
+        list.add(req);
+
+      return list.hashCode();
+    }
+
+    @Override
+    public int compareTo(get_file_metadata_by_expr_args other) {
+      if (!getClass().equals(other.getClass())) {
+        return getClass().getName().compareTo(other.getClass().getName());
+      }
+
+      int lastComparison = 0;
+
+      lastComparison = Boolean.valueOf(isSetReq()).compareTo(other.isSetReq());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetReq()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      return 0;
+    }
+
+    public _Fields fieldForId(int fieldId) {
+      return _Fields.findByThriftId(fieldId);
+    }
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+      schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+      schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+    }
+
+    @Override
+    public String toString() {
+      StringBuilder sb = new StringBuilder("get_file_metadata_by_expr_args(");
+      boolean first = true;
+
+      sb.append("req:");
+      if (this.req == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.req);
+      }
+      first = false;
+      sb.append(")");
+      return sb.toString();
+    }
+
+    public void validate() throws org.apache.thrift.TException {
+      // check for required fields
+      // check for sub-struct validity
+      if (req != null) {
+        req.validate();
+      }
+    }
+
+    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+      try {
+        write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+      try {
+        read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+      } catch (org.apache.thrift.TException te) {
+        throw new java.io.IOException(te);
+      }
+    }
+
+    private static class get_file_metadata_by_expr_argsStandardSchemeFactory implements SchemeFactory {
+      public get_file_metadata_by_expr_argsStandardScheme getScheme() {
+        return new get_file_metadata_by_expr_argsStandardScheme();
+      }
+    }
+
+    private static class get_file_metadata_by_expr_argsStandardScheme extends StandardScheme<get_file_metadata_by_expr_args> {
+
+      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+        org.apache.thrift.protocol.TField schemeField;
+        iprot.readStructBegin();
+        while (true)
+        {
+          schemeField = iprot.readFieldBegin();
+          if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+            break;
+          }
+          switch (schemeField.id) {
+            case 1: // REQ
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.req = new GetFileMetadataByExprRequest();
+                struct.req.read(iprot);
+                struct.setReqIsSet(true);
+              } else {
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            default:
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+          }
+          iprot.readFieldEnd();
+        }
+        iprot.readStructEnd();
+        struct.validate();
+      }
+
+      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+        struct.validate();
+
+        oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.req != null) {
+          oprot.writeFieldBegin(REQ_FIELD_DESC);
+          struct.req.write(oprot);
+          oprot.writeFieldEnd();
+        }
+        oprot.writeFieldStop();
+        oprot.writeStructEnd();
+      }
+
+    }
+
+    private static class get_file_metadata_by_expr_argsTupleSchemeFactory implements SchemeFactory {
+      public get_file_metadata_by_expr_argsTupleScheme getScheme() {
+        return new get_file_metadata_by_expr_argsTupleScheme();
+      }
+    }
+
+    private static class get_file_metadata_by_expr_argsTupleScheme extends TupleScheme<get_file_metadata_by_expr_args> {
+
+      @Override
+      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol oprot = (TTupleProtocol) prot;
+        BitSet optionals = new BitSet();
+        if (struct.isSetReq()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetReq()) {
+          struct.req.write(oprot);
+        }
+      }
+
+      @Override
+      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+        TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(1);
+        if (incoming.get(0)) {
+          struct.req = new GetFileMetadataByExprRequest();
+          struct.req.read(iprot);
+          struct.setReqIsSet(true);
+        }
+      }
+    }
+
+  }
+
+  public static class get_file_metadata_by_expr_result implements org.apache.thrift.TBase<get_file_metadata_by_expr_result, get_file_metadata_by_expr_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_by_expr_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_by_expr_result");
+
+    private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+
+    private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+    static {
+      schemes.put(StandardScheme.class, new get_file_metadata_by_expr_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new get_file_metadata_by_expr_resultTupleSchemeFactory());
+    }
+
+    private GetFileMetadataByExprResult success; // required
+
+    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+      SUCCESS((short)0, "success");
+
+      private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+      static {
+        for (_Fields field : EnumSet.allOf(_Fields.class)) {
+          byName.put(field.getFieldName(), field);
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, or null if its not found.
+       */
+      public static _Fields findByThriftId(int fieldId) {
+        switch(fieldId) {
+          case 0: // SUCCESS
+            return SUCCESS;
+          default:
+            return null;
+        }
+      }
+
+      /**
+       * Find the _Fields constant that matches fieldId, throwing an exception
+       * if it is not found.
+       */
+      public static _Fields findByThriftIdOrThrow(int fieldId) {
+        _Fields fields = findByThriftId(fieldId);
+        if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+        return fields;
+      }
+
+      /**
+       * Find the _Fields constant that matches name, or null if its not found.
+       */
+      public static _Fields findByName(String name) {
+        return byName.get(name);
+      }
+
+      private final short _thriftId;
+      private final String _fieldName;
+
+      _Fields(short thriftId, String fieldName) {
+        _thriftId = thriftId;
+        _fieldName = fieldName;
+      }
+
+      public short getThriftFieldId() {
+        return _thriftId;
+      }
+
+      public String getFieldName() {
+        return _fieldName;
+      }
+    }
+
+    // isset id assignments
+    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+    static {
+      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+      tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataByExprResult.class)));
+      metaDataMap = Collections.unmodifiableMap(tmpMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_by_expr_result.class, metaDataMap);
     }
 
-    public flushCache_result() {
+    public get_file_metadata_by_expr_result() {
+    }
+
+    public get_file_metadata_by_expr_result(
+      GetFileMetadataByExprResult success)
+    {
+      this();
+      this.success = success;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public flushCache_result(flushCache_result other) {
+    public get_file_metadata_by_expr_result(get_file_metadata_by_expr_result other) {
+      if (other.isSetSuccess()) {
+        this.success = new GetFileMetadataByExprResult(other.success);
+      }
     }
 
-    public flushCache_result deepCopy() {
-      return new flushCache_result(this);
+    public get_file_metadata_by_expr_result deepCopy() {
+      return new get_file_metadata_by_expr_result(this);
     }
 
     @Override
     public void clear() {
+      this.success = null;
+    }
+
+    public GetFileMetadataByExprResult getSuccess() {
+      return this.success;
+    }
+
+    public void setSuccess(GetFileMetadataByExprResult success) {
+      this.success = success;
+    }
+
+    public void unsetSuccess() {
+      this.success = null;
+    }
+
+    /** Returns true if field success is set (has been assigned a value) and false otherwise */
+    public boolean isSetSuccess() {
+      return this.success != null;
+    }
+
+    public void setSuccessIsSet(boolean value) {
+      if (!value) {
+        this.success = null;
+      }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
+      case SUCCESS:
+        if (value == null) {
+          unsetSuccess();
+        } else {
+          setSuccess((GetFileMetadataByExprResult)value);
+        }
+        break;
+
       }
     }
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
+      case SUCCESS:
+        return getSuccess();
+
       }
       throw new IllegalStateException();
     }
@@ -156113,6 +156907,8 @@ public class ThriftHiveMetastore {
       }
 
       switch (field) {
+      case SUCCESS:
+        return isSetSuccess();
       }
       throw new IllegalStateException();
     }
@@ -156121,15 +156917,24 @@ public class ThriftHiveMetastore {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof flushCache_result)
-        return this.equals((flushCache_result)that);
+      if (that instanceof get_file_metadata_by_expr_result)
+        return this.equals((get_file_metadata_by_expr_result)that);
       return false;
     }
 
-    public boolean equals(flushCache_result that) {
+    public boolean equals(get_file_metadata_by_expr_result that) {
       if (that == null)
         return false;
 
+      boolean this_present_success = true && this.isSetSuccess();
+      boolean that_present_success = true && that.isSetSuccess();
+      if (this_present_success || that_present_success) {
+        if (!(this_present_success && that_present_success))
+          return false;
+        if (!this.success.equals(that.success))
+          return false;
+      }
+
       return true;
     }
 
@@ -156137,17 +156942,32 @@ public class ThriftHiveMetastore {
     public int hashCode() {
       List<Object> list = new ArrayList<Object>();
 
+      boolean present_success = true && (isSetSuccess());
+      list.add(present_success);
+      if (present_success)
+        list.add(success);
+
       return list.hashCode();
     }
 
     @Override
-    public int compareTo(flushCache_result other) {
+    public int compareTo(get_file_metadata_by_expr_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
+      lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetSuccess()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -156165,9 +156985,16 @@ public class ThriftHiveMetastore {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("flushCache_result(");
+      StringBuilder sb = new StringBuilder("get_file_metadata_by_expr_result(");
       boolean first = true;
 
+      sb.append("success:");
+      if (this.success == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.success);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -156175,6 +157002,9 @@ public class ThriftHiveMetastore {
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
+      if (success != null) {
+        success.validate();
+      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -156193,15 +157023,15 @@ public class ThriftHiveMetastore {
       }
     }
 
-    private static class flushCache_resultStandardSchemeFactory implements SchemeFactory {
-      public flushCache_resultStandardScheme getScheme() {
-        return new flushCache_resultStandardScheme();
+    private static class get_file_metadata_by_expr_resultStandardSchemeFactory implements SchemeFactory {
+      public get_file_metadata_by_expr_resultStandardScheme getScheme() {
+        return new get_file_metadata_by_expr_resultStandardScheme();
       }
     }
 
-    private static class flushCache_resultStandardScheme extends StandardScheme<flushCache_result> {
+    private static class get_file_metadata_by_expr_resultStandardScheme extends StandardScheme<get_file_metadata_by_expr_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, flushCache_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -156211,6 +157041,15 @@ public class ThriftHiveMetastore {
             break;
           }
           switch (schemeField.id) {
+            case 0: // SUCCESS
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.success = new GetFileMetadataByExprResult();
+                struct.success.read(iprot);
+                struct.setSuccessIsSet(true);
+              } else {
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -156220,49 +157059,68 @@ public class ThriftHiveMetastore {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, flushCache_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
+        if (struct.success != null) {
+          oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+          struct.success.write(oprot);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
 
     }
 
-    private static class flushCache_resultTupleSchemeFactory implements SchemeFactory {
-      public flushCache_resultTupleScheme getScheme() {
-        return new flushCache_resultTupleScheme();
+    private static class get_file_metadata_by_expr_resultTupleSchemeFactory implements SchemeFactory {
+      public get_file_metadata_by_expr_resultTupleScheme getScheme() {
+        return new get_file_metadata_by_expr_resultTupleScheme();
       }
     }
 
-    private static class flushCache_resultTupleScheme extends TupleScheme<flushCache_result> {
+    private static class get_file_metadata_by_expr_resultTupleScheme extends TupleScheme<get_file_metadata_by_expr_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, flushCache_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
+        BitSet optionals = new BitSet();
+        if (struct.isSetSuccess()) {
+          optionals.set(0);
+        }
+        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetSuccess()) {
+          struct.success.write(oprot);
+        }
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, flushCache_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
+        BitSet incoming = iprot.readBitSet(1);
+        if (incoming.get(0)) {
+          struct.success = new GetFileMetadataByExprResult();
+          struct.success.read(iprot);
+          struct.setSuccessIsSet(true);
+        }
       }
     }
 
   }
 
-  public static class get_file_metadata_by_expr_args implements org.apache.thrift.TBase<get_file_metadata_by_expr_args, get_file_metadata_by_expr_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_by_expr_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_by_expr_args");
+  public static class get_file_metadata_args implements org.apache.thrift.TBase<get_file_metadata_args, get_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_args");
 
     private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new get_file_metadata_by_expr_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new get_file_metadata_by_expr_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new get_file_metadata_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new get_file_metadata_argsTupleSchemeFactory());
     }
 
-    private GetFileMetadataByExprRequest req; // required
+    private GetFileMetadataRequest req; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -156327,16 +157185,16 @@ public class ThriftHiveMetastore {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataByExprRequest.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataRequest.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_by_expr_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_args.class, metaDataMap);
     }
 
-    public get_file_metadata_by_expr_args() {
+    public get_file_metadata_args() {
     }
 
-    public get_file_metadata_by_expr_args(
-      GetFileMetadataByExprRequest req)
+    public get_file_metadata_args(
+      GetFileMetadataRequest req)
     {
       this();
       this.req = req;
@@ -156345,14 +157203,14 @@ public class ThriftHiveMetastore {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_file_metadata_by_expr_args(get_file_metadata_by_expr_args other) {
+    public get_file_metadata_args(get_file_metadata_args other) {
       if (other.isSetReq()) {
-        this.req = new GetFileMetadataByExprRequest(other.req);
+        this.req = new GetFileMetadataRequest(other.req);
       }
     }
 
-    public get_file_metadata_by_expr_args deepCopy() {
-      return new get_file_metadata_by_expr_args(this);
+    public get_file_metadata_args deepCopy() {
+      return new get_file_metadata_args(this);
     }
 
     @Override
@@ -156360,11 +157218,11 @@ public class ThriftHiveMetastore {
       this.req = null;
     }
 
-    public GetFileMetadataByExprRequest getReq() {
+    public GetFileMetadataRequest getReq() {
       return this.req;
     }
 
-    public void setReq(GetFileMetadataByExprRequest req) {
+    public void setReq(GetFileMetadataRequest req) {
       this.req = req;
     }
 
@@ -156389,7 +157247,7 @@ public class ThriftHiveMetastore {
         if (value == null) {
           unsetReq();
         } else {
-          setReq((GetFileMetadataByExprRequest)value);
+          setReq((GetFileMetadataRequest)value);
         }
         break;
 
@@ -156422,12 +157280,12 @@ public class ThriftHiveMetastore {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof get_file_metadata_by_expr_args)
-        return this.equals((get_file_metadata_by_expr_args)that);
+      if (that instanceof get_file_metadata_args)
+        return this.equals((get_file_metadata_args)that);
       return false;
     }
 
-    public boolean equals(get_file_metadata_by_expr_args that) {
+    public boolean equals(get_file_metadata_args that) {
       if (that == null)
         return false;
 
@@ -156456,7 +157314,7 @@ public class ThriftHiveMetastore {
     }
 
     @Override
-    public int compareTo(get_file_metadata_by_expr_args other) {
+    public int compareTo(get_file_metadata_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -156490,7 +157348,7 @@ public class ThriftHiveMetastore {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("get_file_metadata_by_expr_args(");
+      StringBuilder sb = new StringBuilder("get_file_metadata_args(");
       boolean first = true;
 
       sb.append("req:");
@@ -156528,15 +157386,15 @@ public class ThriftHiveMetastore {
       }
     }
 
-    private static class get_file_metadata_by_expr_argsStandardSchemeFactory implements SchemeFactory {
-      public get_file_metadata_by_expr_argsStandardScheme getScheme() {
-        return new get_file_metadata_by_expr_argsStandardScheme();
+    private static class get_file_metadata_argsStandardSchemeFactory implements SchemeFactory {
+      public get_file_metadata_argsStandardScheme getScheme() {
+        return new get_file_metadata_argsStandardScheme();
       }
     }
 
-    private static class get_file_metadata_by_expr_argsStandardScheme extends StandardScheme<get_file_metadata_by_expr_args> {
+    private static class get_file_metadata_argsStandardScheme extends StandardScheme<get_file_metadata_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -156548,7 +157406,7 @@ public class ThriftHiveMetastore {
           switch (schemeField.id) {
             case 1: // REQ
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.req = new GetFileMetadataByExprRequest();
+                struct.req = new GetFileMetadataRequest();
                 struct.req.read(iprot);
                 struct.setReqIsSet(true);
               } else { 
@@ -156564,7 +157422,7 @@ public class ThriftHiveMetastore {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -156579,16 +157437,16 @@ public class ThriftHiveMetastore {
 
     }
 
-    private static class get_file_metadata_by_expr_argsTupleSchemeFactory implements SchemeFactory {
-      public get_file_metadata_by_expr_argsTupleScheme getScheme() {
-        return new get_file_metadata_by_expr_argsTupleScheme();
+    private static class get_file_metadata_argsTupleSchemeFactory implements SchemeFactory {
+      public get_file_metadata_argsTupleScheme getScheme() {
+        return new get_file_metadata_argsTupleScheme();
       }
     }
 
-    private static class get_file_metadata_by_expr_argsTupleScheme extends TupleScheme<get_file_metadata_by_expr_args> {
+    private static class get_file_metadata_argsTupleScheme extends TupleScheme<get_file_metadata_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetReq()) {
@@ -156601,11 +157459,11 @@ public class ThriftHiveMetastore {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.req = new GetFileMetadataByExprRequest();
+          struct.req = new GetFileMetadataRequest();
           struct.req.read(iprot);
           struct.setReqIsSet(true);
         }
@@ -156614,18 +157472,18 @@ public class ThriftHiveMetastore {
 
   }
 
-  public static class get_file_metadata_by_expr_result implements org.apache.thrift.TBase<get_file_metadata_by_expr_result, get_file_metadata_by_expr_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_by_expr_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_by_expr_result");
+  public static class get_file_metadata_result implements org.apache.thrift.TBase<get_file_metadata_result, get_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new get_file_metadata_by_expr_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new get_file_metadata_by_expr_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new get_file_metadata_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new get_file_metadata_resultTupleSchemeFactory());
     }
 
-    private GetFileMetadataByExprResult success; // required
+    private GetFileMetadataResult success; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -156690,16 +157548,16 @@ public class ThriftHiveMetastore {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataByExprResult.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataResult.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_by_expr_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_result.class, metaDataMap);
     }
 
-    public get_file_metadata_by_expr_result() {
+    public get_file_metadata_result() {
     }
 
-    public get_file_metadata_by_expr_result(
-      GetFileMetadataByExprResult success)
+    public get_file_metadata_result(
+      GetFileMetadataResult success)
     {
       this();
       this.success = success;
@@ -156708,14 +157566,14 @@ public class ThriftHiveMetastore {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_file_metadata_by_expr_result(get_file_metadata_by_expr_result other) {
+    public get_file_metadata_result(get_file_metadata_result other) {
       if (other.isSetSuccess()) {
-        this.success = new GetFileMetadataByExprResult(other.success);
+        this.success = new GetFileMetadataResult(other.success);
       }
     }
 
-    public get_file_metadata_by_expr_result deepCopy() {
-      return new get_file_metadata_by_expr_result(this);
+    public get_file_metadata_result deepCopy() {
+      return new get_file_metadata_result(this);
     }
 
     @Override
@@ -156723,11 +157581,11 @@ public class ThriftHiveMetastore {
       this.success = null;
     }
 
-    public GetFileMetadataByExprResult getSuccess() {
+    public GetFileMetadataResult getSuccess() {
       return this.success;
     }
 
-    public void setSuccess(GetFileMetadataByExprResult success) {
+    public void setSuccess(GetFileMetadataResult success) {
       this.success = success;
     }
 
@@ -156752,7 +157610,7 @@ public class ThriftHiveMetastore {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((GetFileMetadataByExprResult)value);
+          setSuccess((GetFileMetadataResult)value);
         }
         break;
 
@@ -156785,12 +157643,12 @@ public class ThriftHiveMetastore {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof get_file_metadata_by_expr_result)
-        return this.equals((get_file_metadata_by_expr_result)that);
+      if (that instanceof get_file_metadata_result)
+        return this.equals((get_file_metadata_result)that);
       return false;
     }
 
-    public boolean equals(get_file_metadata_by_expr_result that) {
+    public boolean equals(get_file_metadata_result that) {
       if (that == null)
         return false;
 
@@ -156819,7 +157677,7 @@ public class ThriftHiveMetastore {
     }
 
     @Override
-    public int compareTo(get_file_metadata_by_expr_result other) {
+    public int compareTo(get_file_metadata_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -156853,7 +157711,7 @@ public class ThriftHiveMetastore {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("get_file_metadata_by_expr_result(");
+      StringBuilder sb = new StringBuilder("get_file_metadata_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -156891,15 +157749,15 @@ public class ThriftHiveMetastore {
       }
     }
 
-    private static class get_file_metadata_by_expr_resultStandardSchemeFactory implements SchemeFactory {
-      public get_file_metadata_by_expr_resultStandardScheme getScheme() {
-        return new get_file_metadata_by_expr_resultStandardScheme();
+    private static class get_file_metadata_resultStandardSchemeFactory implements SchemeFactory {
+      public get_file_metadata_resultStandardScheme getScheme() {
+        return new get_file_metadata_resultStandardScheme();
       }
     }
 
-    private static class get_file_metadata_by_expr_resultStandardScheme extends StandardScheme<get_file_metadata_by_expr_result> {
+    private static class get_file_metadata_resultStandardScheme extends StandardScheme<get_file_metadata_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -156911,7 +157769,7 @@ public class ThriftHiveMetastore {
           switch (schemeField.id) {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new GetFileMetadataByExprResult();
+                struct.success = new GetFileMetadataResult();
                 struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
@@ -156927,7 +157785,7 @@ public class ThriftHiveMetastore {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -156942,16 +157800,16 @@ public class ThriftHiveMetastore {
 
     }
 
-    private static class get_file_metadata_by_expr_resultTupleSchemeFactory implements SchemeFactory {
-      public get_file_metadata_by_expr_resultTupleScheme getScheme() {
-        return new get_file_metadata_by_expr_resultTupleScheme();
+    private static class get_file_metadata_resultTupleSchemeFactory implements SchemeFactory {
+      public get_file_metadata_resultTupleScheme getScheme() {
+        return new get_file_metadata_resultTupleScheme();
       }
     }
 
-    private static class get_file_metadata_by_expr_resultTupleScheme extends TupleScheme<get_file_metadata_by_expr_result> {
+    private static class get_file_metadata_resultTupleScheme extends TupleScheme<get_file_metadata_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetSuccess()) {
@@ -156964,11 +157822,11 @@ public class ThriftHiveMetastore {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_by_expr_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.success = new GetFileMetadataByExprResult();
+          struct.success = new GetFileMetadataResult();
           struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
@@ -156977,18 +157835,18 @@ public class ThriftHiveMetastore {
 
   }
 
-  public static class get_file_metadata_args implements org.apache.thrift.TBase<get_file_metadata_args, get_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_args");
+  public static class put_file_metadata_args implements org.apache.thrift.TBase<put_file_metadata_args, put_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<put_file_metadata_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("put_file_metadata_args");
 
     private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new get_file_metadata_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new get_file_metadata_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new put_file_metadata_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new put_file_metadata_argsTupleSchemeFactory());
     }
 
-    private GetFileMetadataRequest req; // required
+    private PutFileMetadataRequest req; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -157053,16 +157911,16 @@ public class ThriftHiveMetastore {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataRequest.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PutFileMetadataRequest.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(put_file_metadata_args.class, metaDataMap);
     }
 
-    public get_file_metadata_args() {
+    public put_file_metadata_args() {
     }
 
-    public get_file_metadata_args(
-      GetFileMetadataRequest req)
+    public put_file_metadata_args(
+      PutFileMetadataRequest req)
     {
       this();
       this.req = req;
@@ -157071,14 +157929,14 @@ public class ThriftHiveMetastore {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_file_metadata_args(get_file_metadata_args other) {
+    public put_file_metadata_args(put_file_metadata_args other) {
       if (other.isSetReq()) {
-        this.req = new GetFileMetadataRequest(other.req);
+        this.req = new PutFileMetadataRequest(other.req);
       }
     }
 
-    public get_file_metadata_args deepCopy() {
-      return new get_file_metadata_args(this);
+    public put_file_metadata_args deepCopy() {
+      return new put_file_metadata_args(this);
     }
 
     @Override
@@ -157086,11 +157944,11 @@ public class ThriftHiveMetastore {
       this.req = null;
     }
 
-    public GetFileMetadataRequest getReq() {
+    public PutFileMetadataRequest getReq() {
       return this.req;
     }
 
-    public void setReq(GetFileMetadataRequest req) {
+    public void setReq(PutFileMetadataRequest req) {
       this.req = req;
     }
 
@@ -157115,7 +157973,7 @@ public class ThriftHiveMetastore {
         if (value == null) {
           unsetReq();
         } else {
-          setReq((GetFileMetadataRequest)value);
+          setReq((PutFileMetadataRequest)value);
         }
         break;
 
@@ -157148,12 +158006,12 @@ public class ThriftHiveMetastore {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof get_file_metadata_args)
-        return this.equals((get_file_metadata_args)that);
+      if (that instanceof put_file_metadata_args)
+        return this.equals((put_file_metadata_args)that);
       return false;
     }
 
-    public boolean equals(get_file_metadata_args that) {
+    public boolean equals(put_file_metadata_args that) {
       if (that == null)
         return false;
 
@@ -157182,7 +158040,7 @@ public class ThriftHiveMetastore {
     }
 
     @Override
-    public int compareTo(get_file_metadata_args other) {
+    public int compareTo(put_file_metadata_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -157216,7 +158074,7 @@ public class ThriftHiveMetastore {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("get_file_metadata_args(");
+      StringBuilder sb = new StringBuilder("put_file_metadata_args(");
       boolean first = true;
 
       sb.append("req:");
@@ -157254,15 +158112,15 @@ public class ThriftHiveMetastore {
       }
     }
 
-    private static class get_file_metadata_argsStandardSchemeFactory implements SchemeFactory {
-      public get_file_metadata_argsStandardScheme getScheme() {
-        return new get_file_metadata_argsStandardScheme();
+    private static class put_file_metadata_argsStandardSchemeFactory implements SchemeFactory {
+      public put_file_metadata_argsStandardScheme getScheme() {
+        return new put_file_metadata_argsStandardScheme();
       }
     }
 
-    private static class get_file_metadata_argsStandardScheme extends StandardScheme<get_file_metadata_args> {
+    private static class put_file_metadata_argsStandardScheme extends StandardScheme<put_file_metadata_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, put_file_metadata_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -157274,7 +158132,7 @@ public class ThriftHiveMetastore {
           switch (schemeField.id) {
             case 1: // REQ
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.req = new GetFileMetadataRequest();
+                struct.req = new PutFileMetadataRequest();
                 struct.req.read(iprot);
                 struct.setReqIsSet(true);
               } else { 
@@ -157290,7 +158148,7 @@ public class ThriftHiveMetastore {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, put_file_metadata_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -157305,16 +158163,16 @@ public class ThriftHiveMetastore {
 
     }
 
-    private static class get_file_metadata_argsTupleSchemeFactory implements SchemeFactory {
-      public get_file_metadata_argsTupleScheme getScheme() {
-        return new get_file_metadata_argsTupleScheme();
+    private static class put_file_metadata_argsTupleSchemeFactory implements SchemeFactory {
+      public put_file_metadata_argsTupleScheme getScheme() {
+        return new put_file_metadata_argsTupleScheme();
       }
     }
 
-    private static class get_file_metadata_argsTupleScheme extends TupleScheme<get_file_metadata_args> {
+    private static class put_file_metadata_argsTupleScheme extends TupleScheme<put_file_metadata_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetReq()) {
@@ -157327,11 +158185,11 @@ public class ThriftHiveMetastore {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.req = new GetFileMetadataRequest();
+          struct.req = new PutFileMetadataRequest();
           struct.req.read(iprot);
           struct.setReqIsSet(true);
         }
@@ -157340,18 +158198,18 @@ public class ThriftHiveMetastore {
 
   }
 
-  public static class get_file_metadata_result implements org.apache.thrift.TBase<get_file_metadata_result, get_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<get_file_metadata_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_file_metadata_result");
+  public static class put_file_metadata_result implements org.apache.thrift.TBase<put_file_metadata_result, put_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<put_file_metadata_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("put_file_metadata_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new get_file_metadata_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new get_file_metadata_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new put_file_metadata_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new put_file_metadata_resultTupleSchemeFactory());
     }
 
-    private GetFileMetadataResult success; // required
+    private PutFileMetadataResult success; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -157416,16 +158274,16 @@ public class ThriftHiveMetastore {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, GetFileMetadataResult.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PutFileMetadataResult.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_file_metadata_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(put_file_metadata_result.class, metaDataMap);
     }
 
-    public get_file_metadata_result() {
+    public put_file_metadata_result() {
     }
 
-    public get_file_metadata_result(
-      GetFileMetadataResult success)
+    public put_file_metadata_result(
+      PutFileMetadataResult success)
     {
       this();
       this.success = success;
@@ -157434,14 +158292,14 @@ public class ThriftHiveMetastore {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public get_file_metadata_result(get_file_metadata_result other) {
+    public put_file_metadata_result(put_file_metadata_result other) {
       if (other.isSetSuccess()) {
-        this.success = new GetFileMetadataResult(other.success);
+        this.success = new PutFileMetadataResult(other.success);
       }
     }
 
-    public get_file_metadata_result deepCopy() {
-      return new get_file_metadata_result(this);
+    public put_file_metadata_result deepCopy() {
+      return new put_file_metadata_result(this);
     }
 
     @Override
@@ -157449,11 +158307,11 @@ public class ThriftHiveMetastore {
       this.success = null;
     }
 
-    public GetFileMetadataResult getSuccess() {
+    public PutFileMetadataResult getSuccess() {
       return this.success;
     }
 
-    public void setSuccess(GetFileMetadataResult success) {
+    public void setSuccess(PutFileMetadataResult success) {
       this.success = success;
     }
 
@@ -157478,7 +158336,7 @@ public class ThriftHiveMetastore {
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((GetFileMetadataResult)value);
+          setSuccess((PutFileMetadataResult)value);
         }
         break;
 
@@ -157511,12 +158369,12 @@ public class ThriftHiveMetastore {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof get_file_metadata_result)
-        return this.equals((get_file_metadata_result)that);
+      if (that instanceof put_file_metadata_result)
+        return this.equals((put_file_metadata_result)that);
       return false;
     }
 
-    public boolean equals(get_file_metadata_result that) {
+    public boolean equals(put_file_metadata_result that) {
       if (that == null)
         return false;
 
@@ -157545,7 +158403,7 @@ public class ThriftHiveMetastore {
     }
 
     @Override
-    public int compareTo(get_file_metadata_result other) {
+    public int compareTo(put_file_metadata_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -157579,7 +158437,7 @@ public class ThriftHiveMetastore {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("get_file_metadata_result(");
+      StringBuilder sb = new StringBuilder("put_file_metadata_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -157617,15 +158475,15 @@ public class ThriftHiveMetastore {
       }
     }
 
-    private static class get_file_metadata_resultStandardSchemeFactory implements SchemeFactory {
-      public get_file_metadata_resultStandardScheme getScheme() {
-        return new get_file_metadata_resultStandardScheme();
+    private static class put_file_metadata_resultStandardSchemeFactory implements SchemeFactory {
+      public put_file_metadata_resultStandardScheme getScheme() {
+        return new put_file_metadata_resultStandardScheme();
       }
     }
 
-    private static class get_file_metadata_resultStandardScheme extends StandardScheme<get_file_metadata_result> {
+    private static class put_file_metadata_resultStandardScheme extends StandardScheme<put_file_metadata_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, get_file_metadata_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, put_file_metadata_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -157637,7 +158495,7 @@ public class ThriftHiveMetastore {
           switch (schemeField.id) {
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.success = new GetFileMetadataResult();
+                struct.success = new PutFileMetadataResult();
                 struct.success.read(iprot);
                 struct.setSuccessIsSet(true);
               } else { 
@@ -157653,7 +158511,7 @@ public class ThriftHiveMetastore {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, get_file_metadata_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, put_file_metadata_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -157668,16 +158526,16 @@ public class ThriftHiveMetastore {
 
     }
 
-    private static class get_file_metadata_resultTupleSchemeFactory implements SchemeFactory {
-      public get_file_metadata_resultTupleScheme getScheme() {
-        return new get_file_metadata_resultTupleScheme();
+    private static class put_file_metadata_resultTupleSchemeFactory implements SchemeFactory {
+      public put_file_metadata_resultTupleScheme getScheme() {
+        return new put_file_metadata_resultTupleScheme();
       }
     }
 
-    private static class get_file_metadata_resultTupleScheme extends TupleScheme<get_file_metadata_result> {
+    private static class put_file_metadata_resultTupleScheme extends TupleScheme<put_file_metadata_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetSuccess()) {
@@ -157690,11 +158548,11 @@ public class ThriftHiveMetastore {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, get_file_metadata_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.success = new GetFileMetadataResult();
+          struct.success = new PutFileMetadataResult();
           struct.success.read(iprot);
           struct.setSuccessIsSet(true);
         }
@@ -157703,18 +158561,18 @@ public class ThriftHiveMetastore {
 
   }
 
-  public static class put_file_metadata_args implements org.apache.thrift.TBase<put_file_metadata_args, put_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<put_file_metadata_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("put_file_metadata_args");
+  public static class clear_file_metadata_args implements org.apache.thrift.TBase<clear_file_metadata_args, clear_file_metadata_args._Fields>, java.io.Serializable, Cloneable, Comparable<clear_file_metadata_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("clear_file_metadata_args");
 
     private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new put_file_metadata_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new put_file_metadata_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new clear_file_metadata_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new clear_file_metadata_argsTupleSchemeFactory());
     }
 
-    private PutFileMetadataRequest req; // required
+    private ClearFileMetadataRequest req; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -157779,16 +158637,16 @@ public class ThriftHiveMetastore {
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, PutFileMetadataRequest.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ClearFileMetadataRequest.class)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(put_file_metadata_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(clear_file_metadata_args.class, metaDataMap);
     }
 
-    public put_file_metadata_args() {
+    public clear_file_metadata_args() {
     }
 
-    public put_file_metadata_args(
-      PutFileMetadataRequest req)
+    public clear_file_metadata_args(
+      ClearFileMetadataRequest req)
     {
       this();
       this.req = req;
@@ -157797,14 +158655,14 @@ public class ThriftHiveMetastore {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public put_file_metadata_args(put_file_metadata_args other) {
+    public clear_file_metadata_args(clear_file_metadata_args other) {
       if (other.isSetReq()) {
-        this.req = new PutFileMetadataRequest(other.req);
+        this.req = new ClearFileMetadataRequest(other.req);
       }
     }
 
-    public put_file_metadata_args deepCopy() {
-      return new put_file_metadata_args(this);
+    public clear_file_metadata_args deepCopy() {
+      return new clear_file_metadata_args(this);
     }
 
     @Override
@@ -157812,11 +158670,11 @@ public class ThriftHiveMetastore {
       this.req = null;
     }
 
-    public PutFileMetadataRequest getReq() {
+    public ClearFileMetadataRequest getReq() {
       return this.req;
     }
 
-    public void setReq(PutFileMetadataRequest req) {
+    public void setReq(ClearFileMetadataRequest req) {
       this.req = req;
     }
 
@@ -157841,7 +158699,7 @@ public class ThriftHiveMetastore {
         if (value == null) {
           unsetReq();
         } else {
-          setReq((PutFileMetadataRequest)value);
+          setReq((ClearFileMetadataRequest)value);
         }
         break;
 
@@ -157874,12 +158732,12 @@ public class ThriftHiveMetastore {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof put_file_metadata_args)
-        return this.equals((put_file_metadata_args)that);
+      if (that instanceof clear_file_metadata_args)
+        return this.equals((clear_file_metadata_args)that);
       return false;
     }
 
-    public boolean equals(put_file_metadata_args that) {
+    public boolean equals(clear_file_metadata_args that) {
       if (that == null)
         return false;
 
@@ -157908,7 +158766,7 @@ public class ThriftHiveMetastore {
     }
 
     @Override
-    public int compareTo(put_file_metadata_args other) {
+    public int compareTo(clear_file_metadata_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -157942,7 +158800,7 @@ public class ThriftHiveMetastore {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("put_file_metadata_args(");
+      StringBuilder sb = new StringBuilder("clear_file_metadata_args(");
       boolean first = true;
 
       sb.append("req:");
@@ -157980,15 +158838,15 @@ public class ThriftHiveMetastore {
       }
     }
 
-    private static class put_file_metadata_argsStandardSchemeFactory implements SchemeFactory {
-      public put_file_metadata_argsStandardScheme getScheme() {
-        return new put_file_metadata_argsStandardScheme();
+    private static class clear_file_metadata_argsStandardSchemeFactory implements SchemeFactory {
+      public clear_file_metadata_argsStandardScheme getScheme() {
+        return new clear_file_metadata_argsStandardScheme();
       }
     }
 
-    private static class put_file_metadata_argsStandardScheme extends StandardScheme<put_file_metadata_args> {
+    private static class clear_file_metadata_argsStandardScheme extends StandardScheme<clear_file_metadata_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, put_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -158000,7 +158858,7 @@ public class ThriftHiveMetastore {
           switch (schemeField.id) {
             case 1: // REQ
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.req = new PutFileMetadataRequest();
+                struct.req = new ClearFileMetadataRequest();
                 struct.req.read(iprot);
                 struct.setReqIsSet(true);
               } else { 
@@ -158016,7 +158874,7 @@ public class ThriftHiveMetastore {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, put_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -158031,16 +158889,16 @@ public class ThriftHiveMetastore {
 
     }
 
-    private static class put_file_metadata_argsTupleSchemeFactory implements SchemeFactory {
-      public put_file_metadata_argsTupleScheme getScheme() {
-        return new put_file_metadata_argsTupleScheme();
+    private static class clear_file_metadata_argsTupleSchemeFactory implements SchemeFactory {
+      public clear_file_metadata_argsTupleScheme getScheme() {
+        return new clear_file_metadata_argsTupleScheme();
       }
     }
 
-    private static class put_file_metadata_argsTupleScheme extends TupleScheme<put_file_metadata_args> {
+    private static class clear_file_metadata_argsTupleScheme extends TupleScheme<clear_file_metadata_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetReq()) {
@@ -158053,11 +158911,11 @@ public class ThriftHiveMetastore {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, put_file_metadata_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, clear_file_metadata_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.req = new PutFileMetadataRequest();
+          struct.req = new ClearFileMetadataRequest();
           struct.req.read(iprot);
           struct.setReqIsSet(true);
         }
@@ -158066,18 +158924,18 @@ public class ThriftHiveMetastore {
 
   }
 
-  public static class put_file_metadata_result implements org.apache.thrift.TBase<put_file_metadata_result, put_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<put_file_metadata_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("put_file_metadata_result");
+  public static class clear_file_metadata_result implements org.apache.thrift.TBase<clear_file_metadata_result, clear_file_metadata_result._Fields>, java.io.Serializable, Cloneable, Comparable<clear_file_metadata_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("clear_file_metadata_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new put_file_metadata_resultStandardSchemeFactory());
-      schem

<TRUNCATED>