You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2018/07/13 01:41:32 UTC

[90/91] [abbrv] hive git commit: HIVE-19416 : merge master into branch (Sergey Shelukhin) 0712

http://git-wip-us.apache.org/repos/asf/hive/blob/93b9cdd6/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/93b9cdd6/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsRequest.java
----------------------------------------------------------------------
diff --cc standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsRequest.java
index 0000000,dd3a127..56e5043
mode 000000,100644..100644
--- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsRequest.java
+++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsRequest.java
@@@ -1,0 -1,955 +1,1162 @@@
+ /**
+  * Autogenerated by Thrift Compiler (0.9.3)
+  *
+  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+  *  @generated
+  */
+ package org.apache.hadoop.hive.metastore.api;
+ 
+ import org.apache.thrift.scheme.IScheme;
+ import org.apache.thrift.scheme.SchemeFactory;
+ import org.apache.thrift.scheme.StandardScheme;
+ 
+ import org.apache.thrift.scheme.TupleScheme;
+ import org.apache.thrift.protocol.TTupleProtocol;
+ import org.apache.thrift.protocol.TProtocolException;
+ import org.apache.thrift.EncodingUtils;
+ import org.apache.thrift.TException;
+ import org.apache.thrift.async.AsyncMethodCallback;
+ import org.apache.thrift.server.AbstractNonblockingServer.*;
+ import java.util.List;
+ import java.util.ArrayList;
+ import java.util.Map;
+ import java.util.HashMap;
+ import java.util.EnumMap;
+ import java.util.Set;
+ import java.util.HashSet;
+ import java.util.EnumSet;
+ import java.util.Collections;
+ import java.util.BitSet;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import javax.annotation.Generated;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+ @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public class AddPartitionsRequest implements org.apache.thrift.TBase<AddPartitionsRequest, AddPartitionsRequest._Fields>, java.io.Serializable, Cloneable, Comparable<AddPartitionsRequest> {
+   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AddPartitionsRequest");
+ 
+   private static final org.apache.thrift.protocol.TField DB_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("dbName", org.apache.thrift.protocol.TType.STRING, (short)1);
+   private static final org.apache.thrift.protocol.TField TBL_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tblName", org.apache.thrift.protocol.TType.STRING, (short)2);
+   private static final org.apache.thrift.protocol.TField PARTS_FIELD_DESC = new org.apache.thrift.protocol.TField("parts", org.apache.thrift.protocol.TType.LIST, (short)3);
+   private static final org.apache.thrift.protocol.TField IF_NOT_EXISTS_FIELD_DESC = new org.apache.thrift.protocol.TField("ifNotExists", org.apache.thrift.protocol.TType.BOOL, (short)4);
+   private static final org.apache.thrift.protocol.TField NEED_RESULT_FIELD_DESC = new org.apache.thrift.protocol.TField("needResult", org.apache.thrift.protocol.TType.BOOL, (short)5);
+   private static final org.apache.thrift.protocol.TField CAT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("catName", org.apache.thrift.protocol.TType.STRING, (short)6);
++  private static final org.apache.thrift.protocol.TField TXN_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("txnId", org.apache.thrift.protocol.TType.I64, (short)7);
++  private static final org.apache.thrift.protocol.TField VALID_WRITE_ID_LIST_FIELD_DESC = new org.apache.thrift.protocol.TField("validWriteIdList", org.apache.thrift.protocol.TType.STRING, (short)8);
+ 
+   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+   static {
+     schemes.put(StandardScheme.class, new AddPartitionsRequestStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new AddPartitionsRequestTupleSchemeFactory());
+   }
+ 
+   private String dbName; // required
+   private String tblName; // required
+   private List<Partition> parts; // required
+   private boolean ifNotExists; // required
+   private boolean needResult; // optional
+   private String catName; // optional
++  private long txnId; // optional
++  private String validWriteIdList; // optional
+ 
+   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+     DB_NAME((short)1, "dbName"),
+     TBL_NAME((short)2, "tblName"),
+     PARTS((short)3, "parts"),
+     IF_NOT_EXISTS((short)4, "ifNotExists"),
+     NEED_RESULT((short)5, "needResult"),
 -    CAT_NAME((short)6, "catName");
++    CAT_NAME((short)6, "catName"),
++    TXN_ID((short)7, "txnId"),
++    VALID_WRITE_ID_LIST((short)8, "validWriteIdList");
+ 
+     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+ 
+     static {
+       for (_Fields field : EnumSet.allOf(_Fields.class)) {
+         byName.put(field.getFieldName(), field);
+       }
+     }
+ 
+     /**
+      * Find the _Fields constant that matches fieldId, or null if its not found.
+      */
+     public static _Fields findByThriftId(int fieldId) {
+       switch(fieldId) {
+         case 1: // DB_NAME
+           return DB_NAME;
+         case 2: // TBL_NAME
+           return TBL_NAME;
+         case 3: // PARTS
+           return PARTS;
+         case 4: // IF_NOT_EXISTS
+           return IF_NOT_EXISTS;
+         case 5: // NEED_RESULT
+           return NEED_RESULT;
+         case 6: // CAT_NAME
+           return CAT_NAME;
++        case 7: // TXN_ID
++          return TXN_ID;
++        case 8: // VALID_WRITE_ID_LIST
++          return VALID_WRITE_ID_LIST;
+         default:
+           return null;
+       }
+     }
+ 
+     /**
+      * Find the _Fields constant that matches fieldId, throwing an exception
+      * if it is not found.
+      */
+     public static _Fields findByThriftIdOrThrow(int fieldId) {
+       _Fields fields = findByThriftId(fieldId);
+       if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+       return fields;
+     }
+ 
+     /**
+      * Find the _Fields constant that matches name, or null if its not found.
+      */
+     public static _Fields findByName(String name) {
+       return byName.get(name);
+     }
+ 
+     private final short _thriftId;
+     private final String _fieldName;
+ 
+     _Fields(short thriftId, String fieldName) {
+       _thriftId = thriftId;
+       _fieldName = fieldName;
+     }
+ 
+     public short getThriftFieldId() {
+       return _thriftId;
+     }
+ 
+     public String getFieldName() {
+       return _fieldName;
+     }
+   }
+ 
+   // isset id assignments
+   private static final int __IFNOTEXISTS_ISSET_ID = 0;
+   private static final int __NEEDRESULT_ISSET_ID = 1;
++  private static final int __TXNID_ISSET_ID = 2;
+   private byte __isset_bitfield = 0;
 -  private static final _Fields optionals[] = {_Fields.NEED_RESULT,_Fields.CAT_NAME};
