You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by am...@apache.org on 2015/12/21 09:46:01 UTC

[11/23] hive git commit: HIVE-11487 : Adds getNumPartitionsByFilter api in metastore api

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/metastore/src/gen/thrift/gen-py/hive_metastore/constants.py
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-py/hive_metastore/constants.py b/metastore/src/gen/thrift/gen-py/hive_metastore/constants.py
index d1c07a5..f86fda9 100644
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/constants.py
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/constants.py
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.9.2)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 fbeab5e..877a7e4 100644
--- a/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
+++ b/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.9.2)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
@@ -253,12 +253,12 @@ class Version:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.version = iprot.readString()
+          self.version = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.comments = iprot.readString()
+          self.comments = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -334,17 +334,17 @@ class FieldSchema:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.name = iprot.readString()
+          self.name = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.type = iprot.readString()
+          self.type = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.comment = iprot.readString()
+          self.comment = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -428,17 +428,17 @@ class Type:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.name = iprot.readString()
+          self.name = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.type1 = iprot.readString()
+          self.type1 = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.type2 = iprot.readString()
+          self.type2 = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
@@ -544,17 +544,17 @@ class HiveObjectRef:
         break
       if fid == 1:
         if ftype == TType.I32:
-          self.objectType = iprot.readI32()
+          self.objectType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.objectName = iprot.readString()
+          self.objectName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
@@ -562,14 +562,14 @@ class HiveObjectRef:
           self.partValues = []
           (_etype10, _size7) = iprot.readListBegin()
           for _i11 in xrange(_size7):
-            _elem12 = iprot.readString()
+            _elem12 = iprot.readString();
             self.partValues.append(_elem12)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.STRING:
-          self.columnName = iprot.readString()
+          self.columnName = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -669,27 +669,27 @@ class PrivilegeGrantInfo:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.privilege = iprot.readString()
+          self.privilege = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.createTime = iprot.readI32()
+          self.createTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.grantor = iprot.readString()
+          self.grantor = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I32:
-          self.grantorType = iprot.readI32()
+          self.grantorType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.BOOL:
-          self.grantOption = iprot.readBool()
+          self.grantOption = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -789,12 +789,12 @@ class HiveObjectPrivilege:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.principalName = iprot.readString()
+          self.principalName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I32:
-          self.principalType = iprot.readI32()
+          self.principalType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 4:
@@ -963,7 +963,7 @@ class PrincipalPrivilegeSet:
           self.userPrivileges = {}
           (_ktype22, _vtype23, _size21 ) = iprot.readMapBegin()
           for _i25 in xrange(_size21):
-            _key26 = iprot.readString()
+            _key26 = iprot.readString();
             _val27 = []
             (_etype31, _size28) = iprot.readListBegin()
             for _i32 in xrange(_size28):
@@ -980,7 +980,7 @@ class PrincipalPrivilegeSet:
           self.groupPrivileges = {}
           (_ktype35, _vtype36, _size34 ) = iprot.readMapBegin()
           for _i38 in xrange(_size34):
-            _key39 = iprot.readString()
+            _key39 = iprot.readString();
             _val40 = []
             (_etype44, _size41) = iprot.readListBegin()
             for _i45 in xrange(_size41):
@@ -997,7 +997,7 @@ class PrincipalPrivilegeSet:
           self.rolePrivileges = {}
           (_ktype48, _vtype49, _size47 ) = iprot.readMapBegin()
           for _i51 in xrange(_size47):
-            _key52 = iprot.readString()
+            _key52 = iprot.readString();
             _val53 = []
             (_etype57, _size54) = iprot.readListBegin()
             for _i58 in xrange(_size54):
@@ -1108,7 +1108,7 @@ class GrantRevokePrivilegeRequest:
         break
       if fid == 1:
         if ftype == TType.I32:
-          self.requestType = iprot.readI32()
+          self.requestType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 2:
@@ -1119,7 +1119,7 @@ class GrantRevokePrivilegeRequest:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.BOOL:
-          self.revokeGrantOption = iprot.readBool()
+          self.revokeGrantOption = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -1194,7 +1194,7 @@ class GrantRevokePrivilegeResponse:
         break
       if fid == 1:
         if ftype == TType.BOOL:
-          self.success = iprot.readBool()
+          self.success = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -1265,17 +1265,17 @@ class Role:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.roleName = iprot.readString()
+          self.roleName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.createTime = iprot.readI32()
+          self.createTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.ownerName = iprot.readString()
+          self.ownerName = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -1368,37 +1368,37 @@ class RolePrincipalGrant:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.roleName = iprot.readString()
+          self.roleName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.principalName = iprot.readString()
+          self.principalName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I32:
-          self.principalType = iprot.readI32()
+          self.principalType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.BOOL:
-          self.grantOption = iprot.readBool()
+          self.grantOption = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I32:
-          self.grantTime = iprot.readI32()
+          self.grantTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.STRING:
-          self.grantorName = iprot.readString()
+          self.grantorName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.I32:
-          self.grantorPrincipalType = iprot.readI32()
+          self.grantorPrincipalType = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -1496,12 +1496,12 @@ class GetRoleGrantsForPrincipalRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.principal_name = iprot.readString()
+          self.principal_name = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.principal_type = iprot.readI32()
+          self.principal_type = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -1651,7 +1651,7 @@ class GetPrincipalsInRoleRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.roleName = iprot.readString()
+          self.roleName = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -1812,37 +1812,37 @@ class GrantRevokeRoleRequest:
         break
       if fid == 1:
         if ftype == TType.I32:
-          self.requestType = iprot.readI32()
+          self.requestType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.roleName = iprot.readString()
+          self.roleName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.principalName = iprot.readString()
+          self.principalName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I32:
-          self.principalType = iprot.readI32()
+          self.principalType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.STRING:
-          self.grantor = iprot.readString()
+          self.grantor = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.I32:
-          self.grantorType = iprot.readI32()
+          self.grantorType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.BOOL:
-          self.grantOption = iprot.readBool()
+          self.grantOption = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -1937,7 +1937,7 @@ class GrantRevokeRoleResponse:
         break
       if fid == 1:
         if ftype == TType.BOOL:
-          self.success = iprot.readBool()
+          self.success = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -2020,17 +2020,17 @@ class Database:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.name = iprot.readString()
+          self.name = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.description = iprot.readString()
+          self.description = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.locationUri = iprot.readString()
+          self.locationUri = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
@@ -2038,8 +2038,8 @@ class Database:
           self.parameters = {}
           (_ktype84, _vtype85, _size83 ) = iprot.readMapBegin()
           for _i87 in xrange(_size83):
