HIVE-11487 : Adds getNumPartitionsByFilter api in metastore api

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

Branch: refs/heads/master
Commit: cdcc35e61f42a9a63a6b6c5d717043ae83fc44a4
Parents: a60fec2
Author: Akshay Goyal <[email protected]>
Authored: Tue Dec 22 10:05:22 2015 +0530
Committer: Amareshwari Sriramadasu <[email protected]>
Committed: Tue Dec 22 10:05:22 2015 +0530

----------------------------------------------------------------------
 metastore/if/hive_metastore.thrift              |    4 +
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp  |  479 +++
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.h    |  156 +
 .../ThriftHiveMetastore_server.skeleton.cpp     |    5 +
 .../metastore/api/CacheFileMetadataRequest.java |   19 +-
 .../metastore/api/CacheFileMetadataResult.java  |    7 +-
 .../metastore/api/FileMetadataExprType.java     |    4 +
 .../metastore/api/PutFileMetadataRequest.java   |   10 +-
 .../hive/metastore/api/ThriftHiveMetastore.java | 3379 ++++++++++++------
 .../gen-php/metastore/ThriftHiveMetastore.php   |  315 ++
 .../hive_metastore/ThriftHiveMetastore-remote   |    7 +
 .../hive_metastore/ThriftHiveMetastore.py       |  257 ++
 .../gen/thrift/gen-rb/thrift_hive_metastore.rb  |   70 +
 .../hadoop/hive/metastore/HiveMetaStore.java    |   19 +
 .../hive/metastore/HiveMetaStoreClient.java     |   19 +-
 .../hadoop/hive/metastore/IMetaStoreClient.java |   16 +
 .../hive/metastore/MetaStoreDirectSql.java      |   47 +
 .../hadoop/hive/metastore/ObjectStore.java      |   37 +
 .../apache/hadoop/hive/metastore/RawStore.java  |    3 +
 .../hadoop/hive/metastore/hbase/HBaseStore.java |   15 +
 .../DummyRawStoreControlledCommit.java          |    6 +
 .../DummyRawStoreForJdoConnection.java          |    6 +
 .../hadoop/hive/metastore/TestObjectStore.java  |   11 +-
 .../apache/hadoop/hive/ql/metadata/Hive.java    |   24 +
 .../gen-py/hive_service/ThriftHive-remote       |    7 +
 25 files changed, 3863 insertions(+), 1059 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/metastore/if/hive_metastore.thrift
----------------------------------------------------------------------
diff --git a/metastore/if/hive_metastore.thrift 
b/metastore/if/hive_metastore.thrift
index e6403ed..56ec9aa 100755
--- a/metastore/if/hive_metastore.thrift
+++ b/metastore/if/hive_metastore.thrift
@@ -1067,6 +1067,10 @@ service ThriftHiveMetastore extends fb303.FacebookService
   PartitionsByExprResult get_partitions_by_expr(1:PartitionsByExprRequest req)
                        throws(1:MetaException o1, 2:NoSuchObjectException o2)
 
+  // get the partitions matching the given partition filter
+  i32 get_num_partitions_by_filter(1:string db_name 2:string tbl_name 3:string 
filter)
+                       throws(1:MetaException o1, 2:NoSuchObjectException o2)
+
   // get partitions give a list of partition names
   list<Partition> get_partitions_by_names(1:string db_name 2:string tbl_name 
3:list<string> names)
                        throws(1:MetaException o1, 2:NoSuchObjectException o2)

http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/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 22bea87..7c530b2 100644
--- a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
+++ b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
@@ -16083,6 +16083,265 @@ uint32_t 
ThriftHiveMetastore_get_partitions_by_expr_presult::read(::apache::thri
 }
 
 