++  private static final _Fields optionals[] = {_Fields.NEED_RESULT,_Fields.CAT_NAME,_Fields.TXN_ID,_Fields.VALID_WRITE_ID_LIST};
+   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, 
+         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, 
+         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+     tmpMap.put(_Fields.PARTS, new org.apache.thrift.meta_data.FieldMetaData("parts", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
+     tmpMap.put(_Fields.IF_NOT_EXISTS, new org.apache.thrift.meta_data.FieldMetaData("ifNotExists", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+     tmpMap.put(_Fields.NEED_RESULT, new org.apache.thrift.meta_data.FieldMetaData("needResult", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+     tmpMap.put(_Fields.CAT_NAME, new org.apache.thrift.meta_data.FieldMetaData("catName", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
++    tmpMap.put(_Fields.TXN_ID, new org.apache.thrift.meta_data.FieldMetaData("txnId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
++    tmpMap.put(_Fields.VALID_WRITE_ID_LIST, new org.apache.thrift.meta_data.FieldMetaData("validWriteIdList", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
++        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+     metaDataMap = Collections.unmodifiableMap(tmpMap);
+     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(AddPartitionsRequest.class, metaDataMap);
+   }
+ 
+   public AddPartitionsRequest() {
+     this.needResult = true;
+ 
++    this.txnId = -1L;
++
+   }
+ 
+   public AddPartitionsRequest(
+     String dbName,
+     String tblName,
+     List<Partition> parts,
+     boolean ifNotExists)
+   {
+     this();
+     this.dbName = dbName;
+     this.tblName = tblName;
+     this.parts = parts;
+     this.ifNotExists = ifNotExists;
+     setIfNotExistsIsSet(true);
+   }
+ 
+   /**
+    * Performs a deep copy on <i>other</i>.
+    */
+   public AddPartitionsRequest(AddPartitionsRequest other) {
+     __isset_bitfield = other.__isset_bitfield;
+     if (other.isSetDbName()) {
+       this.dbName = other.dbName;
+     }
+     if (other.isSetTblName()) {
+       this.tblName = other.tblName;
+     }
+     if (other.isSetParts()) {
+       List<Partition> __this__parts = new ArrayList<Partition>(other.parts.size());
+       for (Partition other_element : other.parts) {
+         __this__parts.add(new Partition(other_element));
+       }
+       this.parts = __this__parts;
+     }
+     this.ifNotExists = other.ifNotExists;
+     this.needResult = other.needResult;
+     if (other.isSetCatName()) {
+       this.catName = other.catName;
+     }
++    this.txnId = other.txnId;
++    if (other.isSetValidWriteIdList()) {
++      this.validWriteIdList = other.validWriteIdList;
++    }
+   }
+ 
+   public AddPartitionsRequest deepCopy() {
+     return new AddPartitionsRequest(this);
+   }
+ 
+   @Override
+   public void clear() {
+     this.dbName = null;
+     this.tblName = null;
+     this.parts = null;
+     setIfNotExistsIsSet(false);
+     this.ifNotExists = false;
+     this.needResult = true;
+ 
+     this.catName = null;
++    this.txnId = -1L;
++
++    this.validWriteIdList = null;
+   }
+ 
+   public String getDbName() {
+     return this.dbName;
+   }
+ 
+   public void setDbName(String dbName) {
+     this.dbName = dbName;
+   }
+ 
+   public void unsetDbName() {
+     this.dbName = null;
+   }
+ 
+   /** Returns true if field dbName is set (has been assigned a value) and false otherwise */
+   public boolean isSetDbName() {
+     return this.dbName != null;
+   }
+ 
+   public void setDbNameIsSet(boolean value) {
+     if (!value) {
+       this.dbName = null;
+     }
+   }
+ 
+   public String getTblName() {
+     return this.tblName;
+   }
+ 
+   public void setTblName(String tblName) {
+     this.tblName = tblName;
+   }
+ 
+   public void unsetTblName() {
+     this.tblName = null;
+   }
+ 
+   /** Returns true if field tblName is set (has been assigned a value) and false otherwise */
+   public boolean isSetTblName() {
+     return this.tblName != null;
+   }
+ 
+   public void setTblNameIsSet(boolean value) {
+     if (!value) {
+       this.tblName = null;
+     }
+   }
+ 
+   public int getPartsSize() {
+     return (this.parts == null) ? 0 : this.parts.size();
+   }
+ 
+   public java.util.Iterator<Partition> getPartsIterator() {
+     return (this.parts == null) ? null : this.parts.iterator();
+   }
+ 
+   public void addToParts(Partition elem) {
+     if (this.parts == null) {
+       this.parts = new ArrayList<Partition>();
+     }
+     this.parts.add(elem);
+   }
+ 
+   public List<Partition> getParts() {
+     return this.parts;
+   }
+ 
+   public void setParts(List<Partition> parts) {
+     this.parts = parts;
+   }
+ 
+   public void unsetParts() {
+     this.parts = null;
+   }
+ 
+   /** Returns true if field parts is set (has been assigned a value) and false otherwise */
+   public boolean isSetParts() {
+     return this.parts != null;
+   }
+ 
+   public void setPartsIsSet(boolean value) {
+     if (!value) {
+       this.parts = null;
+     }
+   }
+ 
+   public boolean isIfNotExists() {
+     return this.ifNotExists;
+   }
+ 
+   public void setIfNotExists(boolean ifNotExists) {
+     this.ifNotExists = ifNotExists;
+     setIfNotExistsIsSet(true);
+   }
+ 
+   public void unsetIfNotExists() {
+     __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __IFNOTEXISTS_ISSET_ID);
+   }
+ 
+   /** Returns true if field ifNotExists is set (has been assigned a value) and false otherwise */
+   public boolean isSetIfNotExists() {
+     return EncodingUtils.testBit(__isset_bitfield, __IFNOTEXISTS_ISSET_ID);
+   }
+ 
+   public void setIfNotExistsIsSet(boolean value) {
+     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __IFNOTEXISTS_ISSET_ID, value);
+   }
+ 
+   public boolean isNeedResult() {
+     return this.needResult;
+   }
+ 
+   public void setNeedResult(boolean needResult) {
+     this.needResult = needResult;
+     setNeedResultIsSet(true);
+   }
+ 
+   public void unsetNeedResult() {
+     __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NEEDRESULT_ISSET_ID);
+   }
+ 
+   /** Returns true if field needResult is set (has been assigned a value) and false otherwise */
+   public boolean isSetNeedResult() {
+     return EncodingUtils.testBit(__isset_bitfield, __NEEDRESULT_ISSET_ID);
+   }
+ 
+   public void setNeedResultIsSet(boolean value) {
+     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NEEDRESULT_ISSET_ID, value);
+   }
+ 
+   public String getCatName() {
+     return this.catName;
+   }
+ 
+   public void setCatName(String catName) {
+     this.catName = catName;
+   }
+ 
+   public void unsetCatName() {
+     this.catName = null;
+   }
+ 
+   /** Returns true if field catName is set (has been assigned a value) and false otherwise */
+   public boolean isSetCatName() {
+     return this.catName != null;
+   }
+ 
+   public void setCatNameIsSet(boolean value) {
+     if (!value) {
+       this.catName = null;
+     }
+   }
+ 
++  public long getTxnId() {
++    return this.txnId;
++  }
++
++  public void setTxnId(long txnId) {
++    this.txnId = txnId;
++    setTxnIdIsSet(true);
++  }
++
++  public void unsetTxnId() {
++    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TXNID_ISSET_ID);
++  }
++
++  /** Returns true if field txnId is set (has been assigned a value) and false otherwise */
++  public boolean isSetTxnId() {
++    return EncodingUtils.testBit(__isset_bitfield, __TXNID_ISSET_ID);
++  }
++
++  public void setTxnIdIsSet(boolean value) {
++    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TXNID_ISSET_ID, value);
++  }
++
++  public String getValidWriteIdList() {
++    return this.validWriteIdList;
++  }
++
++  public void setValidWriteIdList(String validWriteIdList) {
++    this.validWriteIdList = validWriteIdList;
++  }
++
++  public void unsetValidWriteIdList() {
++    this.validWriteIdList = null;
++  }
++
++  /** Returns true if field validWriteIdList is set (has been assigned a value) and false otherwise */
++  public boolean isSetValidWriteIdList() {
++    return this.validWriteIdList != null;
++  }
++
++  public void setValidWriteIdListIsSet(boolean value) {
++    if (!value) {
++      this.validWriteIdList = null;
++    }
++  }
++
+   public void setFieldValue(_Fields field, Object value) {
+     switch (field) {
+     case DB_NAME:
+       if (value == null) {
+         unsetDbName();
+       } else {
+         setDbName((String)value);
+       }
+       break;
+ 
+     case TBL_NAME:
+       if (value == null) {
+         unsetTblName();
+       } else {
+         setTblName((String)value);
+       }
+       break;
+ 
+     case PARTS:
+       if (value == null) {
+         unsetParts();
+       } else {
+         setParts((List<Partition>)value);
+       }
+       break;
+ 
+     case IF_NOT_EXISTS:
+       if (value == null) {
+         unsetIfNotExists();
+       } else {
+         setIfNotExists((Boolean)value);
+       }
+       break;
+ 
+     case NEED_RESULT:
+       if (value == null) {
+         unsetNeedResult();
+       } else {
+         setNeedResult((Boolean)value);
+       }
+       break;
+ 
+     case CAT_NAME:
+       if (value == null) {
+         unsetCatName();
+       } else {
+         setCatName((String)value);
+       }
+       break;
+ 
++    case TXN_ID:
++      if (value == null) {
++        unsetTxnId();
++      } else {
++        setTxnId((Long)value);
++      }
++      break;
++
++    case VALID_WRITE_ID_LIST:
++      if (value == null) {
++        unsetValidWriteIdList();
++      } else {
++        setValidWriteIdList((String)value);
++      }
++      break;
++
+     }
+   }
+ 
+   public Object getFieldValue(_Fields field) {
+     switch (field) {
+     case DB_NAME:
+       return getDbName();
+ 
+     case TBL_NAME:
+       return getTblName();
+ 
+     case PARTS:
+       return getParts();
+ 
+     case IF_NOT_EXISTS:
+       return isIfNotExists();
+ 
+     case NEED_RESULT:
+       return isNeedResult();
+ 
+     case CAT_NAME:
+       return getCatName();
+ 
++    case TXN_ID:
++      return getTxnId();
++
++    case VALID_WRITE_ID_LIST:
++      return getValidWriteIdList();
++
+     }
+     throw new IllegalStateException();
+   }
+ 
+   /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+   public boolean isSet(_Fields field) {
+     if (field == null) {
+       throw new IllegalArgumentException();
+     }
+ 
+     switch (field) {
+     case DB_NAME:
+       return isSetDbName();
+     case TBL_NAME:
+       return isSetTblName();
+     case PARTS:
+       return isSetParts();
+     case IF_NOT_EXISTS:
+       return isSetIfNotExists();
+     case NEED_RESULT:
+       return isSetNeedResult();
+     case CAT_NAME:
+       return isSetCatName();
++    case TXN_ID:
++      return isSetTxnId();
++    case VALID_WRITE_ID_LIST:
++      return isSetValidWriteIdList();
+     }
+     throw new IllegalStateException();
+   }
+ 
+   @Override
+   public boolean equals(Object that) {
+     if (that == null)
+       return false;
+     if (that instanceof AddPartitionsRequest)
+       return this.equals((AddPartitionsRequest)that);
+     return false;
+   }
+ 
+   public boolean equals(AddPartitionsRequest that) {
+     if (that == null)
+       return false;
+ 
+     boolean this_present_dbName = true && this.isSetDbName();
+     boolean that_present_dbName = true && that.isSetDbName();
+     if (this_present_dbName || that_present_dbName) {
+       if (!(this_present_dbName && that_present_dbName))
+         return false;
+       if (!this.dbName.equals(that.dbName))
+         return false;
+     }
+ 
+     boolean this_present_tblName = true && this.isSetTblName();
+     boolean that_present_tblName = true && that.isSetTblName();
+     if (this_present_tblName || that_present_tblName) {
+       if (!(this_present_tblName && that_present_tblName))
+         return false;
+       if (!this.tblName.equals(that.tblName))
+         return false;
+     }
+ 
+     boolean this_present_parts = true && this.isSetParts();
+     boolean that_present_parts = true && that.isSetParts();
+     if (this_present_parts || that_present_parts) {
+       if (!(this_present_parts && that_present_parts))
+         return false;
+       if (!this.parts.equals(that.parts))
+         return false;
+     }
+ 
+     boolean this_present_ifNotExists = true;
+     boolean that_present_ifNotExists = true;
+     if (this_present_ifNotExists || that_present_ifNotExists) {
+       if (!(this_present_ifNotExists && that_present_ifNotExists))
+         return false;
+       if (this.ifNotExists != that.ifNotExists)
+         return false;
+     }
+ 
+     boolean this_present_needResult = true && this.isSetNeedResult();
+     boolean that_present_needResult = true && that.isSetNeedResult();
+     if (this_present_needResult || that_present_needResult) {
+       if (!(this_present_needResult && that_present_needResult))
+         return false;
+       if (this.needResult != that.needResult)
+         return false;
+     }
+ 
+     boolean this_present_catName = true && this.isSetCatName();
+     boolean that_present_catName = true && that.isSetCatName();
+     if (this_present_catName || that_present_catName) {
+       if (!(this_present_catName && that_present_catName))
+         return false;
+       if (!this.catName.equals(that.catName))
+         return false;
+     }
+ 
++    boolean this_present_txnId = true && this.isSetTxnId();
++    boolean that_present_txnId = true && that.isSetTxnId();
++    if (this_present_txnId || that_present_txnId) {
++      if (!(this_present_txnId && that_present_txnId))
++        return false;
++      if (this.txnId != that.txnId)
++        return false;
++    }
++
++    boolean this_present_validWriteIdList = true && this.isSetValidWriteIdList();
++    boolean that_present_validWriteIdList = true && that.isSetValidWriteIdList();
++    if (this_present_validWriteIdList || that_present_validWriteIdList) {
++      if (!(this_present_validWriteIdList && that_present_validWriteIdList))
++        return false;
++      if (!this.validWriteIdList.equals(that.validWriteIdList))
++        return false;
++    }
++
+     return true;
+   }
+ 
+   @Override
+   public int hashCode() {
+     List<Object> list = new ArrayList<Object>();
+ 
+     boolean present_dbName = true && (isSetDbName());
+     list.add(present_dbName);
+     if (present_dbName)
+       list.add(dbName);
+ 
+     boolean present_tblName = true && (isSetTblName());
+     list.add(present_tblName);
+     if (present_tblName)
+       list.add(tblName);
+ 
+     boolean present_parts = true && (isSetParts());
+     list.add(present_parts);
+     if (present_parts)
+       list.add(parts);
+ 
+     boolean present_ifNotExists = true;
+     list.add(present_ifNotExists);
+     if (present_ifNotExists)
+       list.add(ifNotExists);
+ 
+     boolean present_needResult = true && (isSetNeedResult());
+     list.add(present_needResult);
+     if (present_needResult)
+       list.add(needResult);
+ 
+     boolean present_catName = true && (isSetCatName());
+     list.add(present_catName);
+     if (present_catName)
+       list.add(catName);
+ 
++    boolean present_txnId = true && (isSetTxnId());
++    list.add(present_txnId);
++    if (present_txnId)
++      list.add(txnId);
++
++    boolean present_validWriteIdList = true && (isSetValidWriteIdList());
++    list.add(present_validWriteIdList);
++    if (present_validWriteIdList)
++      list.add(validWriteIdList);
++
+     return list.hashCode();
+   }
+ 
+   @Override
+   public int compareTo(AddPartitionsRequest other) {
+     if (!getClass().equals(other.getClass())) {
+       return getClass().getName().compareTo(other.getClass().getName());
+     }
+ 
+     int lastComparison = 0;
+ 
+     lastComparison = Boolean.valueOf(isSetDbName()).compareTo(other.isSetDbName());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetDbName()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dbName, other.dbName);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
+     lastComparison = Boolean.valueOf(isSetTblName()).compareTo(other.isSetTblName());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetTblName()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tblName, other.tblName);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
+     lastComparison = Boolean.valueOf(isSetParts()).compareTo(other.isSetParts());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetParts()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parts, other.parts);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
+     lastComparison = Boolean.valueOf(isSetIfNotExists()).compareTo(other.isSetIfNotExists());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetIfNotExists()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ifNotExists, other.ifNotExists);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
+     lastComparison = Boolean.valueOf(isSetNeedResult()).compareTo(other.isSetNeedResult());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetNeedResult()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.needResult, other.needResult);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
+     lastComparison = Boolean.valueOf(isSetCatName()).compareTo(other.isSetCatName());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetCatName()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catName, other.catName);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
++    lastComparison = Boolean.valueOf(isSetTxnId()).compareTo(other.isSetTxnId());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetTxnId()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.txnId, other.txnId);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
++    lastComparison = Boolean.valueOf(isSetValidWriteIdList()).compareTo(other.isSetValidWriteIdList());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetValidWriteIdList()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validWriteIdList, other.validWriteIdList);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
+     return 0;
+   }
+ 
+   public _Fields fieldForId(int fieldId) {
+     return _Fields.findByThriftId(fieldId);
+   }
+ 
+   public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+     schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+   }
+ 
+   public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+     schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+   }
+ 
+   @Override
+   public String toString() {
+     StringBuilder sb = new StringBuilder("AddPartitionsRequest(");
+     boolean first = true;
+ 
+     sb.append("dbName:");
+     if (this.dbName == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.dbName);
+     }
+     first = false;
+     if (!first) sb.append(", ");
+     sb.append("tblName:");
+     if (this.tblName == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.tblName);
+     }
+     first = false;
+     if (!first) sb.append(", ");
+     sb.append("parts:");
+     if (this.parts == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.parts);
+     }
+     first = false;
+     if (!first) sb.append(", ");
+     sb.append("ifNotExists:");
+     sb.append(this.ifNotExists);
+     first = false;
+     if (isSetNeedResult()) {
+       if (!first) sb.append(", ");
+       sb.append("needResult:");
+       sb.append(this.needResult);
+       first = false;
+     }
+     if (isSetCatName()) {
+       if (!first) sb.append(", ");
+       sb.append("catName:");
+       if (this.catName == null) {
+         sb.append("null");
+       } else {
+         sb.append(this.catName);
+       }
+       first = false;
+     }
++    if (isSetTxnId()) {
++      if (!first) sb.append(", ");
++      sb.append("txnId:");
++      sb.append(this.txnId);
++      first = false;
++    }
++    if (isSetValidWriteIdList()) {
++      if (!first) sb.append(", ");
++      sb.append("validWriteIdList:");
++      if (this.validWriteIdList == null) {
++        sb.append("null");
++      } else {
++        sb.append(this.validWriteIdList);
++      }
++      first = false;
++    }
+     sb.append(")");
+     return sb.toString();
+   }
+ 
+   public void validate() throws org.apache.thrift.TException {
+     // check for required fields
+     if (!isSetDbName()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'dbName' is unset! Struct:" + toString());
+     }
+ 
+     if (!isSetTblName()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'tblName' is unset! Struct:" + toString());
+     }
+ 
+     if (!isSetParts()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'parts' is unset! Struct:" + toString());
+     }
+ 
+     if (!isSetIfNotExists()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'ifNotExists' is unset! Struct:" + toString());
+     }
+ 
+     // check for sub-struct validity
+   }
+ 
+   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+     try {
+       write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+     } catch (org.apache.thrift.TException te) {
+       throw new java.io.IOException(te);
+     }
+   }
+ 
+   private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+     try {
+       // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+       __isset_bitfield = 0;
+       read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+     } catch (org.apache.thrift.TException te) {
+       throw new java.io.IOException(te);
+     }
+   }
+ 
+   private static class AddPartitionsRequestStandardSchemeFactory implements SchemeFactory {
+     public AddPartitionsRequestStandardScheme getScheme() {
+       return new AddPartitionsRequestStandardScheme();
+     }
+   }
+ 
+   private static class AddPartitionsRequestStandardScheme extends StandardScheme<AddPartitionsRequest> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, AddPartitionsRequest struct) throws org.apache.thrift.TException {
+       org.apache.thrift.protocol.TField schemeField;
+       iprot.readStructBegin();
+       while (true)
+       {
+         schemeField = iprot.readFieldBegin();
+         if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+           break;
+         }
+         switch (schemeField.id) {
+           case 1: // DB_NAME
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.dbName = iprot.readString();
+               struct.setDbNameIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 2: // TBL_NAME
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.tblName = iprot.readString();
+               struct.setTblNameIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 3: // PARTS
+             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+               {
+                 org.apache.thrift.protocol.TList _list482 = iprot.readListBegin();
+                 struct.parts = new ArrayList<Partition>(_list482.size);
+                 Partition _elem483;
+                 for (int _i484 = 0; _i484 < _list482.size; ++_i484)
+                 {
+                   _elem483 = new Partition();
+                   _elem483.read(iprot);
+                   struct.parts.add(_elem483);
+                 }
+                 iprot.readListEnd();
+               }
+               struct.setPartsIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 4: // IF_NOT_EXISTS
+             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+               struct.ifNotExists = iprot.readBool();
+               struct.setIfNotExistsIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 5: // NEED_RESULT
+             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+               struct.needResult = iprot.readBool();
+               struct.setNeedResultIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 6: // CAT_NAME
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.catName = iprot.readString();
+               struct.setCatNameIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
++          case 7: // TXN_ID
++            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
++              struct.txnId = iprot.readI64();
++              struct.setTxnIdIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 8: // VALID_WRITE_ID_LIST
++            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
++              struct.validWriteIdList = iprot.readString();
++              struct.setValidWriteIdListIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
+           default:
+             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+         }
+         iprot.readFieldEnd();
+       }
+       iprot.readStructEnd();
+       struct.validate();
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot, AddPartitionsRequest struct) throws org.apache.thrift.TException {
+       struct.validate();
+ 
+       oprot.writeStructBegin(STRUCT_DESC);
+       if (struct.dbName != null) {
+         oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
+         oprot.writeString(struct.dbName);
+         oprot.writeFieldEnd();
+       }
+       if (struct.tblName != null) {
+         oprot.writeFieldBegin(TBL_NAME_FIELD_DESC);
+         oprot.writeString(struct.tblName);
+         oprot.writeFieldEnd();
+       }
+       if (struct.parts != null) {
+         oprot.writeFieldBegin(PARTS_FIELD_DESC);
+         {
+           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.parts.size()));
+           for (Partition _iter485 : struct.parts)
+           {
+             _iter485.write(oprot);
+           }
+           oprot.writeListEnd();
+         }
+         oprot.writeFieldEnd();
+       }
+       oprot.writeFieldBegin(IF_NOT_EXISTS_FIELD_DESC);
+       oprot.writeBool(struct.ifNotExists);
+       oprot.writeFieldEnd();
+       if (struct.isSetNeedResult()) {
+         oprot.writeFieldBegin(NEED_RESULT_FIELD_DESC);
+         oprot.writeBool(struct.needResult);
+         oprot.writeFieldEnd();
+       }
+       if (struct.catName != null) {
+         if (struct.isSetCatName()) {
+           oprot.writeFieldBegin(CAT_NAME_FIELD_DESC);
+           oprot.writeString(struct.catName);
+           oprot.writeFieldEnd();
+         }
+       }
++      if (struct.isSetTxnId()) {
++        oprot.writeFieldBegin(TXN_ID_FIELD_DESC);
++        oprot.writeI64(struct.txnId);
++        oprot.writeFieldEnd();
++      }
++      if (struct.validWriteIdList != null) {
++        if (struct.isSetValidWriteIdList()) {
++          oprot.writeFieldBegin(VALID_WRITE_ID_LIST_FIELD_DESC);
++          oprot.writeString(struct.validWriteIdList);
++          oprot.writeFieldEnd();
++        }
++      }
+       oprot.writeFieldStop();
+       oprot.writeStructEnd();
+     }
+ 
+   }
+ 
+   private static class AddPartitionsRequestTupleSchemeFactory implements SchemeFactory {
+     public AddPartitionsRequestTupleScheme getScheme() {
+       return new AddPartitionsRequestTupleScheme();
+     }
+   }
+ 
+   private static class AddPartitionsRequestTupleScheme extends TupleScheme<AddPartitionsRequest> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, AddPartitionsRequest struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       oprot.writeString(struct.dbName);
+       oprot.writeString(struct.tblName);
+       {
+         oprot.writeI32(struct.parts.size());
+         for (Partition _iter486 : struct.parts)
+         {
+           _iter486.write(oprot);
+         }
+       }
+       oprot.writeBool(struct.ifNotExists);
+       BitSet optionals = new BitSet();
+       if (struct.isSetNeedResult()) {
+         optionals.set(0);
+       }
+       if (struct.isSetCatName()) {
+         optionals.set(1);
+       }
 -      oprot.writeBitSet(optionals, 2);