-            _key88 = iprot.readString()
-            _val89 = iprot.readString()
+            _key88 = iprot.readString();
+            _val89 = iprot.readString();
             self.parameters[_key88] = _val89
           iprot.readMapEnd()
         else:
@@ -2052,12 +2052,12 @@ class Database:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.STRING:
-          self.ownerName = iprot.readString()
+          self.ownerName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.I32:
-          self.ownerType = iprot.readI32()
+          self.ownerType = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -2162,12 +2162,12 @@ class SerDeInfo:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.name = iprot.readString()
+          self.name = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.serializationLib = iprot.readString()
+          self.serializationLib = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -2175,8 +2175,8 @@ class SerDeInfo:
           self.parameters = {}
           (_ktype93, _vtype94, _size92 ) = iprot.readMapBegin()
           for _i96 in xrange(_size92):
-            _key97 = iprot.readString()
-            _val98 = iprot.readString()
+            _key97 = iprot.readString();
+            _val98 = iprot.readString();
             self.parameters[_key97] = _val98
           iprot.readMapEnd()
         else:
@@ -2260,12 +2260,12 @@ class Order:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.col = iprot.readString()
+          self.col = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.order = iprot.readI32()
+          self.order = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -2344,7 +2344,7 @@ class SkewedInfo:
           self.skewedColNames = []
           (_etype104, _size101) = iprot.readListBegin()
           for _i105 in xrange(_size101):
-            _elem106 = iprot.readString()
+            _elem106 = iprot.readString();
             self.skewedColNames.append(_elem106)
           iprot.readListEnd()
         else:
@@ -2357,7 +2357,7 @@ class SkewedInfo:
             _elem112 = []
             (_etype116, _size113) = iprot.readListBegin()
             for _i117 in xrange(_size113):
-              _elem118 = iprot.readString()
+              _elem118 = iprot.readString();
               _elem112.append(_elem118)
             iprot.readListEnd()
             self.skewedColValues.append(_elem112)
@@ -2372,10 +2372,10 @@ class SkewedInfo:
             _key124 = []
             (_etype129, _size126) = iprot.readListBegin()
             for _i130 in xrange(_size126):
-              _elem131 = iprot.readString()
+              _elem131 = iprot.readString();
               _key124.append(_elem131)
             iprot.readListEnd()
-            _val125 = iprot.readString()
+            _val125 = iprot.readString();
             self.skewedColValueLocationMaps[_key124] = _val125
           iprot.readMapEnd()
         else:
@@ -2512,27 +2512,27 @@ class StorageDescriptor:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.location = iprot.readString()
+          self.location = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.inputFormat = iprot.readString()
+          self.inputFormat = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.outputFormat = iprot.readString()
+          self.outputFormat = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.BOOL:
-          self.compressed = iprot.readBool()
+          self.compressed = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.I32:
-          self.numBuckets = iprot.readI32()
+          self.numBuckets = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 7:
@@ -2546,7 +2546,7 @@ class StorageDescriptor:
           self.bucketCols = []
           (_etype147, _size144) = iprot.readListBegin()
           for _i148 in xrange(_size144):
-            _elem149 = iprot.readString()
+            _elem149 = iprot.readString();
             self.bucketCols.append(_elem149)
           iprot.readListEnd()
         else:
@@ -2567,8 +2567,8 @@ class StorageDescriptor:
           self.parameters = {}
           (_ktype157, _vtype158, _size156 ) = iprot.readMapBegin()
           for _i160 in xrange(_size156):
-            _key161 = iprot.readString()
-            _val162 = iprot.readString()
+            _key161 = iprot.readString();
+            _val162 = iprot.readString();
             self.parameters[_key161] = _val162
           iprot.readMapEnd()
         else:
@@ -2581,7 +2581,7 @@ class StorageDescriptor:
           iprot.skip(ftype)
       elif fid == 12:
         if ftype == TType.BOOL:
-          self.storedAsSubDirectories = iprot.readBool()
+          self.storedAsSubDirectories = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -2753,32 +2753,32 @@ class Table:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.tableName = iprot.readString()
+          self.tableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.owner = iprot.readString()
+          self.owner = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I32:
-          self.createTime = iprot.readI32()
+          self.createTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I32:
-          self.lastAccessTime = iprot.readI32()
+          self.lastAccessTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.I32:
-          self.retention = iprot.readI32()
+          self.retention = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 7:
@@ -2803,25 +2803,25 @@ class Table:
           self.parameters = {}
           (_ktype175, _vtype176, _size174 ) = iprot.readMapBegin()
           for _i178 in xrange(_size174):
-            _key179 = iprot.readString()
-            _val180 = iprot.readString()
+            _key179 = iprot.readString();
+            _val180 = iprot.readString();
             self.parameters[_key179] = _val180
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.STRING:
-          self.viewOriginalText = iprot.readString()
+          self.viewOriginalText = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 11:
         if ftype == TType.STRING:
-          self.viewExpandedText = iprot.readString()
+          self.viewExpandedText = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 12:
         if ftype == TType.STRING:
-          self.tableType = iprot.readString()
+          self.tableType = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 13:
@@ -2832,7 +2832,7 @@ class Table:
           iprot.skip(ftype)
       elif fid == 14:
         if ftype == TType.BOOL:
-          self.temporary = iprot.readBool()
+          self.temporary = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -2993,29 +2993,29 @@ class Partition:
           self.values = []
           (_etype187, _size184) = iprot.readListBegin()
           for _i188 in xrange(_size184):
-            _elem189 = iprot.readString()
+            _elem189 = iprot.readString();
             self.values.append(_elem189)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.tableName = iprot.readString()
+          self.tableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I32:
-          self.createTime = iprot.readI32()
+          self.createTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I32:
-          self.lastAccessTime = iprot.readI32()
+          self.lastAccessTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 6:
@@ -3029,8 +3029,8 @@ class Partition:
           self.parameters = {}
           (_ktype191, _vtype192, _size190 ) = iprot.readMapBegin()
           for _i194 in xrange(_size190):
-            _key195 = iprot.readString()
-            _val196 = iprot.readString()
+            _key195 = iprot.readString();
+            _val196 = iprot.readString();
             self.parameters[_key195] = _val196
           iprot.readMapEnd()
         else:
@@ -3163,24 +3163,24 @@ class PartitionWithoutSD:
           self.values = []
           (_etype203, _size200) = iprot.readListBegin()
           for _i204 in xrange(_size200):
-            _elem205 = iprot.readString()
+            _elem205 = iprot.readString();
             self.values.append(_elem205)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.createTime = iprot.readI32()
+          self.createTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I32:
-          self.lastAccessTime = iprot.readI32()
+          self.lastAccessTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.relativePath = iprot.readString()
+          self.relativePath = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
@@ -3188,8 +3188,8 @@ class PartitionWithoutSD:
           self.parameters = {}
           (_ktype207, _vtype208, _size206 ) = iprot.readMapBegin()
           for _i210 in xrange(_size206):
-            _key211 = iprot.readString()
-            _val212 = iprot.readString()
+            _key211 = iprot.readString();
+            _val212 = iprot.readString();
             self.parameters[_key211] = _val212
           iprot.readMapEnd()
         else:
@@ -3468,17 +3468,17 @@ class PartitionSpec:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tableName = iprot.readString()
+          self.tableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.rootPath = iprot.readString()
+          self.rootPath = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
@@ -3602,37 +3602,37 @@ class Index:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.indexName = iprot.readString()
+          self.indexName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.indexHandlerClass = iprot.readString()
+          self.indexHandlerClass = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.origTableName = iprot.readString()
+          self.origTableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I32:
-          self.createTime = iprot.readI32()
+          self.createTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.I32:
-          self.lastAccessTime = iprot.readI32()
+          self.lastAccessTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.STRING:
-          self.indexTableName = iprot.readString()
+          self.indexTableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 8:
@@ -3646,15 +3646,15 @@ class Index:
           self.parameters = {}
           (_ktype231, _vtype232, _size230 ) = iprot.readMapBegin()
           for _i234 in xrange(_size230):
-            _key235 = iprot.readString()
-            _val236 = iprot.readString()
+            _key235 = iprot.readString();
+            _val236 = iprot.readString();
             self.parameters[_key235] = _val236
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.BOOL:
-          self.deferredRebuild = iprot.readBool()
+          self.deferredRebuild = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -3774,17 +3774,17 @@ class BooleanColumnStatsData:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.numTrues = iprot.readI64()
+          self.numTrues = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I64:
-          self.numFalses = iprot.readI64()
+          self.numFalses = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I64:
-          self.numNulls = iprot.readI64()
+          self.numNulls = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -3874,22 +3874,22 @@ class DoubleColumnStatsData:
         break
       if fid == 1:
         if ftype == TType.DOUBLE:
-          self.lowValue = iprot.readDouble()
+          self.lowValue = iprot.readDouble();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.DOUBLE:
-          self.highValue = iprot.readDouble()
+          self.highValue = iprot.readDouble();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I64:
-          self.numNulls = iprot.readI64()
+          self.numNulls = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I64:
-          self.numDVs = iprot.readI64()
+          self.numDVs = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -3982,22 +3982,22 @@ class LongColumnStatsData:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.lowValue = iprot.readI64()
+          self.lowValue = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I64:
-          self.highValue = iprot.readI64()
+          self.highValue = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I64:
-          self.numNulls = iprot.readI64()
+          self.numNulls = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I64:
-          self.numDVs = iprot.readI64()
+          self.numDVs = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -4090,22 +4090,22 @@ class StringColumnStatsData:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.maxColLen = iprot.readI64()
+          self.maxColLen = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.DOUBLE:
-          self.avgColLen = iprot.readDouble()
+          self.avgColLen = iprot.readDouble();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I64:
-          self.numNulls = iprot.readI64()
+          self.numNulls = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I64:
-          self.numDVs = iprot.readI64()
+          self.numDVs = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -4199,17 +4199,17 @@ class BinaryColumnStatsData:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.maxColLen = iprot.readI64()
+          self.maxColLen = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.DOUBLE:
-          self.avgColLen = iprot.readDouble()
+          self.avgColLen = iprot.readDouble();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I64:
-          self.numNulls = iprot.readI64()
+          self.numNulls = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -4294,12 +4294,12 @@ class Decimal:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.unscaled = iprot.readString()
+          self.unscaled = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I16:
-          self.scale = iprot.readI16()
+          self.scale = iprot.readI16();
         else:
           iprot.skip(ftype)
       else:
@@ -4394,12 +4394,12 @@ class DecimalColumnStatsData:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I64:
-          self.numNulls = iprot.readI64()
+          self.numNulls = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I64:
-          self.numDVs = iprot.readI64()
+          self.numDVs = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -4483,7 +4483,7 @@ class Date:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.daysSinceEpoch = iprot.readI64()
+          self.daysSinceEpoch = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -4571,12 +4571,12 @@ class DateColumnStatsData:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.I64:
-          self.numNulls = iprot.readI64()
+          self.numNulls = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I64:
-          self.numDVs = iprot.readI64()
+          self.numDVs = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -4816,12 +4816,12 @@ class ColumnStatisticsObj:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.colName = iprot.readString()
+          self.colName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.colType = iprot.readString()
+          self.colType = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -4920,27 +4920,27 @@ class ColumnStatisticsDesc:
         break
       if fid == 1:
         if ftype == TType.BOOL:
-          self.isTblLevel = iprot.readBool()
+          self.isTblLevel = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.tableName = iprot.readString()
+          self.tableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.partName = iprot.readString()
+          self.partName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I64:
-          self.lastAnalyzed = iprot.readI64()
+          self.lastAnalyzed = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -5137,7 +5137,7 @@ class AggrStats:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I64:
-          self.partsFound = iprot.readI64()
+          self.partsFound = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -5307,8 +5307,8 @@ class Schema:
           self.properties = {}
           (_ktype267, _vtype268, _size266 ) = iprot.readMapBegin()
           for _i270 in xrange(_size266):
-            _key271 = iprot.readString()
-            _val272 = iprot.readString()
+            _key271 = iprot.readString();
+            _val272 = iprot.readString();
             self.properties[_key271] = _val272
           iprot.readMapEnd()
         else:
@@ -5390,8 +5390,8 @@ class EnvironmentContext:
           self.properties = {}
           (_ktype277, _vtype278, _size276 ) = iprot.readMapBegin()
           for _i280 in xrange(_size276):
-            _key281 = iprot.readString()
-            _val282 = iprot.readString()
+            _key281 = iprot.readString();
+            _val282 = iprot.readString();
             self.properties[_key281] = _val282
           iprot.readMapEnd()
         else:
@@ -5476,7 +5476,7 @@ class PartitionsByExprResult:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.BOOL:
-          self.hasUnknownPartitions = iprot.readBool()
+          self.hasUnknownPartitions = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -5565,27 +5565,27 @@ class PartitionsByExprRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tblName = iprot.readString()
+          self.tblName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.expr = iprot.readString()
+          self.expr = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.defaultPartitionName = iprot.readString()
+          self.defaultPartitionName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I16:
-          self.maxParts = iprot.readI16()
+          self.maxParts = iprot.readI16();
         else:
           iprot.skip(ftype)
       else:
@@ -5755,7 +5755,7 @@ class PartitionsStatsResult:
           self.partStats = {}
           (_ktype300, _vtype301, _size299 ) = iprot.readMapBegin()
           for _i303 in xrange(_size299):
-            _key304 = iprot.readString()
+            _key304 = iprot.readString();
             _val305 = []
             (_etype309, _size306) = iprot.readListBegin()
             for _i310 in xrange(_size306):
@@ -5844,12 +5844,12 @@ class TableStatsRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tblName = iprot.readString()
+          self.tblName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -5857,7 +5857,7 @@ class TableStatsRequest:
           self.colNames = []
           (_etype318, _size315) = iprot.readListBegin()
           for _i319 in xrange(_size315):
-            _elem320 = iprot.readString()
+            _elem320 = iprot.readString();
             self.colNames.append(_elem320)
           iprot.readListEnd()
         else:
@@ -5952,12 +5952,12 @@ class PartitionsStatsRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tblName = iprot.readString()
+          self.tblName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -5965,7 +5965,7 @@ class PartitionsStatsRequest:
           self.colNames = []
           (_etype325, _size322) = iprot.readListBegin()
           for _i326 in xrange(_size322):
-            _elem327 = iprot.readString()
+            _elem327 = iprot.readString();
             self.colNames.append(_elem327)
           iprot.readListEnd()
         else:
@@ -5975,7 +5975,7 @@ class PartitionsStatsRequest:
           self.partNames = []
           (_etype331, _size328) = iprot.readListBegin()
           for _i332 in xrange(_size328):
-            _elem333 = iprot.readString()
+            _elem333 = iprot.readString();
             self.partNames.append(_elem333)
           iprot.readListEnd()
         else:
@@ -6157,12 +6157,12 @@ class AddPartitionsRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tblName = iprot.readString()
+          self.tblName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -6178,12 +6178,12 @@ class AddPartitionsRequest:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.BOOL:
-          self.ifNotExists = iprot.readBool()
+          self.ifNotExists = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.BOOL:
-          self.needResult = iprot.readBool()
+          self.needResult = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -6356,12 +6356,12 @@ class DropPartitionsExpr:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.expr = iprot.readString()
+          self.expr = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.partArchiveLevel = iprot.readI32()
+          self.partArchiveLevel = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -6439,7 +6439,7 @@ class RequestPartsSpec:
           self.names = []
           (_etype360, _size357) = iprot.readListBegin()
           for _i361 in xrange(_size357):
-            _elem362 = iprot.readString()
+            _elem362 = iprot.readString();
             self.names.append(_elem362)
           iprot.readListEnd()
         else:
@@ -6549,12 +6549,12 @@ class DropPartitionsRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tblName = iprot.readString()
+          self.tblName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -6565,17 +6565,17 @@ class DropPartitionsRequest:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.BOOL:
-          self.deleteData = iprot.readBool()
+          self.deleteData = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.BOOL:
-          self.ifExists = iprot.readBool()
+          self.ifExists = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.BOOL:
-          self.ignoreProtection = iprot.readBool()
+          self.ignoreProtection = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 7:
@@ -6586,7 +6586,7 @@ class DropPartitionsRequest:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.BOOL:
-          self.needResult = iprot.readBool()
+          self.needResult = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -6695,12 +6695,12 @@ class ResourceUri:
         break
       if fid == 1:
         if ftype == TType.I32:
-          self.resourceType = iprot.readI32()
+          self.resourceType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.uri = iprot.readString()
+          self.uri = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -6791,37 +6791,37 @@ class Function:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.functionName = iprot.readString()
+          self.functionName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.className = iprot.readString()
+          self.className = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.ownerName = iprot.readString()
+          self.ownerName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I32:
-          self.ownerType = iprot.readI32()
+          self.ownerType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.I32:
-          self.createTime = iprot.readI32()
+          self.createTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.I32:
-          self.functionType = iprot.readI32()
+          self.functionType = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 8:
@@ -6944,22 +6944,22 @@ class TxnInfo:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.id = iprot.readI64()
+          self.id = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.state = iprot.readI32()
+          self.state = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.user = iprot.readString()
+          self.user = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.hostname = iprot.readString()
+          self.hostname = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -7050,7 +7050,7 @@ class GetOpenTxnsInfoResponse:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.txn_high_water_mark = iprot.readI64()
+          self.txn_high_water_mark = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
@@ -7141,7 +7141,7 @@ class GetOpenTxnsResponse:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.txn_high_water_mark = iprot.readI64()
+          self.txn_high_water_mark = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
@@ -7149,7 +7149,7 @@ class GetOpenTxnsResponse:
           self.open_txns = set()
           (_etype388, _size385) = iprot.readSetBegin()
           for _i389 in xrange(_size385):
-            _elem390 = iprot.readI64()
+            _elem390 = iprot.readI64();
             self.open_txns.add(_elem390)
           iprot.readSetEnd()
         else:
@@ -7234,17 +7234,17 @@ class OpenTxnRequest:
         break
       if fid == 1:
         if ftype == TType.I32:
-          self.num_txns = iprot.readI32()
+          self.num_txns = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.user = iprot.readString()
+          self.user = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.hostname = iprot.readString()
+          self.hostname = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -7328,7 +7328,7 @@ class OpenTxnsResponse:
           self.txn_ids = []
           (_etype395, _size392) = iprot.readListBegin()
           for _i396 in xrange(_size392):
-            _elem397 = iprot.readI64()
+            _elem397 = iprot.readI64();
             self.txn_ids.append(_elem397)
           iprot.readListEnd()
         else:
@@ -7400,7 +7400,7 @@ class AbortTxnRequest:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.txnid = iprot.readI64()
+          self.txnid = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -7467,7 +7467,7 @@ class CommitTxnRequest:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.txnid = iprot.readI64()
+          self.txnid = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -7546,27 +7546,27 @@ class LockComponent:
         break
       if fid == 1:
         if ftype == TType.I32:
-          self.type = iprot.readI32()
+          self.type = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.level = iprot.readI32()
+          self.level = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.dbname = iprot.readString()
+          self.dbname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.tablename = iprot.readString()
+          self.tablename = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.STRING:
-          self.partitionname = iprot.readString()
+          self.partitionname = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -7677,17 +7677,17 @@ class LockRequest:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I64:
-          self.txnid = iprot.readI64()
+          self.txnid = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.user = iprot.readString()
+          self.user = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.hostname = iprot.readString()
+          self.hostname = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -7779,12 +7779,12 @@ class LockResponse:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.lockid = iprot.readI64()
+          self.lockid = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.state = iprot.readI32()
+          self.state = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -7858,7 +7858,7 @@ class CheckLockRequest:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.lockid = iprot.readI64()
+          self.lockid = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -7925,7 +7925,7 @@ class UnlockRequest:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.lockid = iprot.readI64()
+          self.lockid = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -8068,57 +8068,57 @@ class ShowLocksResponseElement:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.lockid = iprot.readI64()
+          self.lockid = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.dbname = iprot.readString()
+          self.dbname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.tablename = iprot.readString()
+          self.tablename = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.partname = iprot.readString()
+          self.partname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.I32:
-          self.state = iprot.readI32()
+          self.state = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.I32:
-          self.type = iprot.readI32()
+          self.type = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.I64:
-          self.txnid = iprot.readI64()
+          self.txnid = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.I64:
-          self.lastheartbeat = iprot.readI64()
+          self.lastheartbeat = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 9:
         if ftype == TType.I64:
-          self.acquiredat = iprot.readI64()
+          self.acquiredat = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 10:
         if ftype == TType.STRING:
-          self.user = iprot.readString()
+          self.user = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 11:
         if ftype == TType.STRING:
-          self.hostname = iprot.readString()
+          self.hostname = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -8324,12 +8324,12 @@ class HeartbeatRequest:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.lockid = iprot.readI64()
+          self.lockid = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I64:
-          self.txnid = iprot.readI64()
+          self.txnid = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -8402,12 +8402,12 @@ class HeartbeatTxnRangeRequest:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.min = iprot.readI64()
+          self.min = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I64:
-          self.max = iprot.readI64()
+          self.max = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -8487,7 +8487,7 @@ class HeartbeatTxnRangeResponse:
           self.aborted = set()
           (_etype416, _size413) = iprot.readSetBegin()
           for _i417 in xrange(_size413):
-            _elem418 = iprot.readI64()
+            _elem418 = iprot.readI64();
             self.aborted.add(_elem418)
           iprot.readSetEnd()
         else:
@@ -8497,7 +8497,7 @@ class HeartbeatTxnRangeResponse:
           self.nosuch = set()
           (_etype422, _size419) = iprot.readSetBegin()
           for _i423 in xrange(_size419):
-            _elem424 = iprot.readI64()
+            _elem424 = iprot.readI64();
             self.nosuch.add(_elem424)
           iprot.readSetEnd()
         else:
@@ -8591,27 +8591,27 @@ class CompactionRequest:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbname = iprot.readString()
+          self.dbname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tablename = iprot.readString()
+          self.tablename = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.partitionname = iprot.readString()
+          self.partitionname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I32:
-          self.type = iprot.readI32()
+          self.type = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.STRING:
-          self.runas = iprot.readString()
+          self.runas = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -8769,42 +8769,42 @@ class ShowCompactResponseElement:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbname = iprot.readString()
+          self.dbname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tablename = iprot.readString()
+          self.tablename = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.partitionname = iprot.readString()
+          self.partitionname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I32:
-          self.type = iprot.readI32()
+          self.type = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.STRING:
-          self.state = iprot.readString()
+          self.state = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.STRING:
-          self.workerid = iprot.readString()
+          self.workerid = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 7:
         if ftype == TType.I64:
-          self.start = iprot.readI64()
+          self.start = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 8:
         if ftype == TType.STRING:
-          self.runAs = iprot.readString()
+          self.runAs = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -8997,17 +8997,17 @@ class AddDynamicPartitions:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.txnid = iprot.readI64()
+          self.txnid = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.dbname = iprot.readString()
+          self.dbname = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.tablename = iprot.readString()
+          self.tablename = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
@@ -9015,7 +9015,7 @@ class AddDynamicPartitions:
           self.partitionnames = []
           (_etype437, _size434) = iprot.readListBegin()
           for _i438 in xrange(_size434):
-            _elem439 = iprot.readString()
+            _elem439 = iprot.readString();
             self.partitionnames.append(_elem439)
           iprot.readListEnd()
         else:
@@ -9111,12 +9111,12 @@ class NotificationEventRequest:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.lastEvent = iprot.readI64()
+          self.lastEvent = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.maxEvents = iprot.readI32()
+          self.maxEvents = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -9203,32 +9203,32 @@ class NotificationEvent:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.eventId = iprot.readI64()
+          self.eventId = iprot.readI64();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.I32:
-          self.eventTime = iprot.readI32()
+          self.eventTime = iprot.readI32();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.eventType = iprot.readString()
+          self.eventType = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
         if ftype == TType.STRING:
-          self.tableName = iprot.readString()
+          self.tableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 6:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -9402,7 +9402,7 @@ class CurrentNotificationEventId:
         break
       if fid == 1:
         if ftype == TType.I64:
-          self.eventId = iprot.readI64()
+          self.eventId = iprot.readI64();
         else:
           iprot.skip(ftype)
       else:
@@ -9472,7 +9472,7 @@ class InsertEventRequestData:
           self.filesAdded = []
           (_etype451, _size448) = iprot.readListBegin()
           for _i452 in xrange(_size448):
-            _elem453 = iprot.readString()
+            _elem453 = iprot.readString();
             self.filesAdded.append(_elem453)
           iprot.readListEnd()
         else:
@@ -9622,7 +9622,7 @@ class FireEventRequest:
         break
       if fid == 1:
         if ftype == TType.BOOL:
-          self.successful = iprot.readBool()
+          self.successful = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 2:
@@ -9633,12 +9633,12 @@ class FireEventRequest:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.tableName = iprot.readString()
+          self.tableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 5:
@@ -9646,7 +9646,7 @@ class FireEventRequest:
           self.partitionVals = []
           (_etype458, _size455) = iprot.readListBegin()
           for _i459 in xrange(_size455):
