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/TableStatsRequest.java
----------------------------------------------------------------------
diff --cc 
standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsRequest.java
index 0000000,a663a64..c9b70a4
mode 000000,100644..100644
--- 
a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsRequest.java
+++ 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsRequest.java
@@@ -1,0 -1,750 +1,961 @@@
+ /**
+  * 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 
TableStatsRequest implements org.apache.thrift.TBase<TableStatsRequest, 
TableStatsRequest._Fields>, java.io.Serializable, Cloneable, 
Comparable<TableStatsRequest> {
+   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TableStatsRequest");
+ 
+   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 COL_NAMES_FIELD_DESC 
= new org.apache.thrift.protocol.TField("colNames", 
org.apache.thrift.protocol.TType.LIST, (short)3);
+   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)4);
++  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)5);
++  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)6);
+ 
+   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+   static {
+     schemes.put(StandardScheme.class, new 
TableStatsRequestStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new TableStatsRequestTupleSchemeFactory());
+   }
+ 
+   private String dbName; // required
+   private String tblName; // required
+   private List<String> colNames; // required
+   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"),
+     COL_NAMES((short)3, "colNames"),
 -    CAT_NAME((short)4, "catName");
++    CAT_NAME((short)4, "catName"),
++    TXN_ID((short)5, "txnId"),
++    VALID_WRITE_ID_LIST((short)6, "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: // COL_NAMES
+           return COL_NAMES;
+         case 4: // CAT_NAME
+           return CAT_NAME;
++        case 5: // TXN_ID
++          return TXN_ID;
++        case 6: // 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 _Fields optionals[] = {_Fields.CAT_NAME};
++  private static final int __TXNID_ISSET_ID = 0;
++  private byte __isset_bitfield = 0;
++  private static final _Fields optionals[] = 
{_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.COL_NAMES, new 
org.apache.thrift.meta_data.FieldMetaData("colNames", 
org.apache.thrift.TFieldRequirementType.REQUIRED, 
+         new 
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+             new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+     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(TableStatsRequest.class,
 metaDataMap);
+   }
+ 
+   public TableStatsRequest() {
++    this.txnId = -1L;
++
+   }
+ 
+   public TableStatsRequest(
+     String dbName,
+     String tblName,
+     List<String> colNames)
+   {
+     this();
+     this.dbName = dbName;
+     this.tblName = tblName;
+     this.colNames = colNames;
+   }
+ 
+   /**
+    * Performs a deep copy on <i>other</i>.
+    */
+   public TableStatsRequest(TableStatsRequest other) {
++    __isset_bitfield = other.__isset_bitfield;
+     if (other.isSetDbName()) {
+       this.dbName = other.dbName;
+     }
+     if (other.isSetTblName()) {
+       this.tblName = other.tblName;
+     }
+     if (other.isSetColNames()) {
+       List<String> __this__colNames = new ArrayList<String>(other.colNames);
+       this.colNames = __this__colNames;
+     }
+     if (other.isSetCatName()) {
+       this.catName = other.catName;
+     }
++    this.txnId = other.txnId;
++    if (other.isSetValidWriteIdList()) {
++      this.validWriteIdList = other.validWriteIdList;
++    }
+   }
+ 
+   public TableStatsRequest deepCopy() {
+     return new TableStatsRequest(this);
+   }
+ 
+   @Override
+   public void clear() {
+     this.dbName = null;
+     this.tblName = null;
+     this.colNames = null;
+     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 getColNamesSize() {
+     return (this.colNames == null) ? 0 : this.colNames.size();
+   }
+ 
+   public java.util.Iterator<String> getColNamesIterator() {
+     return (this.colNames == null) ? null : this.colNames.iterator();
+   }
+ 
+   public void addToColNames(String elem) {
+     if (this.colNames == null) {
+       this.colNames = new ArrayList<String>();
+     }
+     this.colNames.add(elem);
+   }
+ 
+   public List<String> getColNames() {
+     return this.colNames;
+   }
+ 
+   public void setColNames(List<String> colNames) {
+     this.colNames = colNames;
+   }
+ 
+   public void unsetColNames() {
+     this.colNames = null;
+   }
+ 
+   /** Returns true if field colNames is set (has been assigned a value) and 
false otherwise */
+   public boolean isSetColNames() {
+     return this.colNames != null;
+   }
+ 
+   public void setColNamesIsSet(boolean value) {
+     if (!value) {
+       this.colNames = null;
+     }
+   }
+ 
+   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 COL_NAMES:
+       if (value == null) {
+         unsetColNames();
+       } else {
+         setColNames((List<String>)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 COL_NAMES:
+       return getColNames();
+ 
+     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 COL_NAMES:
+       return isSetColNames();
+     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 TableStatsRequest)
+       return this.equals((TableStatsRequest)that);
+     return false;
+   }
+ 
+   public boolean equals(TableStatsRequest 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_colNames = true && this.isSetColNames();
+     boolean that_present_colNames = true && that.isSetColNames();
+     if (this_present_colNames || that_present_colNames) {
+       if (!(this_present_colNames && that_present_colNames))
+         return false;
+       if (!this.colNames.equals(that.colNames))
+         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_colNames = true && (isSetColNames());
+     list.add(present_colNames);
+     if (present_colNames)
+       list.add(colNames);
+ 
+     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(TableStatsRequest 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(isSetColNames()).compareTo(other.isSetColNames());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetColNames()) {
+       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.colNames, 
other.colNames);
+       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("TableStatsRequest(");
+     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("colNames:");
+     if (this.colNames == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.colNames);
+     }
+     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 (!isSetColNames()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 
'colNames' 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 TableStatsRequestStandardSchemeFactory implements 
SchemeFactory {
+     public TableStatsRequestStandardScheme getScheme() {
+       return new TableStatsRequestStandardScheme();
+     }
+   }
+ 
+   private static class TableStatsRequestStandardScheme extends 
StandardScheme<TableStatsRequest> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, 
TableStatsRequest 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: // COL_NAMES
+             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+               {
+                 org.apache.thrift.protocol.TList _list450 = 
iprot.readListBegin();
+                 struct.colNames = new ArrayList<String>(_list450.size);
+                 String _elem451;
+                 for (int _i452 = 0; _i452 < _list450.size; ++_i452)
+                 {
+                   _elem451 = iprot.readString();
+                   struct.colNames.add(_elem451);
+                 }
+                 iprot.readListEnd();
+               }
+               struct.setColNamesIsSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+             }
+             break;
+           case 4: // 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 5: // 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 6: // 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, 
TableStatsRequest 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.colNames != null) {
+         oprot.writeFieldBegin(COL_NAMES_FIELD_DESC);
+         {
+           oprot.writeListBegin(new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, 
struct.colNames.size()));
+           for (String _iter453 : struct.colNames)
+           {
+             oprot.writeString(_iter453);
+           }
+           oprot.writeListEnd();
+         }
+         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 TableStatsRequestTupleSchemeFactory implements 
SchemeFactory {
+     public TableStatsRequestTupleScheme getScheme() {
+       return new TableStatsRequestTupleScheme();
+     }
+   }
+ 
+   private static class TableStatsRequestTupleScheme extends 
TupleScheme<TableStatsRequest> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, 
TableStatsRequest struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       oprot.writeString(struct.dbName);
+       oprot.writeString(struct.tblName);
+       {
+         oprot.writeI32(struct.colNames.size());
+         for (String _iter454 : struct.colNames)
+         {
+           oprot.writeString(_iter454);
+         }
+       }
+       BitSet optionals = new BitSet();
+       if (struct.isSetCatName()) {
+         optionals.set(0);
+       }
 -      oprot.writeBitSet(optionals, 1);
++      if (struct.isSetTxnId()) {
++        optionals.set(1);
++      }
++      if (struct.isSetValidWriteIdList()) {
++        optionals.set(2);
++      }
++      oprot.writeBitSet(optionals, 3);
+       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, 
TableStatsRequest 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 _list455 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, 
iprot.readI32());
+         struct.colNames = new ArrayList<String>(_list455.size);
+         String _elem456;
+         for (int _i457 = 0; _i457 < _list455.size; ++_i457)
+         {
+           _elem456 = iprot.readString();
+           struct.colNames.add(_elem456);
+         }
+       }
+       struct.setColNamesIsSet(true);
 -      BitSet incoming = iprot.readBitSet(1);