+ThriftHiveMetastore_get_num_partitions_by_filter_args::~ThriftHiveMetastore_get_num_partitions_by_filter_args()
 throw() {
+}
+
+
+uint32_t 
ThriftHiveMetastore_get_num_partitions_by_filter_args::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;
+
+
+  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->db_name);
+          this->__isset.db_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tbl_name);
+          this->__isset.tbl_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->filter);
+          this->__isset.filter = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t 
ThriftHiveMetastore_get_num_partitions_by_filter_args::write(::apache::thrift::protocol::TProtocol*
 oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += 
oprot->writeStructBegin("ThriftHiveMetastore_get_num_partitions_by_filter_args");
+
+  xfer += oprot->writeFieldBegin("db_name", 
::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->db_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("tbl_name", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->tbl_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("filter", 
::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString(this->filter);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_num_partitions_by_filter_pargs::~ThriftHiveMetastore_get_num_partitions_by_filter_pargs()
 throw() {
+}
+
+
+uint32_t 
ThriftHiveMetastore_get_num_partitions_by_filter_pargs::write(::apache::thrift::protocol::TProtocol*
 oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += 
oprot->writeStructBegin("ThriftHiveMetastore_get_num_partitions_by_filter_pargs");
+
+  xfer += oprot->writeFieldBegin("db_name", 
::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->db_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("tbl_name", 
::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->tbl_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("filter", 
::apache::thrift::protocol::T_STRING, 3);
+  xfer += oprot->writeString((*(this->filter)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_num_partitions_by_filter_result::~ThriftHiveMetastore_get_num_partitions_by_filter_result()
 throw() {
+}
+
+
+uint32_t 
ThriftHiveMetastore_get_num_partitions_by_filter_result::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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->success);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t 
ThriftHiveMetastore_get_num_partitions_by_filter_result::write(::apache::thrift::protocol::TProtocol*
 oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += 
oprot->writeStructBegin("ThriftHiveMetastore_get_num_partitions_by_filter_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", 
::apache::thrift::protocol::T_I32, 0);
+    xfer += oprot->writeI32(this->success);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 
1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 
2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_num_partitions_by_filter_presult::~ThriftHiveMetastore_get_num_partitions_by_filter_presult()
 throw() {
+}
+
+
+uint32_t 
ThriftHiveMetastore_get_num_partitions_by_filter_presult::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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32((*(this->success)));
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
 
ThriftHiveMetastore_get_partitions_by_names_args::~ThriftHiveMetastore_get_partitions_by_names_args()
 throw() {
 }
 
@@ -37145,6 +37404,72 @@ void 
ThriftHiveMetastoreClient::recv_get_partitions_by_expr(PartitionsByExprResu
   throw 
::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT,
 "get_partitions_by_expr failed: unknown result");
 }
 
+int32_t ThriftHiveMetastoreClient::get_num_partitions_by_filter(const 
std::string& db_name, const std::string& tbl_name, const std::string& filter)
+{
+  send_get_num_partitions_by_filter(db_name, tbl_name, filter);
+  return recv_get_num_partitions_by_filter();
+}
+
+void ThriftHiveMetastoreClient::send_get_num_partitions_by_filter(const 
std::string& db_name, const std::string& tbl_name, const std::string& filter)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("get_num_partitions_by_filter", 
::apache::thrift::protocol::T_CALL, cseqid);
+
+  ThriftHiveMetastore_get_num_partitions_by_filter_pargs args;
+  args.db_name = &db_name;
+  args.tbl_name = &tbl_name;
+  args.filter = &filter;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+int32_t ThriftHiveMetastoreClient::recv_get_num_partitions_by_filter()
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("get_num_partitions_by_filter") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  int32_t _return;
+  ThriftHiveMetastore_get_num_partitions_by_filter_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    return _return;
+  }
+  if (result.__isset.o1) {
+    throw result.o1;
+  }
+  if (result.__isset.o2) {
+    throw result.o2;
+  }
+  throw 
::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT,
 "get_num_partitions_by_filter failed: unknown result");
+}
+
 void ThriftHiveMetastoreClient::get_partitions_by_names(std::vector<Partition> 
& _return, const std::string& db_name, const std::string& tbl_name, const 
std::vector<std::string> & names)
 {
   send_get_partitions_by_names(db_name, tbl_name, names);
@@ -45289,6 +45614,66 @@ void 
ThriftHiveMetastoreProcessor::process_get_partitions_by_expr(int32_t seqid,
   }
 }
 
+void 
ThriftHiveMetastoreProcessor::process_get_num_partitions_by_filter(int32_t 
seqid, ::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+  void* ctx = NULL;
+  if (this->eventHandler_.get() != NULL) {
+    ctx = 
this->eventHandler_->getContext("ThriftHiveMetastore.get_num_partitions_by_filter",
 callContext);
+  }
+  ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), 
ctx, "ThriftHiveMetastore.get_num_partitions_by_filter");
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preRead(ctx, 
"ThriftHiveMetastore.get_num_partitions_by_filter");
+  }
+
+  ThriftHiveMetastore_get_num_partitions_by_filter_args args;
+  args.read(iprot);
+  iprot->readMessageEnd();
+  uint32_t bytes = iprot->getTransport()->readEnd();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postRead(ctx, 
"ThriftHiveMetastore.get_num_partitions_by_filter", bytes);
+  }
+
+  ThriftHiveMetastore_get_num_partitions_by_filter_result result;
+  try {
+    result.success = iface_->get_num_partitions_by_filter(args.db_name, 
args.tbl_name, args.filter);
+    result.__isset.success = true;
+  } catch (MetaException &o1) {
+    result.o1 = o1;
+    result.__isset.o1 = true;
+  } catch (NoSuchObjectException &o2) {
+    result.o2 = o2;
+    result.__isset.o2 = true;
+  } catch (const std::exception& e) {
+    if (this->eventHandler_.get() != NULL) {
+      this->eventHandler_->handlerError(ctx, 
"ThriftHiveMetastore.get_num_partitions_by_filter");
+    }
+
+    ::apache::thrift::TApplicationException x(e.what());
+    oprot->writeMessageBegin("get_num_partitions_by_filter", 
::apache::thrift::protocol::T_EXCEPTION, seqid);
+    x.write(oprot);
+    oprot->writeMessageEnd();
+    oprot->getTransport()->writeEnd();
+    oprot->getTransport()->flush();
+    return;
+  }
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preWrite(ctx, 
"ThriftHiveMetastore.get_num_partitions_by_filter");
+  }
+
+  oprot->writeMessageBegin("get_num_partitions_by_filter", 
::apache::thrift::protocol::T_REPLY, seqid);
+  result.write(oprot);
+  oprot->writeMessageEnd();
+  bytes = oprot->getTransport()->writeEnd();
+  oprot->getTransport()->flush();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postWrite(ctx, 
"ThriftHiveMetastore.get_num_partitions_by_filter", bytes);
+  }
+}
+
 void ThriftHiveMetastoreProcessor::process_get_partitions_by_names(int32_t 
seqid, ::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext)
 {
   void* ctx = NULL;
@@ -55062,6 +55447,100 @@ void 
ThriftHiveMetastoreConcurrentClient::recv_get_partitions_by_expr(Partitions
   } // end while(true)
 }
 