-            _elem460 = iprot.readString()
+            _elem460 = iprot.readString();
             self.partitionVals.append(_elem460)
           iprot.readListEnd()
         else:
@@ -9789,12 +9789,12 @@ class MetadataPpdResult:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.metadata = iprot.readString()
+          self.metadata = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.includeBitset = iprot.readString()
+          self.includeBitset = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -9870,7 +9870,7 @@ class GetFileMetadataByExprResult:
           self.metadata = {}
           (_ktype463, _vtype464, _size462 ) = iprot.readMapBegin()
           for _i466 in xrange(_size462):
-            _key467 = iprot.readI64()
+            _key467 = iprot.readI64();
             _val468 = MetadataPpdResult()
             _val468.read(iprot)
             self.metadata[_key467] = _val468
@@ -9879,7 +9879,7 @@ class GetFileMetadataByExprResult:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.BOOL:
-          self.isSupported = iprot.readBool()
+          self.isSupported = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -9969,24 +9969,24 @@ class GetFileMetadataByExprRequest:
           self.fileIds = []
           (_etype474, _size471) = iprot.readListBegin()
           for _i475 in xrange(_size471):
-            _elem476 = iprot.readI64()
+            _elem476 = iprot.readI64();
             self.fileIds.append(_elem476)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.expr = iprot.readString()
+          self.expr = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.BOOL:
-          self.doGetFooters = iprot.readBool()
+          self.doGetFooters = iprot.readBool();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.I32:
-          self.type = iprot.readI32()
+          self.type = iprot.readI32();
         else:
           iprot.skip(ftype)
       else:
@@ -10079,15 +10079,15 @@ class GetFileMetadataResult:
           self.metadata = {}
           (_ktype479, _vtype480, _size478 ) = iprot.readMapBegin()
           for _i482 in xrange(_size478):
-            _key483 = iprot.readI64()
-            _val484 = iprot.readString()
+            _key483 = iprot.readI64();
+            _val484 = iprot.readString();
             self.metadata[_key483] = _val484
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.BOOL:
-          self.isSupported = iprot.readBool()
+          self.isSupported = iprot.readBool();
         else:
           iprot.skip(ftype)
       else:
@@ -10168,7 +10168,7 @@ class GetFileMetadataRequest:
           self.fileIds = []
           (_etype490, _size487) = iprot.readListBegin()
           for _i491 in xrange(_size487):
-            _elem492 = iprot.readI64()
+            _elem492 = iprot.readI64();
             self.fileIds.append(_elem492)
           iprot.readListEnd()
         else:
@@ -10295,7 +10295,7 @@ class PutFileMetadataRequest:
           self.fileIds = []
           (_etype497, _size494) = iprot.readListBegin()
           for _i498 in xrange(_size494):
-            _elem499 = iprot.readI64()
+            _elem499 = iprot.readI64();
             self.fileIds.append(_elem499)
           iprot.readListEnd()
         else:
@@ -10305,7 +10305,7 @@ class PutFileMetadataRequest:
           self.metadata = []
           (_etype503, _size500) = iprot.readListBegin()
           for _i504 in xrange(_size500):
-            _elem505 = iprot.readString()
+            _elem505 = iprot.readString();
             self.metadata.append(_elem505)
           iprot.readListEnd()
         else:
@@ -10446,7 +10446,7 @@ class ClearFileMetadataRequest:
           self.fileIds = []
           (_etype511, _size508) = iprot.readListBegin()
           for _i512 in xrange(_size508):
-            _elem513 = iprot.readI64()
+            _elem513 = iprot.readI64();
             self.fileIds.append(_elem513)
           iprot.readListEnd()
         else:
@@ -10776,22 +10776,22 @@ class TableMeta:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.dbName = iprot.readString()
+          self.dbName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.tableName = iprot.readString()
+          self.tableName = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.tableType = iprot.readString()
+          self.tableType = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
         if ftype == TType.STRING:
-          self.comments = iprot.readString()
+          self.comments = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -10877,7 +10877,7 @@ class MetaException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -10945,7 +10945,7 @@ class UnknownTableException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11013,7 +11013,7 @@ class UnknownDBException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11081,7 +11081,7 @@ class AlreadyExistsException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11149,7 +11149,7 @@ class InvalidPartitionException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11217,7 +11217,7 @@ class UnknownPartitionException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11285,7 +11285,7 @@ class InvalidObjectException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11353,7 +11353,7 @@ class NoSuchObjectException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11421,7 +11421,7 @@ class IndexAlreadyExistsException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11489,7 +11489,7 @@ class InvalidOperationException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11557,7 +11557,7 @@ class ConfigValSecurityException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11625,7 +11625,7 @@ class InvalidInputException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11693,7 +11693,7 @@ class NoSuchTxnException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11761,7 +11761,7 @@ class TxnAbortedException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11829,7 +11829,7 @@ class TxnOpenException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:
@@ -11897,7 +11897,7 @@ class NoSuchLockException(TException):
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.message = iprot.readString()
+          self.message = iprot.readString();
         else:
           iprot.skip(ftype)
       else:

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/metastore/src/gen/thrift/gen-rb/hive_metastore_constants.rb
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-rb/hive_metastore_constants.rb b/metastore/src/gen/thrift/gen-rb/hive_metastore_constants.rb
index eeccc84..7ef6f43 100644
--- a/metastore/src/gen/thrift/gen-rb/hive_metastore_constants.rb
+++ b/metastore/src/gen/thrift/gen-rb/hive_metastore_constants.rb
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.9.2)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 a7b1e86..f545de6 100644
--- a/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
+++ b/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.9.2)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 a90a180..be83a98 100644
--- a/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
+++ b/metastore/src/gen/thrift/gen-rb/thrift_hive_metastore.rb
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.9.3)
+# Autogenerated by Thrift Compiler (0.9.2)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
@@ -1004,6 +1004,23 @@ module ThriftHiveMetastore
       raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_by_expr failed: unknown result')
     end
 