++      if (struct.isSetTxnId()) {
++        optionals.set(2);
++      }
++      if (struct.isSetValidWriteIdList()) {
++        optionals.set(3);
++      }
++      oprot.writeBitSet(optionals, 4);
+       if (struct.isSetNeedResult()) {
+         oprot.writeBool(struct.needResult);
+       }
+       if (struct.isSetCatName()) {
+         oprot.writeString(struct.catName);
+       }
++      if (struct.isSetTxnId()) {
++        oprot.writeI64(struct.txnId);
++      }
++      if (struct.isSetValidWriteIdList()) {
++        oprot.writeString(struct.validWriteIdList);
++      }
+     }
+ 
+     @Override
+     public void read(org.apache.thrift.protocol.TProtocol prot, AddPartitionsRequest struct) throws org.apache.thrift.TException {
+       TTupleProtocol iprot = (TTupleProtocol) prot;
+       struct.dbName = iprot.readString();
+       struct.setDbNameIsSet(true);
+       struct.tblName = iprot.readString();
+       struct.setTblNameIsSet(true);
+       {
+         org.apache.thrift.protocol.TList _list487 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+         struct.parts = new ArrayList<Partition>(_list487.size);
+         Partition _elem488;
+         for (int _i489 = 0; _i489 < _list487.size; ++_i489)
+         {
+           _elem488 = new Partition();
+           _elem488.read(iprot);
+           struct.parts.add(_elem488);
+         }
+       }
+       struct.setPartsIsSet(true);
+       struct.ifNotExists = iprot.readBool();
+       struct.setIfNotExistsIsSet(true);
 -      BitSet incoming = iprot.readBitSet(2);
++      BitSet incoming = iprot.readBitSet(4);
+       if (incoming.get(0)) {
+         struct.needResult = iprot.readBool();
+         struct.setNeedResultIsSet(true);
+       }
+       if (incoming.get(1)) {
+         struct.catName = iprot.readString();
+         struct.setCatNameIsSet(true);
+       }
++      if (incoming.get(2)) {
++        struct.txnId = iprot.readI64();
++        struct.setTxnIdIsSet(true);
++      }
++      if (incoming.get(3)) {
++        struct.validWriteIdList = iprot.readString();
++        struct.setValidWriteIdListIsSet(true);
++      }
+     }
+   }
+ 
+ }
+ 