+int32_t 
ThriftHiveMetastoreConcurrentClient::get_num_partitions_by_filter(const 
std::string& db_name, const std::string& tbl_name, const std::string& filter)
+{
+  int32_t seqid = send_get_num_partitions_by_filter(db_name, tbl_name, filter);
+  return recv_get_num_partitions_by_filter(seqid);
+}
+
+int32_t 
ThriftHiveMetastoreConcurrentClient::send_get_num_partitions_by_filter(const 
std::string& db_name, const std::string& tbl_name, const std::string& filter)
+{
+  int32_t cseqid = this->sync_.generateSeqId();
+  ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+  oprot_->writeMessageBegin("get_num_partitions_by_filter", 
::apache::thrift::protocol::T_CALL, cseqid);
+
+  ThriftHiveMetastore_get_num_partitions_by_filter_pargs args;
+  args.db_name = &db_name;
+  args.tbl_name = &tbl_name;
+  args.filter = &filter;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+
+  sentry.commit();
+  return cseqid;
+}
+
+int32_t 
ThriftHiveMetastoreConcurrentClient::recv_get_num_partitions_by_filter(const 
int32_t seqid)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  // the read mutex gets dropped and reacquired as part of waitForWork()
+  // The destructor of this sentry wakes up other clients
+  ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+  while(true) {
+    if(!this->sync_.getPending(fname, mtype, rseqid)) {
+      iprot_->readMessageBegin(fname, mtype, rseqid);
+    }
+    if(seqid == rseqid) {
+      if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+        ::apache::thrift::TApplicationException x;
+        x.read(iprot_);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+        sentry.commit();
+        throw x;
+      }
+      if (mtype != ::apache::thrift::protocol::T_REPLY) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+      }
+      if (fname.compare("get_num_partitions_by_filter") != 0) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+
+        // in a bad state, don't commit
+        using ::apache::thrift::protocol::TProtocolException;
+        throw TProtocolException(TProtocolException::INVALID_DATA);
+      }
+      int32_t _return;
+      ThriftHiveMetastore_get_num_partitions_by_filter_presult result;
+      result.success = &_return;
+      result.read(iprot_);
+      iprot_->readMessageEnd();
+      iprot_->getTransport()->readEnd();
+
+      if (result.__isset.success) {
+        sentry.commit();
+        return _return;
+      }
+      if (result.__isset.o1) {
+        sentry.commit();
+        throw result.o1;
+      }
+      if (result.__isset.o2) {
+        sentry.commit();
+        throw result.o2;
+      }
+      // in a bad state, don't commit
+      throw 
::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT,
 "get_num_partitions_by_filter failed: unknown result");