+    def get_num_partitions_by_filter(db_name, tbl_name, filter)
+      send_get_num_partitions_by_filter(db_name, tbl_name, filter)
+      return recv_get_num_partitions_by_filter()
+    end
+
+    def send_get_num_partitions_by_filter(db_name, tbl_name, filter)
+      send_message('get_num_partitions_by_filter', Get_num_partitions_by_filter_args, :db_name => db_name, :tbl_name => tbl_name, :filter => filter)
+    end
+
+    def recv_get_num_partitions_by_filter()
+      result = receive_message(Get_num_partitions_by_filter_result)
+      return result.success unless result.success.nil?
+      raise result.o1 unless result.o1.nil?
+      raise result.o2 unless result.o2.nil?
+      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_num_partitions_by_filter failed: unknown result')
+    end
+
     def get_partitions_by_names(db_name, tbl_name, names)
       send_get_partitions_by_names(db_name, tbl_name, names)
       return recv_get_partitions_by_names()
@@ -3007,6 +3024,19 @@ module ThriftHiveMetastore
       write_result(result, oprot, 'get_partitions_by_expr', seqid)
     end
 
+    def process_get_num_partitions_by_filter(seqid, iprot, oprot)
+      args = read_args(iprot, Get_num_partitions_by_filter_args)
+      result = Get_num_partitions_by_filter_result.new()
+      begin
+        result.success = @handler.get_num_partitions_by_filter(args.db_name, args.tbl_name, args.filter)
+      rescue ::MetaException => o1
+        result.o1 = o1
+      rescue ::NoSuchObjectException => o2
+        result.o2 = o2
+      end
+      write_result(result, oprot, 'get_num_partitions_by_filter', seqid)
+    end
+
     def process_get_partitions_by_names(seqid, iprot, oprot)
       args = read_args(iprot, Get_partitions_by_names_args)
       result = Get_partitions_by_names_result.new()
@@ -6176,6 +6206,46 @@ module ThriftHiveMetastore
     ::Thrift::Struct.generate_accessors self
   end
 