http://git-wip-us.apache.org/repos/asf/hive/blob/93b9cdd6/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsResult.java
----------------------------------------------------------------------
diff --cc standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsResult.java
index 0000000,fe41b8c..3c0bf82
mode 000000,100644..100644
--- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsResult.java
+++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AddPartitionsResult.java
@@@ -1,0 -1,447 +1,550 @@@
+ /**
+  * Autogenerated by Thrift Compiler (0.9.3)
+  *
+  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+  *  @generated
+  */
+ package org.apache.hadoop.hive.metastore.api;
+ 
+ import org.apache.thrift.scheme.IScheme;
+ import org.apache.thrift.scheme.SchemeFactory;
+ import org.apache.thrift.scheme.StandardScheme;
+ 
+ import org.apache.thrift.scheme.TupleScheme;
+ import org.apache.thrift.protocol.TTupleProtocol;
+ import org.apache.thrift.protocol.TProtocolException;
+ import org.apache.thrift.EncodingUtils;
+ import org.apache.thrift.TException;
+ import org.apache.thrift.async.AsyncMethodCallback;
+ import org.apache.thrift.server.AbstractNonblockingServer.*;
+ import java.util.List;
+ import java.util.ArrayList;
+ import java.util.Map;
+ import java.util.HashMap;
+ import java.util.EnumMap;
+ import java.util.Set;
+ import java.util.HashSet;
+ import java.util.EnumSet;
+ import java.util.Collections;
+ import java.util.BitSet;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import javax.annotation.Generated;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+ @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public class AddPartitionsResult implements org.apache.thrift.TBase<AddPartitionsResult, AddPartitionsResult._Fields>, java.io.Serializable, Cloneable, Comparable<AddPartitionsResult> {
+   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AddPartitionsResult");
+ 
+   private static final org.apache.thrift.protocol.TField PARTITIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("partitions", org.apache.thrift.protocol.TType.LIST, (short)1);
++  private static final org.apache.thrift.protocol.TField IS_STATS_COMPLIANT_FIELD_DESC = new org.apache.thrift.protocol.TField("isStatsCompliant", org.apache.thrift.protocol.TType.BOOL, (short)2);
+ 
+   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+   static {
+     schemes.put(StandardScheme.class, new AddPartitionsResultStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new AddPartitionsResultTupleSchemeFactory());
+   }
+ 
+   private List<Partition> partitions; // optional
++  private boolean isStatsCompliant; // optional
+ 
+   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
 -    PARTITIONS((short)1, "partitions");
++    PARTITIONS((short)1, "partitions"),
++    IS_STATS_COMPLIANT((short)2, "isStatsCompliant");
+ 
+     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+ 
+     static {
+       for (_Fields field : EnumSet.allOf(_Fields.class)) {
+         byName.put(field.getFieldName(), field);
+       }
+     }
+ 
+     /**
+      * Find the _Fields constant that matches fieldId, or null if its not found.
+      */
+     public static _Fields findByThriftId(int fieldId) {
+       switch(fieldId) {
+         case 1: // PARTITIONS
+           return PARTITIONS;
++        case 2: // IS_STATS_COMPLIANT
++          return IS_STATS_COMPLIANT;
+         default:
+           return null;
+       }
+     }
+ 
+     /**
+      * Find the _Fields constant that matches fieldId, throwing an exception
+      * if it is not found.
+      */
+     public static _Fields findByThriftIdOrThrow(int fieldId) {
+       _Fields fields = findByThriftId(fieldId);
+       if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+       return fields;
+     }
+ 
+     /**
+      * Find the _Fields constant that matches name, or null if its not found.
+      */
+     public static _Fields findByName(String name) {
+       return byName.get(name);
+     }
+ 
+     private final short _thriftId;
+     private final String _fieldName;
+ 
+     _Fields(short thriftId, String fieldName) {
+       _thriftId = thriftId;
+       _fieldName = fieldName;
+     }
+ 
+     public short getThriftFieldId() {
+       return _thriftId;
+     }
+ 
+     public String getFieldName() {
+       return _fieldName;
+     }
+   }
+ 
+   // isset id assignments
 -  private static final _Fields optionals[] = {_Fields.PARTITIONS};