+    }
+    // seqid != rseqid
+    this->sync_.updatePending(fname, mtype, rseqid);
+
+    // this will temporarily unlock the readMutex, and let other clients get 
work done
+    this->sync_.waitForWork(seqid);
+  } // end while(true)
+}
+
 void 
ThriftHiveMetastoreConcurrentClient::get_partitions_by_names(std::vector<Partition>
 & _return, const std::string& db_name, const std::string& tbl_name, const 
std::vector<std::string> & names)
 {
   int32_t seqid = send_get_partitions_by_names(db_name, tbl_name, names);

http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/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 62a2007..01b332e 100644
--- a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
+++ b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore.h
@@ -80,6 +80,7 @@ class ThriftHiveMetastoreIf : virtual public  
::facebook::fb303::FacebookService
   virtual void get_partitions_by_filter(std::vector<Partition> & _return, 
const std::string& db_name, const std::string& tbl_name, const std::string& 
filter, const int16_t max_parts) = 0;
   virtual void get_part_specs_by_filter(std::vector<PartitionSpec> & _return, 
const std::string& db_name, const std::string& tbl_name, const std::string& 
filter, const int32_t max_parts) = 0;
   virtual void get_partitions_by_expr(PartitionsByExprResult& _return, const 
PartitionsByExprRequest& req) = 0;
+  virtual int32_t get_num_partitions_by_filter(const std::string& db_name, 
const std::string& tbl_name, const std::string& filter) = 0;
   virtual void get_partitions_by_names(std::vector<Partition> & _return, const 
std::string& db_name, const std::string& tbl_name, const 
std::vector<std::string> & names) = 0;
   virtual void alter_partition(const std::string& db_name, const std::string& 
tbl_name, const Partition& new_part) = 0;
   virtual void alter_partitions(const std::string& db_name, const std::string& 
tbl_name, const std::vector<Partition> & new_parts) = 0;
@@ -365,6 +366,10 @@ class ThriftHiveMetastoreNull : virtual public 
ThriftHiveMetastoreIf , virtual p
   void get_partitions_by_expr(PartitionsByExprResult& /* _return */, const 
PartitionsByExprRequest& /* req */) {
     return;
   }
+  int32_t get_num_partitions_by_filter(const std::string& /* db_name */, const 
std::string& /* tbl_name */, const std::string& /* filter */) {
+    int32_t _return = 0;
+    return _return;
+  }
   void get_partitions_by_names(std::vector<Partition> & /* _return */, const 
std::string& /* db_name */, const std::string& /* tbl_name */, const 
std::vector<std::string> & /* names */) {
     return;
   }
@@ -8293,6 +8298,140 @@ class 
ThriftHiveMetastore_get_partitions_by_expr_presult {
 
 };
 
+typedef struct _ThriftHiveMetastore_get_num_partitions_by_filter_args__isset {
+  _ThriftHiveMetastore_get_num_partitions_by_filter_args__isset() : 
db_name(false), tbl_name(false), filter(false) {}
+  bool db_name :1;
+  bool tbl_name :1;
+  bool filter :1;
+} _ThriftHiveMetastore_get_num_partitions_by_filter_args__isset;
+
+class ThriftHiveMetastore_get_num_partitions_by_filter_args {
+ public:
+
+  ThriftHiveMetastore_get_num_partitions_by_filter_args(const 
ThriftHiveMetastore_get_num_partitions_by_filter_args&);
+  ThriftHiveMetastore_get_num_partitions_by_filter_args& operator=(const 
ThriftHiveMetastore_get_num_partitions_by_filter_args&);
+  ThriftHiveMetastore_get_num_partitions_by_filter_args() : db_name(), 
tbl_name(), filter() {
+  }
+
+  virtual ~ThriftHiveMetastore_get_num_partitions_by_filter_args() throw();
+  std::string db_name;
+  std::string tbl_name;
+  std::string filter;
+
+  _ThriftHiveMetastore_get_num_partitions_by_filter_args__isset __isset;
+
+  void __set_db_name(const std::string& val);
+
+  void __set_tbl_name(const std::string& val);
+
+  void __set_filter(const std::string& val);
+
+  bool operator == (const 
ThriftHiveMetastore_get_num_partitions_by_filter_args & rhs) const
+  {
+    if (!(db_name == rhs.db_name))
+      return false;
+    if (!(tbl_name == rhs.tbl_name))
+      return false;
+    if (!(filter == rhs.filter))
+      return false;
+    return true;
+  }
+  bool operator != (const 
ThriftHiveMetastore_get_num_partitions_by_filter_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ThriftHiveMetastore_get_num_partitions_by_filter_args 
& ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class ThriftHiveMetastore_get_num_partitions_by_filter_pargs {
+ public:
+
+
+  virtual ~ThriftHiveMetastore_get_num_partitions_by_filter_pargs() throw();
+  const std::string* db_name;
+  const std::string* tbl_name;
+  const std::string* filter;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _ThriftHiveMetastore_get_num_partitions_by_filter_result__isset 
{
+  _ThriftHiveMetastore_get_num_partitions_by_filter_result__isset() : 
success(false), o1(false), o2(false) {}
+  bool success :1;
+  bool o1 :1;
+  bool o2 :1;
+} _ThriftHiveMetastore_get_num_partitions_by_filter_result__isset;
+
+class ThriftHiveMetastore_get_num_partitions_by_filter_result {
+ public:
+
+  ThriftHiveMetastore_get_num_partitions_by_filter_result(const 
ThriftHiveMetastore_get_num_partitions_by_filter_result&);
+  ThriftHiveMetastore_get_num_partitions_by_filter_result& operator=(const 
ThriftHiveMetastore_get_num_partitions_by_filter_result&);
+  ThriftHiveMetastore_get_num_partitions_by_filter_result() : success(0) {
+  }
+
+  virtual ~ThriftHiveMetastore_get_num_partitions_by_filter_result() throw();
+  int32_t success;
+  MetaException o1;
+  NoSuchObjectException o2;
+
+  _ThriftHiveMetastore_get_num_partitions_by_filter_result__isset __isset;
+
+  void __set_success(const int32_t val);
+
+  void __set_o1(const MetaException& val);
+
+  void __set_o2(const NoSuchObjectException& val);
+
+  bool operator == (const 
ThriftHiveMetastore_get_num_partitions_by_filter_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(o1 == rhs.o1))
+      return false;
+    if (!(o2 == rhs.o2))
+      return false;
+    return true;
+  }
+  bool operator != (const 
ThriftHiveMetastore_get_num_partitions_by_filter_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const 
ThriftHiveMetastore_get_num_partitions_by_filter_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct 
_ThriftHiveMetastore_get_num_partitions_by_filter_presult__isset {
+  _ThriftHiveMetastore_get_num_partitions_by_filter_presult__isset() : 
success(false), o1(false), o2(false) {}
+  bool success :1;
+  bool o1 :1;
+  bool o2 :1;
+} _ThriftHiveMetastore_get_num_partitions_by_filter_presult__isset;
+
+class ThriftHiveMetastore_get_num_partitions_by_filter_presult {
+ public:
+
+
+  virtual ~ThriftHiveMetastore_get_num_partitions_by_filter_presult() throw();
+  int32_t* success;
+  MetaException o1;
+  NoSuchObjectException o2;
+
+  _ThriftHiveMetastore_get_num_partitions_by_filter_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
 typedef struct _ThriftHiveMetastore_get_partitions_by_names_args__isset {
   _ThriftHiveMetastore_get_partitions_by_names_args__isset() : db_name(false), 
tbl_name(false), names(false) {}
   bool db_name :1;
@@ -17316,6 +17455,9 @@ class ThriftHiveMetastoreClient : virtual public 
ThriftHiveMetastoreIf, public
   void get_partitions_by_expr(PartitionsByExprResult& _return, const 
PartitionsByExprRequest& req);
   void send_get_partitions_by_expr(const PartitionsByExprRequest& req);
   void recv_get_partitions_by_expr(PartitionsByExprResult& _return);
+  int32_t get_num_partitions_by_filter(const std::string& db_name, const 
std::string& tbl_name, const std::string& filter);
+  void send_get_num_partitions_by_filter(const std::string& db_name, const 
std::string& tbl_name, const std::string& filter);
+  int32_t recv_get_num_partitions_by_filter();
   void get_partitions_by_names(std::vector<Partition> & _return, const 
std::string& db_name, const std::string& tbl_name, const 
std::vector<std::string> & names);
   void send_get_partitions_by_names(const std::string& db_name, const 
std::string& tbl_name, const std::vector<std::string> & names);
   void recv_get_partitions_by_names(std::vector<Partition> & _return);
@@ -17606,6 +17748,7 @@ class ThriftHiveMetastoreProcessor : public  
::facebook::fb303::FacebookServiceP
   void process_get_partitions_by_filter(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_get_part_specs_by_filter(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_get_partitions_by_expr(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_get_num_partitions_by_filter(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_get_partitions_by_names(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_alter_partition(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_alter_partitions(int32_t seqid, 
::apache::thrift::protocol::TProtocol* iprot, 
::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -17742,6 +17885,7 @@ class ThriftHiveMetastoreProcessor : public  
::facebook::fb303::FacebookServiceP
     processMap_["get_partitions_by_filter"] = 
&ThriftHiveMetastoreProcessor::process_get_partitions_by_filter;
     processMap_["get_part_specs_by_filter"] = 
&ThriftHiveMetastoreProcessor::process_get_part_specs_by_filter;
     processMap_["get_partitions_by_expr"] = 
&ThriftHiveMetastoreProcessor::process_get_partitions_by_expr;
+    processMap_["get_num_partitions_by_filter"] = 
&ThriftHiveMetastoreProcessor::process_get_num_partitions_by_filter;
     processMap_["get_partitions_by_names"] = 
&ThriftHiveMetastoreProcessor::process_get_partitions_by_names;
     processMap_["alter_partition"] = 
&ThriftHiveMetastoreProcessor::process_alter_partition;
     processMap_["alter_partitions"] = 
&ThriftHiveMetastoreProcessor::process_alter_partitions;
@@ -18410,6 +18554,15 @@ class ThriftHiveMetastoreMultiface : virtual public 
ThriftHiveMetastoreIf, publi
     return;
   }
 
+  int32_t get_num_partitions_by_filter(const std::string& db_name, const 
std::string& tbl_name, const std::string& filter) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->get_num_partitions_by_filter(db_name, tbl_name, filter);
+    }
+    return ifaces_[i]->get_num_partitions_by_filter(db_name, tbl_name, filter);
+  }
+
   void get_partitions_by_names(std::vector<Partition> & _return, const 
std::string& db_name, const std::string& tbl_name, const 
std::vector<std::string> & names) {
     size_t sz = ifaces_.size();
     size_t i = 0;
@@ -19308,6 +19461,9 @@ class ThriftHiveMetastoreConcurrentClient : virtual 
public ThriftHiveMetastoreIf
   void get_partitions_by_expr(PartitionsByExprResult& _return, const 
PartitionsByExprRequest& req);
   int32_t send_get_partitions_by_expr(const PartitionsByExprRequest& req);
   void recv_get_partitions_by_expr(PartitionsByExprResult& _return, const 
int32_t seqid);
+  int32_t get_num_partitions_by_filter(const std::string& db_name, const 
std::string& tbl_name, const std::string& filter);
+  int32_t send_get_num_partitions_by_filter(const std::string& db_name, const 
std::string& tbl_name, const std::string& filter);
+  int32_t recv_get_num_partitions_by_filter(const int32_t seqid);
   void get_partitions_by_names(std::vector<Partition> & _return, const 
std::string& db_name, const std::string& tbl_name, const 
std::vector<std::string> & names);
   int32_t send_get_partitions_by_names(const std::string& db_name, const 
std::string& tbl_name, const std::vector<std::string> & names);
   void recv_get_partitions_by_names(std::vector<Partition> & _return, const 
int32_t seqid);

http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/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 383a0d2..0fee77b 100644
--- a/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
+++ b/metastore/src/gen/thrift/gen-cpp/ThriftHiveMetastore_server.skeleton.cpp
@@ -312,6 +312,11 @@ class ThriftHiveMetastoreHandler : virtual public 
ThriftHiveMetastoreIf {
     printf("get_partitions_by_expr\n");
   }
 
+  int32_t get_num_partitions_by_filter(const std::string& db_name, const 
std::string& tbl_name, const std::string& filter) {
+    // Your implementation goes here
+    printf("get_num_partitions_by_filter\n");
+  }
+
   void get_partitions_by_names(std::vector<Partition> & _return, const 
std::string& db_name, const std::string& tbl_name, const 
std::vector<std::string> & names) {
     // Your implementation goes here
     printf("get_partitions_by_names\n");

http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataRequest.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataRequest.java
 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataRequest.java
index 6b8ab11..a008acc 100644
--- 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataRequest.java
+++ 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataRequest.java
@@ -128,13 +128,13 @@ public class CacheFileMetadataRequest implements 
org.apache.thrift.TBase<CacheFi
   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.DB_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("dbName", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.DB_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("dbName", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.TBL_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("tblName", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.TBL_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("tblName", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PART_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("partName", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.PART_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("partName", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.IS_ALL_PARTS, new 
org.apache.thrift.meta_data.FieldMetaData("isAllParts", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.IS_ALL_PARTS, new 
org.apache.thrift.meta_data.FieldMetaData("isAllParts", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CacheFileMetadataRequest.class,
 metaDataMap);
@@ -574,7 +574,7 @@ public class CacheFileMetadataRequest implements 
org.apache.thrift.TBase<CacheFi
       while (true)
       {
         schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
           break;
         }
         switch (schemeField.id) {
@@ -582,7 +582,7 @@ public class CacheFileMetadataRequest implements 
org.apache.thrift.TBase<CacheFi
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.dbName = iprot.readString();
               struct.setDbNameIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
@@ -590,7 +590,7 @@ public class CacheFileMetadataRequest implements 
org.apache.thrift.TBase<CacheFi
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.tblName = iprot.readString();
               struct.setTblNameIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
@@ -598,7 +598,7 @@ public class CacheFileMetadataRequest implements 
org.apache.thrift.TBase<CacheFi
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.partName = iprot.readString();
               struct.setPartNameIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
@@ -606,7 +606,7 @@ public class CacheFileMetadataRequest implements 
org.apache.thrift.TBase<CacheFi
             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
               struct.isAllParts = iprot.readBool();
               struct.setIsAllPartsIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
@@ -700,3 +700,4 @@ public class CacheFileMetadataRequest implements 
org.apache.thrift.TBase<CacheFi
   }
 
 }
+

http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataResult.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataResult.java
 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataResult.java
index 4336f96..a1466ae 100644
--- 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataResult.java
+++ 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/CacheFileMetadataResult.java
@@ -112,7 +112,7 @@ public class CacheFileMetadataResult implements 
org.apache.thrift.TBase<CacheFil
   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.IS_SUPPORTED, new 
org.apache.thrift.meta_data.FieldMetaData("isSupported", 
org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.IS_SUPPORTED, new 
org.apache.thrift.meta_data.FieldMetaData("isSupported", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CacheFileMetadataResult.class,
 metaDataMap);
@@ -327,7 +327,7 @@ public class CacheFileMetadataResult implements 
org.apache.thrift.TBase<CacheFil
       while (true)
       {
         schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
           break;
         }
         switch (schemeField.id) {
@@ -335,7 +335,7 @@ public class CacheFileMetadataResult implements 
org.apache.thrift.TBase<CacheFil
             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
               struct.isSupported = iprot.readBool();
               struct.setIsSupportedIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;
@@ -384,3 +384,4 @@ public class CacheFileMetadataResult implements 
org.apache.thrift.TBase<CacheFil
   }
 
 }
+

http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/FileMetadataExprType.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/FileMetadataExprType.java
 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/FileMetadataExprType.java
index 8ffaa89..4e393e2 100644
--- 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/FileMetadataExprType.java
+++ 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/FileMetadataExprType.java
@@ -7,6 +7,10 @@
 package org.apache.hadoop.hive.metastore.api;
 
 
+import java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
 public enum FileMetadataExprType implements org.apache.thrift.TEnum {
   ORC_SARG(1);
 

http://git-wip-us.apache.org/repos/asf/hive/blob/cdcc35e6/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PutFileMetadataRequest.java
----------------------------------------------------------------------
diff --git 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PutFileMetadataRequest.java
 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PutFileMetadataRequest.java
index 1b7bbf0..ab151b1 100644
--- 
a/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PutFileMetadataRequest.java
+++ 
b/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PutFileMetadataRequest.java
@@ -57,7 +57,7 @@ public class PutFileMetadataRequest implements 
org.apache.thrift.TBase<PutFileMe
     FILE_IDS((short)1, "fileIds"),
     METADATA((short)2, "metadata"),
     /**
-     *
+     * 
      * @see FileMetadataExprType
      */
     TYPE((short)3, "type");
@@ -131,7 +131,7 @@ public class PutFileMetadataRequest implements 
org.apache.thrift.TBase<PutFileMe
     tmpMap.put(_Fields.METADATA, new 
org.apache.thrift.meta_data.FieldMetaData("metadata", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
             new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING
            , true))));
-    tmpMap.put(_Fields.TYPE, new 
org.apache.thrift.meta_data.FieldMetaData("type", 
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+    tmpMap.put(_Fields.TYPE, new 
org.apache.thrift.meta_data.FieldMetaData("type", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
FileMetadataExprType.class)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PutFileMetadataRequest.class,
 metaDataMap);
@@ -254,7 +254,7 @@ public class PutFileMetadataRequest implements 
org.apache.thrift.TBase<PutFileMe
   }
 
   /**
-   *
+   * 
    * @see FileMetadataExprType
    */
   public FileMetadataExprType getType() {
@@ -262,7 +262,7 @@ public class PutFileMetadataRequest implements 
org.apache.thrift.TBase<PutFileMe
   }
 
   /**
-   *
+   * 
    * @see FileMetadataExprType
    */
   public void setType(FileMetadataExprType type) {
@@ -584,7 +584,7 @@ public class PutFileMetadataRequest implements 
org.apache.thrift.TBase<PutFileMe
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
               struct.type = 
org.apache.hadoop.hive.metastore.api.FileMetadataExprType.findByValue(iprot.readI32());
               struct.setTypeIsSet(true);
-            } else {
+            } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
             }
             break;

Reply via email to