+  class Get_num_partitions_by_filter_args
+    include ::Thrift::Struct, ::Thrift::Struct_Union
+    DB_NAME = 1
+    TBL_NAME = 2
+    FILTER = 3
+
+    FIELDS = {
+      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
+      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
+      FILTER => {:type => ::Thrift::Types::STRING, :name => 'filter'}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+    end
+
+    ::Thrift::Struct.generate_accessors self
+  end
+
+  class Get_num_partitions_by_filter_result
+    include ::Thrift::Struct, ::Thrift::Struct_Union
+    SUCCESS = 0
+    O1 = 1
+    O2 = 2
+
+    FIELDS = {
+      SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'},
+      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
+      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+    end
+
+    ::Thrift::Struct.generate_accessors self
+  end
+
   class Get_partitions_by_names_args
     include ::Thrift::Struct, ::Thrift::Struct_Union
     DB_NAME = 1

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 81d7128..ace644b 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
@@ -4559,6 +4559,25 @@ public class HiveMetaStore extends ThriftHiveMetastore {
     }
 
     @Override
+    public int get_num_partitions_by_filter(final String dbName,
+                                            final String tblName, final String filter)
+            throws MetaException, NoSuchObjectException, TException {
+      startTableFunction("get_num_partitions_by_filter", dbName, tblName);
+
+      int ret = -1;
+      Exception ex = null;
+      try {
+        ret = getMS().getNumPartitionsByFilter(dbName, tblName, filter);
+      } catch (Exception e) {
+        ex = e;
+        rethrowException(e);
+      } finally {
+        endFunction("get_num_partitions_by_filter", ret != -1, ex, tblName);
+      }
+      return ret;
+    }
+
+    @Override
     public List<Partition> get_partitions_by_names(final String dbName,
         final String tblName, final List<String> partNames)
         throws MetaException, NoSuchObjectException, TException {

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 a17c6d8..09a6aea 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -1204,7 +1204,6 @@ public class HiveMetaStoreClient implements IMetaStoreClient {
     return !r.isSetHasUnknownPartitions() || r.isHasUnknownPartitions(); // Assume the worst.
   }
 
-
   /**
    * @param name
    * @return the database
@@ -1395,6 +1394,24 @@ public class HiveMetaStoreClient implements IMetaStoreClient {
         client.get_partition_names_ps(db_name, tbl_name, part_vals, max_parts));
   }
 
+  /**
+   * Get number of partitions matching specified filter
+   * @param db_name the database name
+   * @param tbl_name the table name
+   * @param filter the filter string,
+   *    for example "part1 = \"p1_abc\" and part2 <= "\p2_test\"". Filtering can
+   *    be done only on string partition keys.
+   * @return number of partitions
+   * @throws MetaException
+   * @throws NoSuchObjectException
+   * @throws TException
+   */
+  public int getNumPartitionsByFilter(String db_name, String tbl_name,
+                                      String filter) throws MetaException,
+          NoSuchObjectException, TException {
+    return client.get_num_partitions_by_filter(db_name, tbl_name, filter);
+  }
+
   @Override
   public void alter_partition(String dbName, String tblName, Partition newPart)
       throws InvalidOperationException, MetaException, TException {

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 25e0d38..4284d54 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
@@ -530,6 +530,22 @@ public interface IMetaStoreClient {
       throws MetaException, TException, NoSuchObjectException;
 
   /**
+   * Get number of partitions matching specified filter
+   * @param dbName the database name
+   * @param tableName the table name
+   * @param filter the filter string,
+   *    for example "part1 = \"p1_abc\" and part2 <= "\p2_test\"". Filtering can
+   *    be done only on string partition keys.
+   * @return number of partitions
+   * @throws MetaException
+   * @throws NoSuchObjectException
+   * @throws TException
+   */
+  public int getNumPartitionsByFilter(String dbName, String tableName,
+                                      String filter) throws MetaException, NoSuchObjectException, TException;
+
+
+    /**
    * Get list of partitions matching specified filter
    * @param db_name the database name
    * @param tbl_name the table name

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
index 36b316a..be54b9c 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
@@ -385,6 +385,20 @@ class MetaStoreDirectSql {
         isViewTable, sqlFilter, params, joins, max);
   }
 
+  public int getNumPartitionsViaSqlFilter(Table table, ExpressionTree tree) throws MetaException {
+    List<Object> params = new ArrayList<Object>();
+    List<String>joins = new ArrayList<String>();
+    // Derby and Oracle do not interpret filters ANSI-properly in some cases and need a workaround.
+    boolean dbHasJoinCastBug = (dbType == DB.DERBY || dbType == DB.ORACLE);
+    String sqlFilter = PartitionFilterGenerator.generateSqlFilter(
+        table, tree, params, joins, dbHasJoinCastBug, defaultPartName);
+    if (sqlFilter == null) {
+      return 0; // Cannot make SQL filter to push down.
+    }
+    return getNumPartitionsViaSqlFilterInternal(table.getDbName(), table.getTableName(), sqlFilter, params, joins);
+  }
+
+
   /**
    * Gets all partitions of a table by using direct SQL queries.
    * @param dbName Metastore db name.
@@ -807,6 +821,39 @@ class MetaStoreDirectSql {
     return orderedResult;
   }
 
+  private int getNumPartitionsViaSqlFilterInternal(String dbName, String tblName,
+                                                   String sqlFilter, List<Object> paramsForFilter,
+                                                   List<String> joinsForFilter) throws MetaException {
+    boolean doTrace = LOG.isDebugEnabled();
+    dbName = dbName.toLowerCase();
+    tblName = tblName.toLowerCase();
+
+    // Get number of partitions by doing count on PART_ID.
+    String queryText = "select count(\"PARTITIONS\".\"PART_ID\") from \"PARTITIONS\""
+      + "  inner join \"TBLS\" on \"PARTITIONS\".\"TBL_ID\" = \"TBLS\".\"TBL_ID\" "
+      + "    and \"TBLS\".\"TBL_NAME\" = ? "
+      + "  inner join \"DBS\" on \"TBLS\".\"DB_ID\" = \"DBS\".\"DB_ID\" "
+      + "     and \"DBS\".\"NAME\" = ? "
+      + join(joinsForFilter, ' ')
+      + (sqlFilter == null ? "" : (" where " + sqlFilter));
+
+    Object[] params = new Object[paramsForFilter.size() + 2];
+    params[0] = tblName;
+    params[1] = dbName;
+    for (int i = 0; i < paramsForFilter.size(); ++i) {
+      params[i + 2] = paramsForFilter.get(i);
+    }
+
+    long start = doTrace ? System.nanoTime() : 0;
+    Query query = pm.newQuery("javax.jdo.query.SQL", queryText);
+    @SuppressWarnings("unchecked")
+    int sqlResult = extractSqlInt(query.executeWithArray(params));
+    long queryTime = doTrace ? System.nanoTime() : 0;
+    timingTrace(doTrace, queryText, start, queryTime);
+    return sqlResult;
+  }
+
+
   private void timingTrace(boolean doTrace, String queryText, long start, long queryTime) {
     if (!doTrace) return;
     LOG.debug("Direct SQL query in " + (queryTime - start) / 1000000.0 + "ms + " +

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 05d5b57..e1b8b6c 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
@@ -2279,6 +2279,7 @@ public class ObjectStore implements RawStore, Configurable {
         }
         return result;
       }
+
       @Override
       protected List<Partition> getJdoResult(
           GetHelper<List<Partition>> ctx) throws MetaException, NoSuchObjectException {
@@ -2365,6 +2366,12 @@ public class ObjectStore implements RawStore, Configurable {
     return results;
   }
 
+
+  private Integer getNumPartitionsViaOrmFilter(Table table, ExpressionTree tree, boolean isValidatedFilter)
+    throws MetaException {
+    return getPartitionsViaOrmFilter(table, tree, (short) -1, isValidatedFilter).size();
+  }
+
   /**
    * Gets partition names from the table via ORM (JDOQL) name filter.
    * @param dbName Database name.
@@ -2646,6 +2653,36 @@ public class ObjectStore implements RawStore, Configurable {
     }
   }
 
+  @Override
+  public int getNumPartitionsByFilter(String dbName, String tblName,
+                                      String filter) throws MetaException, NoSuchObjectException {
+    return getNumPartitionsByFilterInternal(dbName, tblName, filter,
+      true, true);
+  }
+
+  protected int getNumPartitionsByFilterInternal(String dbName, String tblName,
+                                                 String filter, boolean allowSql, boolean allowJdo)
+    throws MetaException, NoSuchObjectException {
+    final ExpressionTree tree = (filter != null && !filter.isEmpty())
+      ? PartFilterExprUtil.getFilterParser(filter).tree : ExpressionTree.EMPTY_TREE;
+    return new GetHelper<Integer>(dbName, tblName, allowSql, allowJdo) {
+      @Override
+      protected String describeResult() {
+        return null;
+      }
+
+      @Override
+      protected Integer getSqlResult(GetHelper<Integer> ctx) throws MetaException {
+        return directSql.getNumPartitionsViaSqlFilter(ctx.getTable(), tree);
+      }
+      @Override
+      protected Integer getJdoResult(
+        GetHelper<Integer> ctx) throws MetaException, NoSuchObjectException {
+        return getNumPartitionsViaOrmFilter(ctx.getTable(), tree, true);
+      }
+    }.run(true);
+  }
+
   protected List<Partition> getPartitionsByFilterInternal(String dbName, String tblName,
       String filter, final short maxParts, boolean allowSql, boolean allowJdo)
       throws MetaException, NoSuchObjectException {

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 d228f24..cbd5957 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/RawStore.java
@@ -223,6 +223,9 @@ public interface RawStore extends Configurable {
       byte[] expr, String defaultPartitionName, short maxParts, List<Partition> result)
       throws TException;
 
+  public abstract int getNumPartitionsByFilter(String dbName, String tblName, String filter)
+    throws MetaException, NoSuchObjectException;
+
   public abstract List<Partition> getPartitionsByNames(
       String dbName, String tblName, List<String> partNames)
       throws MetaException, NoSuchObjectException;

http://git-wip-us.apache.org/repos/asf/hive/blob/ccb30e3e/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 fcf983f..0ffdbe0 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
@@ -758,6 +758,21 @@ public class HBaseStore implements RawStore {
     }
   }
 
+  @Override
+  public int getNumPartitionsByFilter(String dbName, String tblName, String filter)
+    throws MetaException, NoSuchObjectException {
+    final ExpressionTree exprTree = (filter != null && !filter.isEmpty()) ? PartFilterExprUtil
+      .getFilterParser(filter).tree : ExpressionTree.EMPTY_TREE;
+    List<Partition> result = new ArrayList<Partition>();
+    boolean commit = false;
+    openTransaction();
+    try {
+      return getPartitionsByFilter(dbName, tblName, filter, Short.MAX_VALUE).size();
+    } finally {
+      commitOrRoleBack(commit);
+    }
+  }
+
   /**
    * Gets the partition names from a table, pruned using an expression.
    * @param table Table.