++  private static final int __ISSTATSCOMPLIANT_ISSET_ID = 0;
++  private byte __isset_bitfield = 0;
++  private static final _Fields optionals[] = {_Fields.PARTITIONS,_Fields.IS_STATS_COMPLIANT};
+   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.PARTITIONS, new org.apache.thrift.meta_data.FieldMetaData("partitions", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Partition.class))));
++    tmpMap.put(_Fields.IS_STATS_COMPLIANT, new org.apache.thrift.meta_data.FieldMetaData("isStatsCompliant", 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(AddPartitionsResult.class, metaDataMap);
+   }
+ 
+   public AddPartitionsResult() {
+   }
+ 
+   /**
+    * Performs a deep copy on <i>other</i>.
+    */
+   public AddPartitionsResult(AddPartitionsResult other) {
++    __isset_bitfield = other.__isset_bitfield;
+     if (other.isSetPartitions()) {
+       List<Partition> __this__partitions = new ArrayList<Partition>(other.partitions.size());
+       for (Partition other_element : other.partitions) {
+         __this__partitions.add(new Partition(other_element));
+       }
+       this.partitions = __this__partitions;
+     }
++    this.isStatsCompliant = other.isStatsCompliant;
+   }
+ 
+   public AddPartitionsResult deepCopy() {
+     return new AddPartitionsResult(this);
+   }
+ 
+   @Override
+   public void clear() {
+     this.partitions = null;
++    setIsStatsCompliantIsSet(false);
++    this.isStatsCompliant = false;
+   }
+ 
+   public int getPartitionsSize() {
+     return (this.partitions == null) ? 0 : this.partitions.size();
+   }
+ 
+   public java.util.Iterator<Partition> getPartitionsIterator() {
+     return (this.partitions == null) ? null : this.partitions.iterator();
+   }
+ 
+   public void addToPartitions(Partition elem) {
+     if (this.partitions == null) {
+       this.partitions = new ArrayList<Partition>();
+     }
+     this.partitions.add(elem);
+   }
+ 
+   public List<Partition> getPartitions() {
+     return this.partitions;
+   }
+ 
+   public void setPartitions(List<Partition> partitions) {
+     this.partitions = partitions;
+   }
+ 
+   public void unsetPartitions() {
+     this.partitions = null;
+   }
+ 
+   /** Returns true if field partitions is set (has been assigned a value) and false otherwise */
+   public boolean isSetPartitions() {
+     return this.partitions != null;
+   }
+ 
+   public void setPartitionsIsSet(boolean value) {
+     if (!value) {
+       this.partitions = null;
+     }
+   }
+ 
++  public boolean isIsStatsCompliant() {
++    return this.isStatsCompliant;
++  }
++
++  public void setIsStatsCompliant(boolean isStatsCompliant) {
++    this.isStatsCompliant = isStatsCompliant;
++    setIsStatsCompliantIsSet(true);
++  }
++
++  public void unsetIsStatsCompliant() {
++    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISSTATSCOMPLIANT_ISSET_ID);
++  }
++
++  /** Returns true if field isStatsCompliant is set (has been assigned a value) and false otherwise */
++  public boolean isSetIsStatsCompliant() {
++    return EncodingUtils.testBit(__isset_bitfield, __ISSTATSCOMPLIANT_ISSET_ID);
++  }
++
++  public void setIsStatsCompliantIsSet(boolean value) {
++    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISSTATSCOMPLIANT_ISSET_ID, value);
++  }
++
+   public void setFieldValue(_Fields field, Object value) {
+     switch (field) {
+     case PARTITIONS:
+       if (value == null) {
+         unsetPartitions();
+       } else {
+         setPartitions((List<Partition>)value);
+       }
+       break;
+ 
++    case IS_STATS_COMPLIANT:
++      if (value == null) {
++        unsetIsStatsCompliant();
++      } else {
++        setIsStatsCompliant((Boolean)value);
++      }
++      break;
++
+     }
+   }
+ 
+   public Object getFieldValue(_Fields field) {
+     switch (field) {
+     case PARTITIONS:
+       return getPartitions();
+ 
++    case IS_STATS_COMPLIANT:
++      return isIsStatsCompliant();
++
+     }
+     throw new IllegalStateException();
+   }
+ 
+   /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+   public boolean isSet(_Fields field) {
+     if (field == null) {
+       throw new IllegalArgumentException();
+     }
+ 
+     switch (field) {
+     case PARTITIONS:
+       return isSetPartitions();
++    case IS_STATS_COMPLIANT:
++      return isSetIsStatsCompliant();
+     }
+     throw new IllegalStateException();
+   }
+ 
+   @Override
+   public boolean equals(Object that) {
+     if (that == null)
+       return false;
+     if (that instanceof AddPartitionsResult)
+       return this.equals((AddPartitionsResult)that);
+     return false;
+   }
+ 
+   public boolean equals(AddPartitionsResult that) {
+     if (that == null)
+       return false;
+ 
+     boolean this_present_partitions = true && this.isSetPartitions();
+     boolean that_present_partitions = true && that.isSetPartitions();
+     if (this_present_partitions || that_present_partitions) {
+       if (!(this_present_partitions && that_present_partitions))
+         return false;
+       if (!this.partitions.equals(that.partitions))
+         return false;
+     }
+ 
++    boolean this_present_isStatsCompliant = true && this.isSetIsStatsCompliant();
++    boolean that_present_isStatsCompliant = true && that.isSetIsStatsCompliant();
++    if (this_present_isStatsCompliant || that_present_isStatsCompliant) {
++      if (!(this_present_isStatsCompliant && that_present_isStatsCompliant))
++        return false;
++      if (this.isStatsCompliant != that.isStatsCompliant)
++        return false;
++    }
++
+     return true;
+   }
+ 
+   @Override
+   public int hashCode() {
+     List<Object> list = new ArrayList<Object>();
+ 
+     boolean present_partitions = true && (isSetPartitions());
+     list.add(present_partitions);
+     if (present_partitions)
+       list.add(partitions);
+ 
++    boolean present_isStatsCompliant = true && (isSetIsStatsCompliant());
++    list.add(present_isStatsCompliant);
++    if (present_isStatsCompliant)
++      list.add(isStatsCompliant);
++
+     return list.hashCode();
+   }
+ 
+   @Override
+   public int compareTo(AddPartitionsResult other) {
+     if (!getClass().equals(other.getClass())) {
+       return getClass().getName().compareTo(other.getClass().getName());
+     }
+ 
+     int lastComparison = 0;
+ 
+     lastComparison = Boolean.valueOf(isSetPartitions()).compareTo(other.isSetPartitions());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetPartitions()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partitions, other.partitions);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
++    lastComparison = Boolean.valueOf(isSetIsStatsCompliant()).compareTo(other.isSetIsStatsCompliant());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetIsStatsCompliant()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isStatsCompliant, other.isStatsCompliant);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
+     return 0;
+   }
+ 
+   public _Fields fieldForId(int fieldId) {
+     return _Fields.findByThriftId(fieldId);
+   }
+ 
+   public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+     schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+   }
+ 
+   public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+     schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+   }
+ 
+   @Override
+   public String toString() {
+     StringBuilder sb = new StringBuilder("AddPartitionsResult(");
+     boolean first = true;
+ 
+     if (isSetPartitions()) {
+       sb.append("partitions:");
+       if (this.partitions == null) {
+         sb.append("null");
+       } else {
+         sb.append(this.partitions);
+       }
+       first = false;
+     }
++    if (isSetIsStatsCompliant()) {
++      if (!first) sb.append(", ");
++      sb.append("isStatsCompliant:");
++      sb.append(this.isStatsCompliant);
++      first = false;
++    }
+     sb.append(")");
+     return sb.toString();
+   }
+ 
+   public void validate() throws org.apache.thrift.TException {
+     // check for required fields
+     // check for sub-struct validity
+   }
+ 
+   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+     try {
+       write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+     } catch (org.apache.thrift.TException te) {
+       throw new java.io.IOException(te);
+     }
+   }
+ 
+   private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+     try {
++      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
++      __isset_bitfield = 0;
+       read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+     } catch (org.apache.thrift.TException te) {
+       throw new java.io.IOException(te);
+     }
+   }
+ 
+   private static class AddPartitionsResultStandardSchemeFactory implements SchemeFactory {
+     public AddPartitionsResultStandardScheme getScheme() {
+       return new AddPartitionsResultStandardScheme();
+     }
+   }
+ 
+   private static class AddPartitionsResultStandardScheme extends StandardScheme<AddPartitionsResult> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, AddPartitionsResult struct) throws org.apache.thrift.TException {
+       org.apache.thrift.protocol.TField schemeField;
+       iprot.readStructBegin();
+       while (true)
+       {
+         schemeField = iprot.readFieldBegin();
+         if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+           break;
+         }
+         switch (schemeField.id) {
+           case 1: // PARTITIONS
+             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+               {
+                 org.apache.thrift.protocol.TList _list474 = iprot.readListBegin();
+                 struct.partitions = new ArrayList<Partition>(_list474.size);
+                 Partition _elem475;
+                 for (int _i476 = 0; _i476 < _list474.size; ++_i476)
+                 {
+                   _elem475 = new Partition();
+                   _elem475.read(iprot);
+                   struct.partitions.add(_elem475);
+                 }
+                 iprot.readListEnd();
+               }
+               struct.setPartitionsIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
++          case 2: // IS_STATS_COMPLIANT
++            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
++              struct.isStatsCompliant = iprot.readBool();
++              struct.setIsStatsCompliantIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
+           default:
+             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+         }
+         iprot.readFieldEnd();
+       }
+       iprot.readStructEnd();
+       struct.validate();
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot, AddPartitionsResult struct) throws org.apache.thrift.TException {
+       struct.validate();
+ 
+       oprot.writeStructBegin(STRUCT_DESC);
+       if (struct.partitions != null) {
+         if (struct.isSetPartitions()) {
+           oprot.writeFieldBegin(PARTITIONS_FIELD_DESC);
+           {
+             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.partitions.size()));
+             for (Partition _iter477 : struct.partitions)
+             {
+               _iter477.write(oprot);
+             }
+             oprot.writeListEnd();
+           }
+           oprot.writeFieldEnd();
+         }
+       }
++      if (struct.isSetIsStatsCompliant()) {
++        oprot.writeFieldBegin(IS_STATS_COMPLIANT_FIELD_DESC);
++        oprot.writeBool(struct.isStatsCompliant);
++        oprot.writeFieldEnd();
++      }
+       oprot.writeFieldStop();
+       oprot.writeStructEnd();
+     }
+ 
+   }
+ 
+   private static class AddPartitionsResultTupleSchemeFactory implements SchemeFactory {
+     public AddPartitionsResultTupleScheme getScheme() {
+       return new AddPartitionsResultTupleScheme();
+     }
+   }
+ 
+   private static class AddPartitionsResultTupleScheme extends TupleScheme<AddPartitionsResult> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, AddPartitionsResult struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       BitSet optionals = new BitSet();
+       if (struct.isSetPartitions()) {
+         optionals.set(0);
+       }
 -      oprot.writeBitSet(optionals, 1);
