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:27 UTC

[85/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/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsResult.java
----------------------------------------------------------------------
diff --cc standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsResult.java
index 0000000,4caec8f..fe6130c
mode 000000,100644..100644
--- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsResult.java
+++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsResult.java
@@@ -1,0 -1,490 +1,597 @@@
+ /**
+  * 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 PartitionsStatsResult implements org.apache.thrift.TBase<PartitionsStatsResult, PartitionsStatsResult._Fields>, java.io.Serializable, Cloneable, Comparable<PartitionsStatsResult> {
+   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PartitionsStatsResult");
+ 
+   private static final org.apache.thrift.protocol.TField PART_STATS_FIELD_DESC = new org.apache.thrift.protocol.TField("partStats", org.apache.thrift.protocol.TType.MAP, (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 PartitionsStatsResultStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new PartitionsStatsResultTupleSchemeFactory());
+   }
+ 
+   private Map<String,List<ColumnStatisticsObj>> partStats; // 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 {
 -    PART_STATS((short)1, "partStats");
++    PART_STATS((short)1, "partStats"),
++    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: // PART_STATS
+           return PART_STATS;
++        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 int __ISSTATSCOMPLIANT_ISSET_ID = 0;
++  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.PART_STATS, new org.apache.thrift.meta_data.FieldMetaData("partStats", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+         new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+             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.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(PartitionsStatsResult.class, metaDataMap);
+   }
+ 
+   public PartitionsStatsResult() {
+   }
+ 
+   public PartitionsStatsResult(
+     Map<String,List<ColumnStatisticsObj>> partStats)
+   {
+     this();
+     this.partStats = partStats;
+   }
+ 
+   /**
+    * Performs a deep copy on <i>other</i>.
+    */
+   public PartitionsStatsResult(PartitionsStatsResult other) {
++    __isset_bitfield = other.__isset_bitfield;
+     if (other.isSetPartStats()) {
+       Map<String,List<ColumnStatisticsObj>> __this__partStats = new HashMap<String,List<ColumnStatisticsObj>>(other.partStats.size());
+       for (Map.Entry<String, List<ColumnStatisticsObj>> other_element : other.partStats.entrySet()) {
+ 
+         String other_element_key = other_element.getKey();
+         List<ColumnStatisticsObj> other_element_value = other_element.getValue();
+ 
+         String __this__partStats_copy_key = other_element_key;
+ 
+         List<ColumnStatisticsObj> __this__partStats_copy_value = new ArrayList<ColumnStatisticsObj>(other_element_value.size());
+         for (ColumnStatisticsObj other_element_value_element : other_element_value) {
+           __this__partStats_copy_value.add(new ColumnStatisticsObj(other_element_value_element));
+         }
+ 
+         __this__partStats.put(__this__partStats_copy_key, __this__partStats_copy_value);
+       }
+       this.partStats = __this__partStats;
+     }
++    this.isStatsCompliant = other.isStatsCompliant;
+   }
+ 
+   public PartitionsStatsResult deepCopy() {
+     return new PartitionsStatsResult(this);
+   }
+ 
+   @Override
+   public void clear() {
+     this.partStats = null;
++    setIsStatsCompliantIsSet(false);
++    this.isStatsCompliant = false;
+   }
+ 
+   public int getPartStatsSize() {
+     return (this.partStats == null) ? 0 : this.partStats.size();
+   }
+ 
+   public void putToPartStats(String key, List<ColumnStatisticsObj> val) {
+     if (this.partStats == null) {
+       this.partStats = new HashMap<String,List<ColumnStatisticsObj>>();
+     }
+     this.partStats.put(key, val);
+   }
+ 
+   public Map<String,List<ColumnStatisticsObj>> getPartStats() {
+     return this.partStats;
+   }
+ 
+   public void setPartStats(Map<String,List<ColumnStatisticsObj>> partStats) {
+     this.partStats = partStats;
+   }
+ 
+   public void unsetPartStats() {
+     this.partStats = null;
+   }
+ 
+   /** Returns true if field partStats is set (has been assigned a value) and false otherwise */
+   public boolean isSetPartStats() {
+     return this.partStats != null;
+   }
+ 
+   public void setPartStatsIsSet(boolean value) {
+     if (!value) {
+       this.partStats = 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 PART_STATS:
+       if (value == null) {
+         unsetPartStats();
+       } else {
+         setPartStats((Map<String,List<ColumnStatisticsObj>>)value);
+       }
+       break;
+ 
++    case IS_STATS_COMPLIANT:
++      if (value == null) {
++        unsetIsStatsCompliant();
++      } else {
++        setIsStatsCompliant((Boolean)value);
++      }
++      break;
++
+     }
+   }
+ 
+   public Object getFieldValue(_Fields field) {
+     switch (field) {
+     case PART_STATS:
+       return getPartStats();
+ 
++    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 PART_STATS:
+       return isSetPartStats();
++    case IS_STATS_COMPLIANT:
++      return isSetIsStatsCompliant();
+     }
+     throw new IllegalStateException();
+   }
+ 
+   @Override
+   public boolean equals(Object that) {
+     if (that == null)
+       return false;
+     if (that instanceof PartitionsStatsResult)
+       return this.equals((PartitionsStatsResult)that);
+     return false;
+   }
+ 
+   public boolean equals(PartitionsStatsResult that) {
+     if (that == null)
+       return false;
+ 
+     boolean this_present_partStats = true && this.isSetPartStats();
+     boolean that_present_partStats = true && that.isSetPartStats();
+     if (this_present_partStats || that_present_partStats) {
+       if (!(this_present_partStats && that_present_partStats))
+         return false;
+       if (!this.partStats.equals(that.partStats))
+         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_partStats = true && (isSetPartStats());
+     list.add(present_partStats);
+     if (present_partStats)
+       list.add(partStats);
+ 
++    boolean present_isStatsCompliant = true && (isSetIsStatsCompliant());
++    list.add(present_isStatsCompliant);
++    if (present_isStatsCompliant)
++      list.add(isStatsCompliant);
++
+     return list.hashCode();
+   }
+ 
+   @Override
+   public int compareTo(PartitionsStatsResult other) {
+     if (!getClass().equals(other.getClass())) {
+       return getClass().getName().compareTo(other.getClass().getName());
+     }
+ 
+     int lastComparison = 0;
+ 
+     lastComparison = Boolean.valueOf(isSetPartStats()).compareTo(other.isSetPartStats());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetPartStats()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.partStats, other.partStats);
+       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("PartitionsStatsResult(");
+     boolean first = true;
+ 
+     sb.append("partStats:");
+     if (this.partStats == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.partStats);
+     }
+     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 (!isSetPartStats()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'partStats' 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 PartitionsStatsResultStandardSchemeFactory implements SchemeFactory {
+     public PartitionsStatsResultStandardScheme getScheme() {
+       return new PartitionsStatsResultStandardScheme();
+     }
+   }
+ 
+   private static class PartitionsStatsResultStandardScheme extends StandardScheme<PartitionsStatsResult> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, PartitionsStatsResult 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: // PART_STATS
+             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+               {
+                 org.apache.thrift.protocol.TMap _map432 = iprot.readMapBegin();
+                 struct.partStats = new HashMap<String,List<ColumnStatisticsObj>>(2*_map432.size);
+                 String _key433;
+                 List<ColumnStatisticsObj> _val434;
+                 for (int _i435 = 0; _i435 < _map432.size; ++_i435)
+                 {
+                   _key433 = iprot.readString();
+                   {
+                     org.apache.thrift.protocol.TList _list436 = iprot.readListBegin();
+                     _val434 = new ArrayList<ColumnStatisticsObj>(_list436.size);
+                     ColumnStatisticsObj _elem437;
+                     for (int _i438 = 0; _i438 < _list436.size; ++_i438)
+                     {
+                       _elem437 = new ColumnStatisticsObj();
+                       _elem437.read(iprot);
+                       _val434.add(_elem437);
+                     }
+                     iprot.readListEnd();
+                   }
+                   struct.partStats.put(_key433, _val434);
+                 }
+                 iprot.readMapEnd();
+               }
+               struct.setPartStatsIsSet(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, PartitionsStatsResult struct) throws org.apache.thrift.TException {
+       struct.validate();
+ 
+       oprot.writeStructBegin(STRUCT_DESC);
+       if (struct.partStats != null) {
+         oprot.writeFieldBegin(PART_STATS_FIELD_DESC);
+         {
+           oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, struct.partStats.size()));
+           for (Map.Entry<String, List<ColumnStatisticsObj>> _iter439 : struct.partStats.entrySet())
+           {
+             oprot.writeString(_iter439.getKey());
+             {
+               oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter439.getValue().size()));
+               for (ColumnStatisticsObj _iter440 : _iter439.getValue())
+               {
+                 _iter440.write(oprot);
+               }
+               oprot.writeListEnd();
+             }
+           }
+           oprot.writeMapEnd();
+         }
+         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 PartitionsStatsResultTupleSchemeFactory implements SchemeFactory {
+     public PartitionsStatsResultTupleScheme getScheme() {
+       return new PartitionsStatsResultTupleScheme();
+     }
+   }
+ 
+   private static class PartitionsStatsResultTupleScheme extends TupleScheme<PartitionsStatsResult> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, PartitionsStatsResult struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       {
+         oprot.writeI32(struct.partStats.size());
+         for (Map.Entry<String, List<ColumnStatisticsObj>> _iter441 : struct.partStats.entrySet())
+         {
+           oprot.writeString(_iter441.getKey());
+           {
+             oprot.writeI32(_iter441.getValue().size());
+             for (ColumnStatisticsObj _iter442 : _iter441.getValue())
+             {
+               _iter442.write(oprot);
+             }
+           }
+         }
+       }
++      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, PartitionsStatsResult struct) throws org.apache.thrift.TException {
+       TTupleProtocol iprot = (TTupleProtocol) prot;
+       {
+         org.apache.thrift.protocol.TMap _map443 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32());
+         struct.partStats = new HashMap<String,List<ColumnStatisticsObj>>(2*_map443.size);
+         String _key444;
+         List<ColumnStatisticsObj> _val445;
+         for (int _i446 = 0; _i446 < _map443.size; ++_i446)
+         {
+           _key444 = iprot.readString();
+           {
+             org.apache.thrift.protocol.TList _list447 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+             _val445 = new ArrayList<ColumnStatisticsObj>(_list447.size);
+             ColumnStatisticsObj _elem448;
+             for (int _i449 = 0; _i449 < _list447.size; ++_i449)
+             {
+               _elem448 = new ColumnStatisticsObj();
+               _elem448.read(iprot);
+               _val445.add(_elem448);
+             }
+           }
+           struct.partStats.put(_key444, _val445);
+         }
+       }
+       struct.setPartStatsIsSet(true);
++      BitSet incoming = iprot.readBitSet(1);
++      if (incoming.get(0)) {
++        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/SetPartitionsStatsRequest.java
----------------------------------------------------------------------
diff --cc standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SetPartitionsStatsRequest.java
index 0000000,a0ae84e..2053e3e
mode 000000,100644..100644
--- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SetPartitionsStatsRequest.java
+++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SetPartitionsStatsRequest.java
@@@ -1,0 -1,550 +1,858 @@@
+ /**
+  * 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 SetPartitionsStatsRequest implements org.apache.thrift.TBase<SetPartitionsStatsRequest, SetPartitionsStatsRequest._Fields>, java.io.Serializable, Cloneable, Comparable<SetPartitionsStatsRequest> {
+   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("SetPartitionsStatsRequest");
+ 
+   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 NEED_MERGE_FIELD_DESC = new org.apache.thrift.protocol.TField("needMerge", org.apache.thrift.protocol.TType.BOOL, (short)2);
++  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)3);
++  private static final org.apache.thrift.protocol.TField WRITE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("writeId", org.apache.thrift.protocol.TType.I64, (short)4);
++  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)5);
+ 
+   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+   static {
+     schemes.put(StandardScheme.class, new SetPartitionsStatsRequestStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new SetPartitionsStatsRequestTupleSchemeFactory());
+   }
+ 
+   private List<ColumnStatistics> colStats; // required
+   private boolean needMerge; // optional
++  private long txnId; // optional
++  private long writeId; // 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 {
+     COL_STATS((short)1, "colStats"),
 -    NEED_MERGE((short)2, "needMerge");
++    NEED_MERGE((short)2, "needMerge"),
++    TXN_ID((short)3, "txnId"),
++    WRITE_ID((short)4, "writeId"),
++    VALID_WRITE_ID_LIST((short)5, "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: // COL_STATS
+           return COL_STATS;
+         case 2: // NEED_MERGE
+           return NEED_MERGE;
++        case 3: // TXN_ID
++          return TXN_ID;
++        case 4: // WRITE_ID
++          return WRITE_ID;
++        case 5: // 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 __NEEDMERGE_ISSET_ID = 0;
++  private static final int __TXNID_ISSET_ID = 1;
++  private static final int __WRITEID_ISSET_ID = 2;
+   private byte __isset_bitfield = 0;
 -  private static final _Fields optionals[] = {_Fields.NEED_MERGE};
++  private static final _Fields optionals[] = {_Fields.NEED_MERGE,_Fields.TXN_ID,_Fields.WRITE_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.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, ColumnStatistics.class))));
+     tmpMap.put(_Fields.NEED_MERGE, new org.apache.thrift.meta_data.FieldMetaData("needMerge", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
++    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.WRITE_ID, new org.apache.thrift.meta_data.FieldMetaData("writeId", 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(SetPartitionsStatsRequest.class, metaDataMap);
+   }
+ 
+   public SetPartitionsStatsRequest() {
++    this.txnId = -1L;
++
++    this.writeId = -1L;
++
+   }
+ 
+   public SetPartitionsStatsRequest(
+     List<ColumnStatistics> colStats)
+   {
+     this();
+     this.colStats = colStats;
+   }
+ 
+   /**
+    * Performs a deep copy on <i>other</i>.
+    */
+   public SetPartitionsStatsRequest(SetPartitionsStatsRequest other) {
+     __isset_bitfield = other.__isset_bitfield;
+     if (other.isSetColStats()) {
+       List<ColumnStatistics> __this__colStats = new ArrayList<ColumnStatistics>(other.colStats.size());
+       for (ColumnStatistics other_element : other.colStats) {
+         __this__colStats.add(new ColumnStatistics(other_element));
+       }
+       this.colStats = __this__colStats;
+     }
+     this.needMerge = other.needMerge;
++    this.txnId = other.txnId;
++    this.writeId = other.writeId;
++    if (other.isSetValidWriteIdList()) {
++      this.validWriteIdList = other.validWriteIdList;
++    }
+   }
+ 
+   public SetPartitionsStatsRequest deepCopy() {
+     return new SetPartitionsStatsRequest(this);
+   }
+ 
+   @Override
+   public void clear() {
+     this.colStats = null;
+     setNeedMergeIsSet(false);
+     this.needMerge = false;
++    this.txnId = -1L;
++
++    this.writeId = -1L;
++
++    this.validWriteIdList = null;
+   }
+ 
+   public int getColStatsSize() {
+     return (this.colStats == null) ? 0 : this.colStats.size();
+   }
+ 
+   public java.util.Iterator<ColumnStatistics> getColStatsIterator() {
+     return (this.colStats == null) ? null : this.colStats.iterator();
+   }
+ 
+   public void addToColStats(ColumnStatistics elem) {
+     if (this.colStats == null) {
+       this.colStats = new ArrayList<ColumnStatistics>();
+     }
+     this.colStats.add(elem);
+   }
+ 
+   public List<ColumnStatistics> getColStats() {
+     return this.colStats;
+   }
+ 
+   public void setColStats(List<ColumnStatistics> 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 boolean isNeedMerge() {
+     return this.needMerge;
+   }
+ 
+   public void setNeedMerge(boolean needMerge) {
+     this.needMerge = needMerge;
+     setNeedMergeIsSet(true);
+   }
+ 
+   public void unsetNeedMerge() {
+     __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __NEEDMERGE_ISSET_ID);
+   }
+ 
+   /** Returns true if field needMerge is set (has been assigned a value) and false otherwise */
+   public boolean isSetNeedMerge() {
+     return EncodingUtils.testBit(__isset_bitfield, __NEEDMERGE_ISSET_ID);
+   }
+ 
+   public void setNeedMergeIsSet(boolean value) {
+     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __NEEDMERGE_ISSET_ID, value);
+   }
+ 
++  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 long getWriteId() {
++    return this.writeId;
++  }
++
++  public void setWriteId(long writeId) {
++    this.writeId = writeId;
++    setWriteIdIsSet(true);
++  }
++
++  public void unsetWriteId() {
++    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __WRITEID_ISSET_ID);
++  }
++
++  /** Returns true if field writeId is set (has been assigned a value) and false otherwise */
++  public boolean isSetWriteId() {
++    return EncodingUtils.testBit(__isset_bitfield, __WRITEID_ISSET_ID);
++  }
++
++  public void setWriteIdIsSet(boolean value) {
++    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __WRITEID_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 COL_STATS:
+       if (value == null) {
+         unsetColStats();
+       } else {
+         setColStats((List<ColumnStatistics>)value);
+       }
+       break;
+ 
+     case NEED_MERGE:
+       if (value == null) {
+         unsetNeedMerge();
+       } else {
+         setNeedMerge((Boolean)value);
+       }
+       break;
+ 
++    case TXN_ID:
++      if (value == null) {
++        unsetTxnId();
++      } else {
++        setTxnId((Long)value);
++      }
++      break;
++
++    case WRITE_ID:
++      if (value == null) {
++        unsetWriteId();
++      } else {
++        setWriteId((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 COL_STATS:
+       return getColStats();
+ 
+     case NEED_MERGE:
+       return isNeedMerge();
+ 
++    case TXN_ID:
++      return getTxnId();
++
++    case WRITE_ID:
++      return getWriteId();
++
++    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 COL_STATS:
+       return isSetColStats();
+     case NEED_MERGE:
+       return isSetNeedMerge();
++    case TXN_ID:
++      return isSetTxnId();
++    case WRITE_ID:
++      return isSetWriteId();
++    case VALID_WRITE_ID_LIST:
++      return isSetValidWriteIdList();
+     }
+     throw new IllegalStateException();
+   }
+ 
+   @Override
+   public boolean equals(Object that) {
+     if (that == null)
+       return false;
+     if (that instanceof SetPartitionsStatsRequest)
+       return this.equals((SetPartitionsStatsRequest)that);
+     return false;
+   }
+ 
+   public boolean equals(SetPartitionsStatsRequest 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_needMerge = true && this.isSetNeedMerge();
+     boolean that_present_needMerge = true && that.isSetNeedMerge();
+     if (this_present_needMerge || that_present_needMerge) {
+       if (!(this_present_needMerge && that_present_needMerge))
+         return false;
+       if (this.needMerge != that.needMerge)
+         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_writeId = true && this.isSetWriteId();
++    boolean that_present_writeId = true && that.isSetWriteId();
++    if (this_present_writeId || that_present_writeId) {
++      if (!(this_present_writeId && that_present_writeId))
++        return false;
++      if (this.writeId != that.writeId)
++        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_colStats = true && (isSetColStats());
+     list.add(present_colStats);
+     if (present_colStats)
+       list.add(colStats);
+ 
+     boolean present_needMerge = true && (isSetNeedMerge());
+     list.add(present_needMerge);
+     if (present_needMerge)
+       list.add(needMerge);
+ 
++    boolean present_txnId = true && (isSetTxnId());
++    list.add(present_txnId);
++    if (present_txnId)
++      list.add(txnId);
++
++    boolean present_writeId = true && (isSetWriteId());
++    list.add(present_writeId);
++    if (present_writeId)
++      list.add(writeId);
++
++    boolean present_validWriteIdList = true && (isSetValidWriteIdList());
++    list.add(present_validWriteIdList);
++    if (present_validWriteIdList)
++      list.add(validWriteIdList);
++
+     return list.hashCode();
+   }
+ 
+   @Override
+   public int compareTo(SetPartitionsStatsRequest 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(isSetNeedMerge()).compareTo(other.isSetNeedMerge());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetNeedMerge()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.needMerge, other.needMerge);
+       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(isSetWriteId()).compareTo(other.isSetWriteId());
++    if (lastComparison != 0) {
++      return lastComparison;
++    }
++    if (isSetWriteId()) {
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.writeId, other.writeId);
++      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("SetPartitionsStatsRequest(");
+     boolean first = true;
+ 
+     sb.append("colStats:");
+     if (this.colStats == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.colStats);
+     }
+     first = false;
+     if (isSetNeedMerge()) {
+       if (!first) sb.append(", ");
+       sb.append("needMerge:");
+       sb.append(this.needMerge);
+       first = false;
+     }
++    if (isSetTxnId()) {
++      if (!first) sb.append(", ");
++      sb.append("txnId:");
++      sb.append(this.txnId);
++      first = false;
++    }
++    if (isSetWriteId()) {
++      if (!first) sb.append(", ");
++      sb.append("writeId:");
++      sb.append(this.writeId);
++      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 (!isSetColStats()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 'colStats' 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 SetPartitionsStatsRequestStandardSchemeFactory implements SchemeFactory {
+     public SetPartitionsStatsRequestStandardScheme getScheme() {
+       return new SetPartitionsStatsRequestStandardScheme();
+     }
+   }
+ 
+   private static class SetPartitionsStatsRequestStandardScheme extends StandardScheme<SetPartitionsStatsRequest> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, SetPartitionsStatsRequest 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 _list284 = iprot.readListBegin();
+                 struct.colStats = new ArrayList<ColumnStatistics>(_list284.size);
+                 ColumnStatistics _elem285;
+                 for (int _i286 = 0; _i286 < _list284.size; ++_i286)
+                 {
+                   _elem285 = new ColumnStatistics();
+                   _elem285.read(iprot);
+                   struct.colStats.add(_elem285);
+                 }
+                 iprot.readListEnd();
+               }
+               struct.setColStatsIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 2: // NEED_MERGE
+             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+               struct.needMerge = iprot.readBool();
+               struct.setNeedMergeIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
++          case 3: // 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 4: // WRITE_ID
++            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
++              struct.writeId = iprot.readI64();
++              struct.setWriteIdIsSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 5: // 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, SetPartitionsStatsRequest 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 (ColumnStatistics _iter287 : struct.colStats)
+           {
+             _iter287.write(oprot);
+           }
+           oprot.writeListEnd();
+         }
+         oprot.writeFieldEnd();
+       }
+       if (struct.isSetNeedMerge()) {
+         oprot.writeFieldBegin(NEED_MERGE_FIELD_DESC);
+         oprot.writeBool(struct.needMerge);
+         oprot.writeFieldEnd();
+       }
++      if (struct.isSetTxnId()) {
++        oprot.writeFieldBegin(TXN_ID_FIELD_DESC);
++        oprot.writeI64(struct.txnId);
++        oprot.writeFieldEnd();
++      }
++      if (struct.isSetWriteId()) {
++        oprot.writeFieldBegin(WRITE_ID_FIELD_DESC);
++        oprot.writeI64(struct.writeId);
++        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 SetPartitionsStatsRequestTupleSchemeFactory implements SchemeFactory {
+     public SetPartitionsStatsRequestTupleScheme getScheme() {
+       return new SetPartitionsStatsRequestTupleScheme();
+     }
+   }
+ 
+   private static class SetPartitionsStatsRequestTupleScheme extends TupleScheme<SetPartitionsStatsRequest> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, SetPartitionsStatsRequest struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       {
+         oprot.writeI32(struct.colStats.size());
+         for (ColumnStatistics _iter288 : struct.colStats)
+         {
+           _iter288.write(oprot);
+         }
+       }
+       BitSet optionals = new BitSet();
+       if (struct.isSetNeedMerge()) {
+         optionals.set(0);
+       }
 -      oprot.writeBitSet(optionals, 1);
++      if (struct.isSetTxnId()) {
++        optionals.set(1);
++      }
++      if (struct.isSetWriteId()) {
++        optionals.set(2);
++      }
++      if (struct.isSetValidWriteIdList()) {
++        optionals.set(3);
++      }
++      oprot.writeBitSet(optionals, 4);
+       if (struct.isSetNeedMerge()) {
+         oprot.writeBool(struct.needMerge);
+       }
++      if (struct.isSetTxnId()) {
++        oprot.writeI64(struct.txnId);
++      }
++      if (struct.isSetWriteId()) {
++        oprot.writeI64(struct.writeId);
++      }
++      if (struct.isSetValidWriteIdList()) {
++        oprot.writeString(struct.validWriteIdList);
++      }
+     }
+ 
+     @Override
+     public void read(org.apache.thrift.protocol.TProtocol prot, SetPartitionsStatsRequest struct) throws org.apache.thrift.TException {
+       TTupleProtocol iprot = (TTupleProtocol) prot;
+       {
+         org.apache.thrift.protocol.TList _list289 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+         struct.colStats = new ArrayList<ColumnStatistics>(_list289.size);
+         ColumnStatistics _elem290;
+         for (int _i291 = 0; _i291 < _list289.size; ++_i291)
+         {
+           _elem290 = new ColumnStatistics();
+           _elem290.read(iprot);
+           struct.colStats.add(_elem290);
+         }
+       }
+       struct.setColStatsIsSet(true);
 -      BitSet incoming = iprot.readBitSet(1);
++      BitSet incoming = iprot.readBitSet(4);
+       if (incoming.get(0)) {
+         struct.needMerge = iprot.readBool();
+         struct.setNeedMergeIsSet(true);
+       }
++      if (incoming.get(1)) {
++        struct.txnId = iprot.readI64();
++        struct.setTxnIdIsSet(true);
++      }
++      if (incoming.get(2)) {
++        struct.writeId = iprot.readI64();
++        struct.setWriteIdIsSet(true);
++      }
++      if (incoming.get(3)) {
++        struct.validWriteIdList = iprot.readString();
++        struct.setValidWriteIdListIsSet(true);
++      }
+     }
+   }
+ 
+ }
+