++      BitSet incoming = iprot.readBitSet(3);
+       if (incoming.get(0)) {
+         struct.catName = iprot.readString();
+         struct.setCatNameIsSet(true);
+       }
++      if (incoming.get(1)) {
++        struct.txnId = iprot.readI64();
++        struct.setTxnIdIsSet(true);
++      }
++      if (incoming.get(2)) {
++        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/TableStatsResult.java
----------------------------------------------------------------------
diff --cc 
standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsResult.java
index 0000000,dff7d5c..0685a22
mode 000000,100644..100644
--- 
a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsResult.java
+++ 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsResult.java
@@@ -1,0 -1,443 +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 
TableStatsResult implements org.apache.thrift.TBase<TableStatsResult, 
TableStatsResult._Fields>, java.io.Serializable, Cloneable, 
Comparable<TableStatsResult> {
+   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TableStatsResult");
+ 
+   private static final org.apache.thrift.protocol.TField 
TABLE_STATS_FIELD_DESC = new org.apache.thrift.protocol.TField("tableStats", 
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 
TableStatsResultStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new TableStatsResultTupleSchemeFactory());
+   }
+ 
+   private List<ColumnStatisticsObj> tableStats; // 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 {
 -    TABLE_STATS((short)1, "tableStats");
++    TABLE_STATS((short)1, "tableStats"),
++    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: // TABLE_STATS
+           return TABLE_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.TABLE_STATS, new 
org.apache.thrift.meta_data.FieldMetaData("tableStats", 
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.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(TableStatsResult.class,
 metaDataMap);
+   }
+ 
+   public TableStatsResult() {
+   }
+ 
+   public TableStatsResult(
+     List<ColumnStatisticsObj> tableStats)
+   {
+     this();
+     this.tableStats = tableStats;
+   }
+ 
+   /**
+    * Performs a deep copy on <i>other</i>.
+    */
+   public TableStatsResult(TableStatsResult other) {
++    __isset_bitfield = other.__isset_bitfield;
+     if (other.isSetTableStats()) {
+       List<ColumnStatisticsObj> __this__tableStats = new 
ArrayList<ColumnStatisticsObj>(other.tableStats.size());
+       for (ColumnStatisticsObj other_element : other.tableStats) {
+         __this__tableStats.add(new ColumnStatisticsObj(other_element));
+       }
+       this.tableStats = __this__tableStats;
+     }
++    this.isStatsCompliant = other.isStatsCompliant;
+   }
+ 
+   public TableStatsResult deepCopy() {
+     return new TableStatsResult(this);
+   }
+ 
+   @Override
+   public void clear() {
+     this.tableStats = null;
++    setIsStatsCompliantIsSet(false);
++    this.isStatsCompliant = false;
+   }
+ 
+   public int getTableStatsSize() {
+     return (this.tableStats == null) ? 0 : this.tableStats.size();
+   }
+ 
+   public java.util.Iterator<ColumnStatisticsObj> getTableStatsIterator() {
+     return (this.tableStats == null) ? null : this.tableStats.iterator();
+   }
+ 
+   public void addToTableStats(ColumnStatisticsObj elem) {
+     if (this.tableStats == null) {
+       this.tableStats = new ArrayList<ColumnStatisticsObj>();
+     }
+     this.tableStats.add(elem);
+   }
+ 
+   public List<ColumnStatisticsObj> getTableStats() {
+     return this.tableStats;
+   }
+ 
+   public void setTableStats(List<ColumnStatisticsObj> tableStats) {
+     this.tableStats = tableStats;
+   }
+ 
+   public void unsetTableStats() {
+     this.tableStats = null;
+   }
+ 
+   /** Returns true if field tableStats is set (has been assigned a value) and 
false otherwise */
+   public boolean isSetTableStats() {
+     return this.tableStats != null;
+   }
+ 
+   public void setTableStatsIsSet(boolean value) {
+     if (!value) {
+       this.tableStats = 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 TABLE_STATS:
+       if (value == null) {
+         unsetTableStats();
+       } else {
+         setTableStats((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 TABLE_STATS:
+       return getTableStats();
+ 
++    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 TABLE_STATS:
+       return isSetTableStats();
++    case IS_STATS_COMPLIANT:
++      return isSetIsStatsCompliant();
+     }
+     throw new IllegalStateException();
+   }
+ 
+   @Override
+   public boolean equals(Object that) {
+     if (that == null)
+       return false;
+     if (that instanceof TableStatsResult)
+       return this.equals((TableStatsResult)that);
+     return false;
+   }
+ 
+   public boolean equals(TableStatsResult that) {
+     if (that == null)
+       return false;
+ 
+     boolean this_present_tableStats = true && this.isSetTableStats();
+     boolean that_present_tableStats = true && that.isSetTableStats();
+     if (this_present_tableStats || that_present_tableStats) {
+       if (!(this_present_tableStats && that_present_tableStats))
+         return false;
+       if (!this.tableStats.equals(that.tableStats))
+         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_tableStats = true && (isSetTableStats());
+     list.add(present_tableStats);
+     if (present_tableStats)
+       list.add(tableStats);
+ 
++    boolean present_isStatsCompliant = true && (isSetIsStatsCompliant());
++    list.add(present_isStatsCompliant);
++    if (present_isStatsCompliant)
++      list.add(isStatsCompliant);
++
+     return list.hashCode();
+   }
+ 
+   @Override
+   public int compareTo(TableStatsResult other) {
+     if (!getClass().equals(other.getClass())) {
+       return getClass().getName().compareTo(other.getClass().getName());
+     }
+ 
+     int lastComparison = 0;
+ 
+     lastComparison = 
Boolean.valueOf(isSetTableStats()).compareTo(other.isSetTableStats());
+     if (lastComparison != 0) {
+       return lastComparison;
+     }
+     if (isSetTableStats()) {
+       lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.tableStats, other.tableStats);
+       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("TableStatsResult(");
+     boolean first = true;
+ 
+     sb.append("tableStats:");
+     if (this.tableStats == null) {
+       sb.append("null");
+     } else {
+       sb.append(this.tableStats);
+     }
+     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 (!isSetTableStats()) {
+       throw new org.apache.thrift.protocol.TProtocolException("Required field 
'tableStats' 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 TableStatsResultStandardSchemeFactory implements 
SchemeFactory {
+     public TableStatsResultStandardScheme getScheme() {
+       return new TableStatsResultStandardScheme();
+     }
+   }
+ 
+   private static class TableStatsResultStandardScheme extends 
StandardScheme<TableStatsResult> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, 
TableStatsResult 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: // TABLE_STATS
+             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+               {
+                 org.apache.thrift.protocol.TList _list424 = 
iprot.readListBegin();
+                 struct.tableStats = new 
ArrayList<ColumnStatisticsObj>(_list424.size);
+                 ColumnStatisticsObj _elem425;
+                 for (int _i426 = 0; _i426 < _list424.size; ++_i426)
+                 {
+                   _elem425 = new ColumnStatisticsObj();
+                   _elem425.read(iprot);
+                   struct.tableStats.add(_elem425);
+                 }
+                 iprot.readListEnd();
+               }
+               struct.setTableStatsIsSet(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, 
TableStatsResult struct) throws org.apache.thrift.TException {
+       struct.validate();
+ 
+       oprot.writeStructBegin(STRUCT_DESC);
+       if (struct.tableStats != null) {
+         oprot.writeFieldBegin(TABLE_STATS_FIELD_DESC);
+         {
+           oprot.writeListBegin(new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
struct.tableStats.size()));
+           for (ColumnStatisticsObj _iter427 : struct.tableStats)
+           {
+             _iter427.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 TableStatsResultTupleSchemeFactory implements 
SchemeFactory {
+     public TableStatsResultTupleScheme getScheme() {
+       return new TableStatsResultTupleScheme();
+     }
+   }
+ 
+   private static class TableStatsResultTupleScheme extends 
TupleScheme<TableStatsResult> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, 
TableStatsResult struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       {
+         oprot.writeI32(struct.tableStats.size());
+         for (ColumnStatisticsObj _iter428 : struct.tableStats)
+         {
+           _iter428.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, 
TableStatsResult struct) throws org.apache.thrift.TException {
+       TTupleProtocol iprot = (TTupleProtocol) prot;
+       {
+         org.apache.thrift.protocol.TList _list429 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
iprot.readI32());
+         struct.tableStats = new ArrayList<ColumnStatisticsObj>(_list429.size);
+         ColumnStatisticsObj _elem430;
+         for (int _i431 = 0; _i431 < _list429.size; ++_i431)
+         {
+           _elem430 = new ColumnStatisticsObj();
+           _elem430.read(iprot);
+           struct.tableStats.add(_elem430);
+         }
+       }
+       struct.setTableStatsIsSet(true);
++      BitSet incoming = iprot.readBitSet(1);
++      if (incoming.get(0)) {
++        struct.isStatsCompliant = iprot.readBool();
++        struct.setIsStatsCompliantIsSet(true);
++      }
+     }
+   }
+ 
+ }
+ 

Reply via email to