++      if (struct.isSetIsStatsCompliant()) {
++        optionals.set(1);
++      }
++      oprot.writeBitSet(optionals, 2);
+       if (struct.isSetPartitions()) {
+         {
+           oprot.writeI32(struct.partitions.size());
+           for (Partition _iter478 : struct.partitions)
+           {
+             _iter478.write(oprot);
+           }
+         }
+       }
++      if (struct.isSetIsStatsCompliant()) {
++        oprot.writeBool(struct.isStatsCompliant);
++      }
+     }
+ 
+     @Override
+     public void read(org.apache.thrift.protocol.TProtocol prot, AddPartitionsResult struct) throws org.apache.thrift.TException {
+       TTupleProtocol iprot = (TTupleProtocol) prot;
 -      BitSet incoming = iprot.readBitSet(1);
++      BitSet incoming = iprot.readBitSet(2);
+       if (incoming.get(0)) {
+         {
+           org.apache.thrift.protocol.TList _list479 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+           struct.partitions = new ArrayList<Partition>(_list479.size);
+           Partition _elem480;
+           for (int _i481 = 0; _i481 < _list479.size; ++_i481)
+           {
+             _elem480 = new Partition();
+             _elem480.read(iprot);
+             struct.partitions.add(_elem480);
+           }
+         }
+         struct.setPartitionsIsSet(true);
+       }
++      if (incoming.get(1)) {
++        struct.isStatsCompliant = iprot.readBool();
++        struct.setIsStatsCompliantIsSet(true);
++      }
+     }
+   }
+ 
+ }
+ 

http://git-wip-us.apache.org/repos/asf/hive/blob/93b9cdd6/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AggrStats.java
----------------------------------------------------------------------
diff --cc standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AggrStats.java
index 0000000,fff212d..87b8fea
mode 000000,100644..100644
--- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AggrStats.java
+++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/AggrStats.java
@@@ -1,0 -1,542 +1,645 @@@
+ /**
+  * Autogenerated by Thrift Compiler (0.9.3)
+  *
+  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+  *  @generated
+  */
+ package org.apache.hadoop.hive.metastore.api;
+ 
+ import org.apache.thrift.scheme.IScheme;
+ import org.apache.thrift.scheme.SchemeFactory;
+ import org.apache.thrift.scheme.StandardScheme;
+ 
+ import org.apache.thrift.scheme.TupleScheme;
+ import org.apache.thrift.protocol.TTupleProtocol;
+ import org.apache.thrift.protocol.TProtocolException;
+ import org.apache.thrift.EncodingUtils;
+ import org.apache.thrift.TException;
+ import org.apache.thrift.async.AsyncMethodCallback;
+ import org.apache.thrift.server.AbstractNonblockingServer.*;
+ import java.util.List;
+ import java.util.ArrayList;
+ import java.util.Map;
+ import java.util.HashMap;
+ import java.util.EnumMap;
+ import java.util.Set;
+ import java.util.HashSet;
+ import java.util.EnumSet;
+ import java.util.Collections;
+ import java.util.BitSet;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import javax.annotation.Generated;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+ @Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+ @org.apache.hadoop.classification.InterfaceAudience.Public @org.apache.hadoop.classification.InterfaceStability.Stable public class AggrStats implements org.apache.thrift.TBase<AggrStats, AggrStats._Fields>, java.io.Serializable, Cloneable, Comparable<AggrStats> {
+   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AggrStats");
+ 
+   private static final org.apache.thrift.protocol.TField COL_STATS_FIELD_DESC = new org.apache.thrift.protocol.TField("colStats", org.apache.thrift.protocol.TType.LIST, (short)1);
+   private static final org.apache.thrift.protocol.TField PARTS_FOUND_FIELD_DESC = new org.apache.thrift.protocol.TField("partsFound", org.apache.thrift.protocol.TType.I64, (short)2);
++  private static final org.apache.thrift.protocol.TField IS_STATS_COMPLIANT_FIELD_DESC = new org.apache.thrift.protocol.TField("isStatsCompliant", org.apache.thrift.protocol.TType.BOOL, (short)3);
+ 
+   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+   static {
+     schemes.put(StandardScheme.class, new AggrStatsStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new AggrStatsTupleSchemeFactory());
+   }
+ 
+   private List<ColumnStatisticsObj> colStats; // required
+   private long partsFound; // required
++  private boolean isStatsCompliant; // optional
+ 
+   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+     COL_STATS((short)1, "colStats"),
 -    PARTS_FOUND((short)2, "partsFound");
++    PARTS_FOUND((short)2, "partsFound"),
++    IS_STATS_COMPLIANT((short)3, "isStatsCompliant");
+ 
+     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+ 
+     static {
+       for (_Fields field : EnumSet.allOf(_Fields.class)) {
+         byName.put(field.getFieldName(), field);
+       }
+     }
+ 
+     /**
+      * Find the _Fields constant that matches fieldId, or null if its not found.
+      */
+     public static _Fields findByThriftId(int fieldId) {
+       switch(fieldId) {
+         case 1: // COL_STATS
+           return COL_STATS;
+         case 2: // PARTS_FOUND
+           return PARTS_FOUND;
++        case 3: // IS_STATS_COMPLIANT
++          return IS_STATS_COMPLIANT;
+         default:
+           return null;
+       }
+     }
+ 
+     /**
+      * Find the _Fields constant that matches fieldId, throwing an exception
+      * if it is not found.
+      */
+     public static _Fields findByThriftIdOrThrow(int fieldId) {
+       _Fields fields = findByThriftId(fieldId);
+       if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+       return fields;
+     }
+ 
+     /**
+      * Find the _Fields constant that matches name, or null if its not found.
+      */
+     public static _Fields findByName(String name) {
+       return byName.get(name);
+     }
+ 
+     private final short _thriftId;
+     private final String _fieldName;
+ 
+     _Fields(short thriftId, String fieldName) {
+       _thriftId = thriftId;
+       _fieldName = fieldName;
+     }
+ 
+     public short getThriftFieldId() {
+       return _thriftId;
+     }
+ 
+     public String getFieldName() {
+       return _fieldName;
+     }
+   }
+ 
+   // isset id assignments
+   private static final int __PARTSFOUND_ISSET_ID = 0;
++  private static final int __ISSTATSCOMPLIANT_ISSET_ID = 1;
+   private byte __isset_bitfield = 0;
++  private static final _Fields optionals[] = {_Fields.IS_STATS_COMPLIANT};
+   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.COL_STATS, new org.apache.thrift.meta_data.FieldMetaData("colStats", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ColumnStatisticsObj.class))));
+     tmpMap.put(_Fields.PARTS_FOUND, new org.apache.thrift.meta_data.FieldMetaData("partsFound", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
++    tmpMap.put(_Fields.IS_STATS_COMPLIANT, new org.apache.thrift.meta_data.FieldMetaData("isStatsCompliant", 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(AggrStats.class, metaDataMap);
+   }
+ 
+   public AggrStats() {
+   }
+ 
+   public AggrStats(
+     List<ColumnStatisticsObj> colStats,
+     long partsFound)
+   {
+     this();
+     this.colStats = colStats;
+     this.partsFound = partsFound;
+     setPartsFoundIsSet(true);
+   }
+ 
+   /**
+    * Performs a deep copy on <i>other</i>.
+    */
+   public AggrStats(AggrStats other) {
+     __isset_bitfield = other.__isset_bitfield;
+     if (other.isSetColStats()) {
+       List<ColumnStatisticsObj> __this__colStats = new ArrayList<ColumnStatisticsObj>(other.colStats.size());
+       for (ColumnStatisticsObj other_element : other.colStats) {
+         __this__colStats.add(new ColumnStatisticsObj(other_element));
+       }
+       this.colStats = __this__colStats;
+     }
+     this.partsFound = other.partsFound;
++    this.isStatsCompliant = other.isStatsCompliant;
+   }
+ 
+   public AggrStats deepCopy() {
+     return new AggrStats(this);
+   }
+ 
+   @Override
+   public void clear() {
+     this.colStats = null;
+     setPartsFoundIsSet(false);
+     this.partsFound = 0;
++    setIsStatsCompliantIsSet(false);
++    this.isStatsCompliant = false;
+   }
+ 
+   public int getColStatsSize() {
+     return (this.colStats == null) ? 0 : this.colStats.size();
+   }
+ 
+   public java.util.Iterator<ColumnStatisticsObj> getColStatsIterator() {
+     return (this.colStats == null) ? null : this.colStats.iterator();
+   }
+ 
+   public void addToColStats(ColumnStatisticsObj elem) {
+     if (this.colStats == null) {
+       this.colStats = new ArrayList<ColumnStatisticsObj>();
+     }
+     this.colStats.add(elem);
+   }
+ 
+   public List<ColumnStatisticsObj> getColStats() {
+     return this.colStats;
+   }
+ 
+   public void setColStats(List<ColumnStatisticsObj> colStats) {
+     this.colStats = colStats;
+   }
+ 
+   public void unsetColStats() {
+     this.colStats = null;
+   }
+ 
+   /** Returns true if field colStats is set (has been assigned a value) and false otherwise */
+   public boolean isSetColStats() {
+     return this.colStats != null;
+   }
+ 
+   public void setColStatsIsSet(boolean value) {
+     if (!value) {
+       this.colStats = null;
+     }
+   }
+ 
+   public long getPartsFound() {
+     return this.partsFound;
+   }
+ 
+   public void setPartsFound(long partsFound) {
+     this.partsFound = partsFound;
+     setPartsFoundIsSet(true);
+   }
+ 
+   public void unsetPartsFound() {
+     __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __PARTSFOUND_ISSET_ID);
+   }
+ 
+   /** Returns true if field partsFound is set (has been assigned a value) and false otherwise */
+   public boolean isSetPartsFound() {
+     return EncodingUtils.testBit(__isset_bitfield, __PARTSFOUND_ISSET_ID);
+   }
+ 
+   public void setPartsFoundIsSet(boolean value) {
+     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __PARTSFOUND_ISSET_ID, value);
+   }
+ 
++  public boolean isIsStatsCompliant() {
++    return this.isStatsCompliant;
++  }
++
++  public void setIsStatsCompliant(boolean isStatsCompliant) {
++    this.isStatsCompliant = isStatsCompliant;
++    setIsStatsCompliantIsSet(true);
++  }
++
++  public void unsetIsStatsCompliant() {
++    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISSTATSCOMPLIANT_ISSET_ID);
++  }
++
++  /** Returns true if field isStatsCompliant is set (has been assigned a value) and false otherwise */
++  public boolean isSetIsStatsCompliant() {
++    return EncodingUtils.testBit(__isset_bitfield, __ISSTATSCOMPLIANT_ISSET_ID);
++  }
++
++  public void setIsStatsCompliantIsSet(boolean value) {
++    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISSTATSCOMPLIANT_ISSET_ID, value);
++  }
++
+   public void setFieldValue(_Fields field, Object value) {
+     switch (field) {
+     case COL_STATS:
+       if (value == null) {
+         unsetColStats();
+       } else {
+         setColStats((List<ColumnStatisticsObj>)value);
+       }
+       break;
+ 
+     case PARTS_FOUND:
+       if (value == null) {
+         unsetPartsFound();
+       } else {
+         setPartsFound((Long)value);
+       }
+       break;
+ 
++    case IS_STATS_COMPLIANT:
++      if (value == null) {
++        unsetIsStatsCompliant();
++      } else {
++        setIsStatsCompliant((Boolean)value);
++      }
++      break;
++
+     }
+   }
+ 
+   public Object getFieldValue(_Fields field) {
+     switch (field) {
+     case COL_STATS:
+       return getColStats();
+ 
+     case PARTS_FOUND:
+       return getPartsFound();
+ 
++    case IS_STATS_COMPLIANT:
++      return isIsStatsCompliant();
++
+     }
+     throw new IllegalStateException();
+   }
+ 
+   /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+   public boolean isSet(_Fields field) {
+     if (field == null) {
+       throw new IllegalArgumentException();
+     }
+ 
+     switch (field) {
+     case COL_STATS:
+       return isSetColStats();
+     case PARTS_FOUND:
+       return isSetPartsFound();
++    case IS_STATS_COMPLIANT:
++      return isSetIsStatsCompliant();
+     }
+     throw new IllegalStateException();
+   }
+ 
+   @Override
+   public boolean equals(Object that) {
+     if (that == null)
+       return false;
+     if (that instanceof AggrStats)
+       return this.equals((AggrStats)that);
+     return false;
+   }
+ 
+   public boolean equals(AggrStats that) {
+     if (that == null)
+       return false;
+ 
+     boolean this_present_colStats = true && this.isSetColStats();
+     boolean that_present_colStats = true && that.isSetColStats();
+     if (this_present_colStats || that_present_colStats) {
+       if (!(this_present_colStats && that_present_colStats))
+         return false;
+       if (!this.colStats.equals(that.colStats))
+         return false;
+     }
+ 
+     boolean this_present_partsFound = true;
+     boolean that_present_partsFound = true;
+     if (this_present_partsFound || that_present_partsFound) {
+       if (!(this_present_partsFound && that_present_partsFound))
+         return false;
+       if (this.partsFound != that.partsFound)
+         return false;
+     }
+ 
++    boolean this_present_isStatsCompliant = true && this.isSetIsStatsCompliant();
++    boolean that_present_isStatsCompliant = true && that.isSetIsStatsCompliant();
++    if (this_present_isStatsCompliant || that_present_isStatsCompliant) {
++      if (!(this_present_isStatsCompliant && that_present_isStatsCompliant))
++        return false;
++      if (this.isStatsCompliant != that.isStatsCompliant)
++        return false;
++    }
++
+     return true;
+   }
+ 
+   @Override
+   public int hashCode() {
+     List<Object> list = new ArrayList<Object>();
+ 
+     boolean present_colStats = true && (isSetColStats());
+     list.add(present_colStats);
+     if (present_colStats)
+       list.add(colStats);
+ 
+     boolean present_partsFound = true;
+     list.add(present_partsFound);
+     if (present_partsFound)
+       list.add(partsFound);
+ 
++    boolean present_isStatsCompliant = true && (isSetIsStatsCompliant());
++    list.add(present_isStatsCompliant);
++    if (present_isStatsCompliant)
++      list.add(isStatsCompliant);
++
+     return list.hashCode();
+   }
+ 
+   @Override
+   public int compareTo(AggrStats other) {
+     if (!getClass().equals(other.getClass())) {
+       return getClass().getName().compareTo(other.getClass().getName());
+     }
+ 
+     int lastComparison = 0;
+ 
+     lastComparison = Boolean.valueOf(isSetColStats()).compareTo(other.isSetColStats());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetColStats()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.colStats, other.colStats);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
+     lastComparison = Boolean.valueOf(isSetPartsFound()).compareTo(other.isSetPartsFound());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetPartsFound()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partsFound, other.partsFound);
+       if (lastComparison != 0) {
+         return lastComparison;
+       }
+     }
++    lastComparison = Boolean.valueOf(isSetIsStatsCompliant()).compareTo(other.isSetIsStatsCompliant());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetIsStatsCompliant()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isStatsCompliant, other.isStatsCompliant);
++      if (lastComparison != 0) {
++        return lastComparison;
++      }
++    }
+     return 0;
+   }
+ 
+   public _Fields fieldForId(int fieldId) {
+     return _Fields.findByThriftId(fieldId);
+   }
+ 
+   public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+     schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+   }
+ 
+   public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+     schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+   }
+ 
+   @Override
+   public String toString() {
+     StringBuilder sb = new StringBuilder("AggrStats(");
+     boolean first = true;
+ 
+     sb.append("colStats:");
+     if (this.colStats == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.colStats);
+     }
+     first = false;
+     if (!first) sb.append(", ");
+     sb.append("partsFound:");
+     sb.append(this.partsFound);
+     first = false;
++    if (isSetIsStatsCompliant()) {
++      if (!first) sb.append(", ");
++      sb.append("isStatsCompliant:");
++      sb.append(this.isStatsCompliant);
++      first = false;
++    }
+     sb.append(")");
+     return sb.toString();
+   }
+ 
+   public void validate() throws org.apache.thrift.TException {
+     // check for required fields
+     if (!isSetColStats()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'colStats' is unset! Struct:" + toString());
+     }
+ 
+     if (!isSetPartsFound()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'partsFound' is unset! Struct:" + toString());
+     }
+ 
+     // check for sub-struct validity
+   }
+ 
+   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+     try {
+       write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+     } catch (org.apache.thrift.TException te) {
+       throw new java.io.IOException(te);
+     }
+   }
+ 
+   private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+     try {
+       // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+       __isset_bitfield = 0;
+       read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+     } catch (org.apache.thrift.TException te) {
+       throw new java.io.IOException(te);
+     }
+   }
+ 
+   private static class AggrStatsStandardSchemeFactory implements SchemeFactory {
+     public AggrStatsStandardScheme getScheme() {
+       return new AggrStatsStandardScheme();
+     }
+   }
+ 
+   private static class AggrStatsStandardScheme extends StandardScheme<AggrStats> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, AggrStats struct) throws org.apache.thrift.TException {
+       org.apache.thrift.protocol.TField schemeField;
+       iprot.readStructBegin();
+       while (true)
+       {
+         schemeField = iprot.readFieldBegin();
+         if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+           break;
+         }
+         switch (schemeField.id) {
+           case 1: // COL_STATS
+             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+               {
+                 org.apache.thrift.protocol.TList _list276 = iprot.readListBegin();
+                 struct.colStats = new ArrayList<ColumnStatisticsObj>(_list276.size);
+                 ColumnStatisticsObj _elem277;
+                 for (int _i278 = 0; _i278 < _list276.size; ++_i278)
+                 {
+                   _elem277 = new ColumnStatisticsObj();
+                   _elem277.read(iprot);
+                   struct.colStats.add(_elem277);
+                 }
+                 iprot.readListEnd();
+               }
+               struct.setColStatsIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 2: // PARTS_FOUND
+             if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+               struct.partsFound = iprot.readI64();
+               struct.setPartsFoundIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
++          case 3: // IS_STATS_COMPLIANT
++            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
++              struct.isStatsCompliant = iprot.readBool();
++              struct.setIsStatsCompliantIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
+           default:
+             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+         }
+         iprot.readFieldEnd();
+       }
+       iprot.readStructEnd();
+       struct.validate();
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot, AggrStats struct) throws org.apache.thrift.TException {
+       struct.validate();
+ 
+       oprot.writeStructBegin(STRUCT_DESC);
+       if (struct.colStats != null) {
+         oprot.writeFieldBegin(COL_STATS_FIELD_DESC);
+         {
+           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.colStats.size()));
+           for (ColumnStatisticsObj _iter279 : struct.colStats)
+           {
+             _iter279.write(oprot);
+           }
+           oprot.writeListEnd();
+         }
+         oprot.writeFieldEnd();
+       }
+       oprot.writeFieldBegin(PARTS_FOUND_FIELD_DESC);
+       oprot.writeI64(struct.partsFound);
+       oprot.writeFieldEnd();
++      if (struct.isSetIsStatsCompliant()) {
++        oprot.writeFieldBegin(IS_STATS_COMPLIANT_FIELD_DESC);
++        oprot.writeBool(struct.isStatsCompliant);
++        oprot.writeFieldEnd();
++      }
+       oprot.writeFieldStop();
+       oprot.writeStructEnd();
+     }
+ 
+   }
+ 
+   private static class AggrStatsTupleSchemeFactory implements SchemeFactory {
+     public AggrStatsTupleScheme getScheme() {
+       return new AggrStatsTupleScheme();
+     }
+   }
+ 
+   private static class AggrStatsTupleScheme extends TupleScheme<AggrStats> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, AggrStats struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       {
+         oprot.writeI32(struct.colStats.size());
+         for (ColumnStatisticsObj _iter280 : struct.colStats)
+         {
+           _iter280.write(oprot);
+         }
+       }
+       oprot.writeI64(struct.partsFound);
++      BitSet optionals = new BitSet();
++      if (struct.isSetIsStatsCompliant()) {
++        optionals.set(0);
++      }
++      oprot.writeBitSet(optionals, 1);
++      if (struct.isSetIsStatsCompliant()) {
++        oprot.writeBool(struct.isStatsCompliant);
++      }
+     }
+ 
+     @Override
+     public void read(org.apache.thrift.protocol.TProtocol prot, AggrStats struct) throws org.apache.thrift.TException {
+       TTupleProtocol iprot = (TTupleProtocol) prot;
+       {
+         org.apache.thrift.protocol.TList _list281 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+         struct.colStats = new ArrayList<ColumnStatisticsObj>(_list281.size);
+         ColumnStatisticsObj _elem282;
+         for (int _i283 = 0; _i283 < _list281.size; ++_i283)
+         {
+           _elem282 = new ColumnStatisticsObj();
+           _elem282.read(iprot);
+           struct.colStats.add(_elem282);
+         }
+       }
+       struct.setColStatsIsSet(true);
+       struct.partsFound = iprot.readI64();
+       struct.setPartsFoundIsSet(true);
++      BitSet incoming = iprot.readBitSet(1);
++      if (incoming.get(0)) {
++        struct.isStatsCompliant = iprot.readBool();
++        struct.setIsStatsCompliantIsSet(true);
++      }
+     }
+   }
+ 
+ }
+