http://git-wip-us.apache.org/repos/asf/hive/blob/20eb7b51/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectRef.java
----------------------------------------------------------------------
diff --git 
a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectRef.java
 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectRef.java
new file mode 100644
index 0000000..c37ce58
--- /dev/null
+++ 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectRef.java
@@ -0,0 +1,979 @@
+/**
+ * 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 
HiveObjectRef implements org.apache.thrift.TBase<HiveObjectRef, 
HiveObjectRef._Fields>, java.io.Serializable, Cloneable, 
Comparable<HiveObjectRef> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("HiveObjectRef");
+
+  private static final org.apache.thrift.protocol.TField 
OBJECT_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("objectType", 
org.apache.thrift.protocol.TType.I32, (short)1);
+  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)2);
+  private static final org.apache.thrift.protocol.TField 
OBJECT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("objectName", 
org.apache.thrift.protocol.TType.STRING, (short)3);
+  private static final org.apache.thrift.protocol.TField 
PART_VALUES_FIELD_DESC = new org.apache.thrift.protocol.TField("partValues", 
org.apache.thrift.protocol.TType.LIST, (short)4);
+  private static final org.apache.thrift.protocol.TField 
COLUMN_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("columnName", 
org.apache.thrift.protocol.TType.STRING, (short)5);
+  private static final org.apache.thrift.protocol.TField CAT_NAME_FIELD_DESC = 
new org.apache.thrift.protocol.TField("catName", 
org.apache.thrift.protocol.TType.STRING, (short)6);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new 
HiveObjectRefStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new HiveObjectRefTupleSchemeFactory());
+  }
+
+  private HiveObjectType objectType; // required
+  private String dbName; // required
+  private String objectName; // required
+  private List<String> partValues; // required
+  private String columnName; // required
+  private String catName; // 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 {
+    /**
+     * 
+     * @see HiveObjectType
+     */
+    OBJECT_TYPE((short)1, "objectType"),
+    DB_NAME((short)2, "dbName"),
+    OBJECT_NAME((short)3, "objectName"),
+    PART_VALUES((short)4, "partValues"),
+    COLUMN_NAME((short)5, "columnName"),
+    CAT_NAME((short)6, "catName");
+
+    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: // OBJECT_TYPE
+          return OBJECT_TYPE;
+        case 2: // DB_NAME
+          return DB_NAME;
+        case 3: // OBJECT_NAME
+          return OBJECT_NAME;
+        case 4: // PART_VALUES
+          return PART_VALUES;
+        case 5: // COLUMN_NAME
+          return COLUMN_NAME;
+        case 6: // CAT_NAME
+          return CAT_NAME;
+        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};
+  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.OBJECT_TYPE, new 
org.apache.thrift.meta_data.FieldMetaData("objectType", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
HiveObjectType.class)));
+    tmpMap.put(_Fields.DB_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("dbName", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.OBJECT_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("objectName", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.PART_VALUES, new 
org.apache.thrift.meta_data.FieldMetaData("partValues", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        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.COLUMN_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("columnName", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        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)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(HiveObjectRef.class,
 metaDataMap);
+  }
+
+  public HiveObjectRef() {
+  }
+
+  public HiveObjectRef(
+    HiveObjectType objectType,
+    String dbName,
+    String objectName,
+    List<String> partValues,
+    String columnName)
+  {
+    this();
+    this.objectType = objectType;
+    this.dbName = dbName;
+    this.objectName = objectName;
+    this.partValues = partValues;
+    this.columnName = columnName;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public HiveObjectRef(HiveObjectRef other) {
+    if (other.isSetObjectType()) {
+      this.objectType = other.objectType;
+    }
+    if (other.isSetDbName()) {
+      this.dbName = other.dbName;
+    }
+    if (other.isSetObjectName()) {
+      this.objectName = other.objectName;
+    }
+    if (other.isSetPartValues()) {
+      List<String> __this__partValues = new 
ArrayList<String>(other.partValues);
+      this.partValues = __this__partValues;
+    }
+    if (other.isSetColumnName()) {
+      this.columnName = other.columnName;
+    }
+    if (other.isSetCatName()) {
+      this.catName = other.catName;
+    }
+  }
+
+  public HiveObjectRef deepCopy() {
+    return new HiveObjectRef(this);
+  }
+
+  @Override
+  public void clear() {
+    this.objectType = null;
+    this.dbName = null;
+    this.objectName = null;
+    this.partValues = null;
+    this.columnName = null;
+    this.catName = null;
+  }
+
+  /**
+   * 
+   * @see HiveObjectType
+   */
+  public HiveObjectType getObjectType() {
+    return this.objectType;
+  }
+
+  /**
+   * 
+   * @see HiveObjectType
+   */
+  public void setObjectType(HiveObjectType objectType) {
+    this.objectType = objectType;
+  }
+
+  public void unsetObjectType() {
+    this.objectType = null;
+  }
+
+  /** Returns true if field objectType is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetObjectType() {
+    return this.objectType != null;
+  }
+
+  public void setObjectTypeIsSet(boolean value) {
+    if (!value) {
+      this.objectType = 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 getObjectName() {
+    return this.objectName;
+  }
+
+  public void setObjectName(String objectName) {
+    this.objectName = objectName;
+  }
+
+  public void unsetObjectName() {
+    this.objectName = null;
+  }
+
+  /** Returns true if field objectName is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetObjectName() {
+    return this.objectName != null;
+  }
+
+  public void setObjectNameIsSet(boolean value) {
+    if (!value) {
+      this.objectName = null;
+    }
+  }
+
+  public int getPartValuesSize() {
+    return (this.partValues == null) ? 0 : this.partValues.size();
+  }
+
+  public java.util.Iterator<String> getPartValuesIterator() {
+    return (this.partValues == null) ? null : this.partValues.iterator();
+  }
+
+  public void addToPartValues(String elem) {
+    if (this.partValues == null) {
+      this.partValues = new ArrayList<String>();
+    }
+    this.partValues.add(elem);
+  }
+
+  public List<String> getPartValues() {
+    return this.partValues;
+  }
+
+  public void setPartValues(List<String> partValues) {
+    this.partValues = partValues;
+  }
+
+  public void unsetPartValues() {
+    this.partValues = null;
+  }
+
+  /** Returns true if field partValues is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetPartValues() {
+    return this.partValues != null;
+  }
+
+  public void setPartValuesIsSet(boolean value) {
+    if (!value) {
+      this.partValues = null;
+    }
+  }
+
+  public String getColumnName() {
+    return this.columnName;
+  }
+
+  public void setColumnName(String columnName) {
+    this.columnName = columnName;
+  }
+
+  public void unsetColumnName() {
+    this.columnName = null;
+  }
+
+  /** Returns true if field columnName is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetColumnName() {
+    return this.columnName != null;
+  }
+
+  public void setColumnNameIsSet(boolean value) {
+    if (!value) {
+      this.columnName = 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 void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case OBJECT_TYPE:
+      if (value == null) {
+        unsetObjectType();
+      } else {
+        setObjectType((HiveObjectType)value);
+      }
+      break;
+
+    case DB_NAME:
+      if (value == null) {
+        unsetDbName();
+      } else {
+        setDbName((String)value);
+      }
+      break;
+
+    case OBJECT_NAME:
+      if (value == null) {
+        unsetObjectName();
+      } else {
+        setObjectName((String)value);
+      }
+      break;
+
+    case PART_VALUES:
+      if (value == null) {
+        unsetPartValues();
+      } else {
+        setPartValues((List<String>)value);
+      }
+      break;
+
+    case COLUMN_NAME:
+      if (value == null) {
+        unsetColumnName();
+      } else {
+        setColumnName((String)value);
+      }
+      break;
+
+    case CAT_NAME:
+      if (value == null) {
+        unsetCatName();
+      } else {
+        setCatName((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case OBJECT_TYPE:
+      return getObjectType();
+
+    case DB_NAME:
+      return getDbName();
+
+    case OBJECT_NAME:
+      return getObjectName();
+
+    case PART_VALUES:
+      return getPartValues();
+
+    case COLUMN_NAME:
+      return getColumnName();
+
+    case CAT_NAME:
+      return getCatName();
+
+    }
+    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 OBJECT_TYPE:
+      return isSetObjectType();
+    case DB_NAME:
+      return isSetDbName();
+    case OBJECT_NAME:
+      return isSetObjectName();
+    case PART_VALUES:
+      return isSetPartValues();
+    case COLUMN_NAME:
+      return isSetColumnName();
+    case CAT_NAME:
+      return isSetCatName();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof HiveObjectRef)
+      return this.equals((HiveObjectRef)that);
+    return false;
+  }
+
+  public boolean equals(HiveObjectRef that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_objectType = true && this.isSetObjectType();
+    boolean that_present_objectType = true && that.isSetObjectType();
+    if (this_present_objectType || that_present_objectType) {
+      if (!(this_present_objectType && that_present_objectType))
+        return false;
+      if (!this.objectType.equals(that.objectType))
+        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_objectName = true && this.isSetObjectName();
+    boolean that_present_objectName = true && that.isSetObjectName();
+    if (this_present_objectName || that_present_objectName) {
+      if (!(this_present_objectName && that_present_objectName))
+        return false;
+      if (!this.objectName.equals(that.objectName))
+        return false;
+    }
+
+    boolean this_present_partValues = true && this.isSetPartValues();
+    boolean that_present_partValues = true && that.isSetPartValues();
+    if (this_present_partValues || that_present_partValues) {
+      if (!(this_present_partValues && that_present_partValues))
+        return false;
+      if (!this.partValues.equals(that.partValues))
+        return false;
+    }
+
+    boolean this_present_columnName = true && this.isSetColumnName();
+    boolean that_present_columnName = true && that.isSetColumnName();
+    if (this_present_columnName || that_present_columnName) {
+      if (!(this_present_columnName && that_present_columnName))
+        return false;
+      if (!this.columnName.equals(that.columnName))
+        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;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_objectType = true && (isSetObjectType());
+    list.add(present_objectType);
+    if (present_objectType)
+      list.add(objectType.getValue());
+
+    boolean present_dbName = true && (isSetDbName());
+    list.add(present_dbName);
+    if (present_dbName)
+      list.add(dbName);
+
+    boolean present_objectName = true && (isSetObjectName());
+    list.add(present_objectName);
+    if (present_objectName)
+      list.add(objectName);
+
+    boolean present_partValues = true && (isSetPartValues());
+    list.add(present_partValues);
+    if (present_partValues)
+      list.add(partValues);
+
+    boolean present_columnName = true && (isSetColumnName());
+    list.add(present_columnName);
+    if (present_columnName)
+      list.add(columnName);
+
+    boolean present_catName = true && (isSetCatName());
+    list.add(present_catName);
+    if (present_catName)
+      list.add(catName);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(HiveObjectRef other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
Boolean.valueOf(isSetObjectType()).compareTo(other.isSetObjectType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetObjectType()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.objectType, other.objectType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    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(isSetObjectName()).compareTo(other.isSetObjectName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetObjectName()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.objectName, other.objectName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetPartValues()).compareTo(other.isSetPartValues());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetPartValues()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.partValues, other.partValues);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetColumnName()).compareTo(other.isSetColumnName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetColumnName()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.columnName, other.columnName);
+      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;
+      }
+    }
+    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("HiveObjectRef(");
+    boolean first = true;
+
+    sb.append("objectType:");
+    if (this.objectType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.objectType);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("dbName:");
+    if (this.dbName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dbName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("objectName:");
+    if (this.objectName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.objectName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("partValues:");
+    if (this.partValues == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.partValues);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("columnName:");
+    if (this.columnName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.columnName);
+    }
+    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;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, ClassNotFoundException {
+    try {
+      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 HiveObjectRefStandardSchemeFactory implements 
SchemeFactory {
+    public HiveObjectRefStandardScheme getScheme() {
+      return new HiveObjectRefStandardScheme();
+    }
+  }
+
+  private static class HiveObjectRefStandardScheme extends 
StandardScheme<HiveObjectRef> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, HiveObjectRef 
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: // OBJECT_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.objectType = 
org.apache.hadoop.hive.metastore.api.HiveObjectType.findByValue(iprot.readI32());
+              struct.setObjectTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // 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 3: // OBJECT_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.objectName = iprot.readString();
+              struct.setObjectNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 4: // PART_VALUES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list8 = 
iprot.readListBegin();
+                struct.partValues = new ArrayList<String>(_list8.size);
+                String _elem9;
+                for (int _i10 = 0; _i10 < _list8.size; ++_i10)
+                {
+                  _elem9 = iprot.readString();
+                  struct.partValues.add(_elem9);
+                }
+                iprot.readListEnd();
+              }
+              struct.setPartValuesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 5: // COLUMN_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.columnName = iprot.readString();
+              struct.setColumnNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 6: // CAT_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.catName = iprot.readString();
+              struct.setCatNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          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, 
HiveObjectRef struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.objectType != null) {
+        oprot.writeFieldBegin(OBJECT_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.objectType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.dbName != null) {
+        oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
+        oprot.writeString(struct.dbName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.objectName != null) {
+        oprot.writeFieldBegin(OBJECT_NAME_FIELD_DESC);
+        oprot.writeString(struct.objectName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.partValues != null) {
+        oprot.writeFieldBegin(PART_VALUES_FIELD_DESC);
+        {
+          oprot.writeListBegin(new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, 
struct.partValues.size()));
+          for (String _iter11 : struct.partValues)
+          {
+            oprot.writeString(_iter11);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      if (struct.columnName != null) {
+        oprot.writeFieldBegin(COLUMN_NAME_FIELD_DESC);
+        oprot.writeString(struct.columnName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.catName != null) {
+        if (struct.isSetCatName()) {
+          oprot.writeFieldBegin(CAT_NAME_FIELD_DESC);
+          oprot.writeString(struct.catName);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class HiveObjectRefTupleSchemeFactory implements 
SchemeFactory {
+    public HiveObjectRefTupleScheme getScheme() {
+      return new HiveObjectRefTupleScheme();
+    }
+  }
+
+  private static class HiveObjectRefTupleScheme extends 
TupleScheme<HiveObjectRef> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, HiveObjectRef 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetObjectType()) {
+        optionals.set(0);
+      }
+      if (struct.isSetDbName()) {
+        optionals.set(1);
+      }
+      if (struct.isSetObjectName()) {
+        optionals.set(2);
+      }
+      if (struct.isSetPartValues()) {
+        optionals.set(3);
+      }
+      if (struct.isSetColumnName()) {
+        optionals.set(4);
+      }
+      if (struct.isSetCatName()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetObjectType()) {
+        oprot.writeI32(struct.objectType.getValue());
+      }
+      if (struct.isSetDbName()) {
+        oprot.writeString(struct.dbName);
+      }
+      if (struct.isSetObjectName()) {
+        oprot.writeString(struct.objectName);
+      }
+      if (struct.isSetPartValues()) {
+        {
+          oprot.writeI32(struct.partValues.size());
+          for (String _iter12 : struct.partValues)
+          {
+            oprot.writeString(_iter12);
+          }
+        }
+      }
+      if (struct.isSetColumnName()) {
+        oprot.writeString(struct.columnName);
+      }
+      if (struct.isSetCatName()) {
+        oprot.writeString(struct.catName);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, HiveObjectRef 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(6);
+      if (incoming.get(0)) {
+        struct.objectType = 
org.apache.hadoop.hive.metastore.api.HiveObjectType.findByValue(iprot.readI32());
+        struct.setObjectTypeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.dbName = iprot.readString();
+        struct.setDbNameIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.objectName = iprot.readString();
+        struct.setObjectNameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        {
+          org.apache.thrift.protocol.TList _list13 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, 
iprot.readI32());
+          struct.partValues = new ArrayList<String>(_list13.size);
+          String _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+          {
+            _elem14 = iprot.readString();
+            struct.partValues.add(_elem14);
+          }
+        }
+        struct.setPartValuesIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.columnName = iprot.readString();
+        struct.setColumnNameIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.catName = iprot.readString();
+        struct.setCatNameIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/hive/blob/20eb7b51/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectType.java
----------------------------------------------------------------------
diff --git 
a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectType.java
 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectType.java
new file mode 100644
index 0000000..f5b1d0e
--- /dev/null
+++ 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/HiveObjectType.java
@@ -0,0 +1,54 @@
+/**
+ * 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 java.util.Map;
+import java.util.HashMap;
+import org.apache.thrift.TEnum;
+
+public enum HiveObjectType implements org.apache.thrift.TEnum {
+  GLOBAL(1),
+  DATABASE(2),
+  TABLE(3),
+  PARTITION(4),
+  COLUMN(5);
+
+  private final int value;
+
+  private HiveObjectType(int value) {
+    this.value = value;
+  }
+
+  /**
+   * Get the integer value of this enum value, as defined in the Thrift IDL.
+   */
+  public int getValue() {
+    return value;
+  }
+
+  /**
+   * Find a the enum type by its integer value, as defined in the Thrift IDL.
+   * @return null if the value is not found.
+   */
+  public static HiveObjectType findByValue(int value) { 
+    switch (value) {
+      case 1:
+        return GLOBAL;
+      case 2:
+        return DATABASE;
+      case 3:
+        return TABLE;
+      case 4:
+        return PARTITION;
+      case 5:
+        return COLUMN;
+      default:
+        return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/20eb7b51/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ISchema.java
----------------------------------------------------------------------
diff --git 
a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ISchema.java
 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ISchema.java
new file mode 100644
index 0000000..285f402
--- /dev/null
+++ 
b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ISchema.java
@@ -0,0 +1,1266 @@
+/**
+ * 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 
ISchema implements org.apache.thrift.TBase<ISchema, ISchema._Fields>, 
java.io.Serializable, Cloneable, Comparable<ISchema> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ISchema");
+
+  private static final org.apache.thrift.protocol.TField 
SCHEMA_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaType", 
org.apache.thrift.protocol.TType.I32, (short)1);
+  private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new 
org.apache.thrift.protocol.TField("name", 
org.apache.thrift.protocol.TType.STRING, (short)2);
+  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)3);
+  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)4);
+  private static final org.apache.thrift.protocol.TField 
COMPATIBILITY_FIELD_DESC = new 
org.apache.thrift.protocol.TField("compatibility", 
org.apache.thrift.protocol.TType.I32, (short)5);
+  private static final org.apache.thrift.protocol.TField 
VALIDATION_LEVEL_FIELD_DESC = new 
org.apache.thrift.protocol.TField("validationLevel", 
org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField CAN_EVOLVE_FIELD_DESC 
= new org.apache.thrift.protocol.TField("canEvolve", 
org.apache.thrift.protocol.TType.BOOL, (short)7);
+  private static final org.apache.thrift.protocol.TField 
SCHEMA_GROUP_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaGroup", 
org.apache.thrift.protocol.TType.STRING, (short)8);
+  private static final org.apache.thrift.protocol.TField 
DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", 
org.apache.thrift.protocol.TType.STRING, (short)9);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = 
new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new ISchemaStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new ISchemaTupleSchemeFactory());
+  }
+
+  private SchemaType schemaType; // required
+  private String name; // required
+  private String catName; // required
+  private String dbName; // required
+  private SchemaCompatibility compatibility; // required
+  private SchemaValidation validationLevel; // required
+  private boolean canEvolve; // required
+  private String schemaGroup; // optional
+  private String description; // 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 {
+    /**
+     * 
+     * @see SchemaType
+     */
+    SCHEMA_TYPE((short)1, "schemaType"),
+    NAME((short)2, "name"),
+    CAT_NAME((short)3, "catName"),
+    DB_NAME((short)4, "dbName"),
+    /**
+     * 
+     * @see SchemaCompatibility
+     */
+    COMPATIBILITY((short)5, "compatibility"),
+    /**
+     * 
+     * @see SchemaValidation
+     */
+    VALIDATION_LEVEL((short)6, "validationLevel"),
+    CAN_EVOLVE((short)7, "canEvolve"),
+    SCHEMA_GROUP((short)8, "schemaGroup"),
+    DESCRIPTION((short)9, "description");
+
+    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: // SCHEMA_TYPE
+          return SCHEMA_TYPE;
+        case 2: // NAME
+          return NAME;
+        case 3: // CAT_NAME
+          return CAT_NAME;
+        case 4: // DB_NAME
+          return DB_NAME;
+        case 5: // COMPATIBILITY
+          return COMPATIBILITY;
+        case 6: // VALIDATION_LEVEL
+          return VALIDATION_LEVEL;
+        case 7: // CAN_EVOLVE
+          return CAN_EVOLVE;
+        case 8: // SCHEMA_GROUP
+          return SCHEMA_GROUP;
+        case 9: // DESCRIPTION
+          return DESCRIPTION;
+        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 __CANEVOLVE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private static final _Fields optionals[] = 
{_Fields.SCHEMA_GROUP,_Fields.DESCRIPTION};
+  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.SCHEMA_TYPE, new 
org.apache.thrift.meta_data.FieldMetaData("schemaType", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
SchemaType.class)));
+    tmpMap.put(_Fields.NAME, new 
org.apache.thrift.meta_data.FieldMetaData("name", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        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.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DB_NAME, new 
org.apache.thrift.meta_data.FieldMetaData("dbName", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.COMPATIBILITY, new 
org.apache.thrift.meta_data.FieldMetaData("compatibility", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
SchemaCompatibility.class)));
+    tmpMap.put(_Fields.VALIDATION_LEVEL, new 
org.apache.thrift.meta_data.FieldMetaData("validationLevel", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, 
SchemaValidation.class)));
+    tmpMap.put(_Fields.CAN_EVOLVE, new 
org.apache.thrift.meta_data.FieldMetaData("canEvolve", 
org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.SCHEMA_GROUP, new 
org.apache.thrift.meta_data.FieldMetaData("schemaGroup", 
org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new 
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.DESCRIPTION, new 
org.apache.thrift.meta_data.FieldMetaData("description", 
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(ISchema.class, 
metaDataMap);
+  }
+
+  public ISchema() {
+  }
+
+  public ISchema(
+    SchemaType schemaType,
+    String name,
+    String catName,
+    String dbName,
+    SchemaCompatibility compatibility,
+    SchemaValidation validationLevel,
+    boolean canEvolve)
+  {
+    this();
+    this.schemaType = schemaType;
+    this.name = name;
+    this.catName = catName;
+    this.dbName = dbName;
+    this.compatibility = compatibility;
+    this.validationLevel = validationLevel;
+    this.canEvolve = canEvolve;
+    setCanEvolveIsSet(true);
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public ISchema(ISchema other) {
+    __isset_bitfield = other.__isset_bitfield;
+    if (other.isSetSchemaType()) {
+      this.schemaType = other.schemaType;
+    }
+    if (other.isSetName()) {
+      this.name = other.name;
+    }
+    if (other.isSetCatName()) {
+      this.catName = other.catName;
+    }
+    if (other.isSetDbName()) {
+      this.dbName = other.dbName;
+    }
+    if (other.isSetCompatibility()) {
+      this.compatibility = other.compatibility;
+    }
+    if (other.isSetValidationLevel()) {
+      this.validationLevel = other.validationLevel;
+    }
+    this.canEvolve = other.canEvolve;
+    if (other.isSetSchemaGroup()) {
+      this.schemaGroup = other.schemaGroup;
+    }
+    if (other.isSetDescription()) {
+      this.description = other.description;
+    }
+  }
+
+  public ISchema deepCopy() {
+    return new ISchema(this);
+  }
+
+  @Override
+  public void clear() {
+    this.schemaType = null;
+    this.name = null;
+    this.catName = null;
+    this.dbName = null;
+    this.compatibility = null;
+    this.validationLevel = null;
+    setCanEvolveIsSet(false);
+    this.canEvolve = false;
+    this.schemaGroup = null;
+    this.description = null;
+  }
+
+  /**
+   * 
+   * @see SchemaType
+   */
+  public SchemaType getSchemaType() {
+    return this.schemaType;
+  }
+
+  /**
+   * 
+   * @see SchemaType
+   */
+  public void setSchemaType(SchemaType schemaType) {
+    this.schemaType = schemaType;
+  }
+
+  public void unsetSchemaType() {
+    this.schemaType = null;
+  }
+
+  /** Returns true if field schemaType is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetSchemaType() {
+    return this.schemaType != null;
+  }
+
+  public void setSchemaTypeIsSet(boolean value) {
+    if (!value) {
+      this.schemaType = null;
+    }
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public void unsetName() {
+    this.name = null;
+  }
+
+  /** Returns true if field name is set (has been assigned a value) and false 
otherwise */
+  public boolean isSetName() {
+    return this.name != null;
+  }
+
+  public void setNameIsSet(boolean value) {
+    if (!value) {
+      this.name = 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 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;
+    }
+  }
+
+  /**
+   * 
+   * @see SchemaCompatibility
+   */
+  public SchemaCompatibility getCompatibility() {
+    return this.compatibility;
+  }
+
+  /**
+   * 
+   * @see SchemaCompatibility
+   */
+  public void setCompatibility(SchemaCompatibility compatibility) {
+    this.compatibility = compatibility;
+  }
+
+  public void unsetCompatibility() {
+    this.compatibility = null;
+  }
+
+  /** Returns true if field compatibility is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetCompatibility() {
+    return this.compatibility != null;
+  }
+
+  public void setCompatibilityIsSet(boolean value) {
+    if (!value) {
+      this.compatibility = null;
+    }
+  }
+
+  /**
+   * 
+   * @see SchemaValidation
+   */
+  public SchemaValidation getValidationLevel() {
+    return this.validationLevel;
+  }
+
+  /**
+   * 
+   * @see SchemaValidation
+   */
+  public void setValidationLevel(SchemaValidation validationLevel) {
+    this.validationLevel = validationLevel;
+  }
+
+  public void unsetValidationLevel() {
+    this.validationLevel = null;
+  }
+
+  /** Returns true if field validationLevel is set (has been assigned a value) 
and false otherwise */
+  public boolean isSetValidationLevel() {
+    return this.validationLevel != null;
+  }
+
+  public void setValidationLevelIsSet(boolean value) {
+    if (!value) {
+      this.validationLevel = null;
+    }
+  }
+
+  public boolean isCanEvolve() {
+    return this.canEvolve;
+  }
+
+  public void setCanEvolve(boolean canEvolve) {
+    this.canEvolve = canEvolve;
+    setCanEvolveIsSet(true);
+  }
+
+  public void unsetCanEvolve() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, 
__CANEVOLVE_ISSET_ID);
+  }
+
+  /** Returns true if field canEvolve is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetCanEvolve() {
+    return EncodingUtils.testBit(__isset_bitfield, __CANEVOLVE_ISSET_ID);
+  }
+
+  public void setCanEvolveIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, 
__CANEVOLVE_ISSET_ID, value);
+  }
+
+  public String getSchemaGroup() {
+    return this.schemaGroup;
+  }
+
+  public void setSchemaGroup(String schemaGroup) {
+    this.schemaGroup = schemaGroup;
+  }
+
+  public void unsetSchemaGroup() {
+    this.schemaGroup = null;
+  }
+
+  /** Returns true if field schemaGroup is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetSchemaGroup() {
+    return this.schemaGroup != null;
+  }
+
+  public void setSchemaGroupIsSet(boolean value) {
+    if (!value) {
+      this.schemaGroup = null;
+    }
+  }
+
+  public String getDescription() {
+    return this.description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public void unsetDescription() {
+    this.description = null;
+  }
+
+  /** Returns true if field description is set (has been assigned a value) and 
false otherwise */
+  public boolean isSetDescription() {
+    return this.description != null;
+  }
+
+  public void setDescriptionIsSet(boolean value) {
+    if (!value) {
+      this.description = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case SCHEMA_TYPE:
+      if (value == null) {
+        unsetSchemaType();
+      } else {
+        setSchemaType((SchemaType)value);
+      }
+      break;
+
+    case NAME:
+      if (value == null) {
+        unsetName();
+      } else {
+        setName((String)value);
+      }
+      break;
+
+    case CAT_NAME:
+      if (value == null) {
+        unsetCatName();
+      } else {
+        setCatName((String)value);
+      }
+      break;
+
+    case DB_NAME:
+      if (value == null) {
+        unsetDbName();
+      } else {
+        setDbName((String)value);
+      }
+      break;
+
+    case COMPATIBILITY:
+      if (value == null) {
+        unsetCompatibility();
+      } else {
+        setCompatibility((SchemaCompatibility)value);
+      }
+      break;
+
+    case VALIDATION_LEVEL:
+      if (value == null) {
+        unsetValidationLevel();
+      } else {
+        setValidationLevel((SchemaValidation)value);
+      }
+      break;
+
+    case CAN_EVOLVE:
+      if (value == null) {
+        unsetCanEvolve();
+      } else {
+        setCanEvolve((Boolean)value);
+      }
+      break;
+
+    case SCHEMA_GROUP:
+      if (value == null) {
+        unsetSchemaGroup();
+      } else {
+        setSchemaGroup((String)value);
+      }
+      break;
+
+    case DESCRIPTION:
+      if (value == null) {
+        unsetDescription();
+      } else {
+        setDescription((String)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SCHEMA_TYPE:
+      return getSchemaType();
+
+    case NAME:
+      return getName();
+
+    case CAT_NAME:
+      return getCatName();
+
+    case DB_NAME:
+      return getDbName();
+
+    case COMPATIBILITY:
+      return getCompatibility();
+
+    case VALIDATION_LEVEL:
+      return getValidationLevel();
+
+    case CAN_EVOLVE:
+      return isCanEvolve();
+
+    case SCHEMA_GROUP:
+      return getSchemaGroup();
+
+    case DESCRIPTION:
+      return getDescription();
+
+    }
+    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 SCHEMA_TYPE:
+      return isSetSchemaType();
+    case NAME:
+      return isSetName();
+    case CAT_NAME:
+      return isSetCatName();
+    case DB_NAME:
+      return isSetDbName();
+    case COMPATIBILITY:
+      return isSetCompatibility();
+    case VALIDATION_LEVEL:
+      return isSetValidationLevel();
+    case CAN_EVOLVE:
+      return isSetCanEvolve();
+    case SCHEMA_GROUP:
+      return isSetSchemaGroup();
+    case DESCRIPTION:
+      return isSetDescription();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof ISchema)
+      return this.equals((ISchema)that);
+    return false;
+  }
+
+  public boolean equals(ISchema that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_schemaType = true && this.isSetSchemaType();
+    boolean that_present_schemaType = true && that.isSetSchemaType();
+    if (this_present_schemaType || that_present_schemaType) {
+      if (!(this_present_schemaType && that_present_schemaType))
+        return false;
+      if (!this.schemaType.equals(that.schemaType))
+        return false;
+    }
+
+    boolean this_present_name = true && this.isSetName();
+    boolean that_present_name = true && that.isSetName();
+    if (this_present_name || that_present_name) {
+      if (!(this_present_name && that_present_name))
+        return false;
+      if (!this.name.equals(that.name))
+        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_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_compatibility = true && this.isSetCompatibility();
+    boolean that_present_compatibility = true && that.isSetCompatibility();
+    if (this_present_compatibility || that_present_compatibility) {
+      if (!(this_present_compatibility && that_present_compatibility))
+        return false;
+      if (!this.compatibility.equals(that.compatibility))
+        return false;
+    }
+
+    boolean this_present_validationLevel = true && this.isSetValidationLevel();
+    boolean that_present_validationLevel = true && that.isSetValidationLevel();
+    if (this_present_validationLevel || that_present_validationLevel) {
+      if (!(this_present_validationLevel && that_present_validationLevel))
+        return false;
+      if (!this.validationLevel.equals(that.validationLevel))
+        return false;
+    }
+
+    boolean this_present_canEvolve = true;
+    boolean that_present_canEvolve = true;
+    if (this_present_canEvolve || that_present_canEvolve) {
+      if (!(this_present_canEvolve && that_present_canEvolve))
+        return false;
+      if (this.canEvolve != that.canEvolve)
+        return false;
+    }
+
+    boolean this_present_schemaGroup = true && this.isSetSchemaGroup();
+    boolean that_present_schemaGroup = true && that.isSetSchemaGroup();
+    if (this_present_schemaGroup || that_present_schemaGroup) {
+      if (!(this_present_schemaGroup && that_present_schemaGroup))
+        return false;
+      if (!this.schemaGroup.equals(that.schemaGroup))
+        return false;
+    }
+
+    boolean this_present_description = true && this.isSetDescription();
+    boolean that_present_description = true && that.isSetDescription();
+    if (this_present_description || that_present_description) {
+      if (!(this_present_description && that_present_description))
+        return false;
+      if (!this.description.equals(that.description))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_schemaType = true && (isSetSchemaType());
+    list.add(present_schemaType);
+    if (present_schemaType)
+      list.add(schemaType.getValue());
+
+    boolean present_name = true && (isSetName());
+    list.add(present_name);
+    if (present_name)
+      list.add(name);
+
+    boolean present_catName = true && (isSetCatName());
+    list.add(present_catName);
+    if (present_catName)
+      list.add(catName);
+
+    boolean present_dbName = true && (isSetDbName());
+    list.add(present_dbName);
+    if (present_dbName)
+      list.add(dbName);
+
+    boolean present_compatibility = true && (isSetCompatibility());
+    list.add(present_compatibility);
+    if (present_compatibility)
+      list.add(compatibility.getValue());
+
+    boolean present_validationLevel = true && (isSetValidationLevel());
+    list.add(present_validationLevel);
+    if (present_validationLevel)
+      list.add(validationLevel.getValue());
+
+    boolean present_canEvolve = true;
+    list.add(present_canEvolve);
+    if (present_canEvolve)
+      list.add(canEvolve);
+
+    boolean present_schemaGroup = true && (isSetSchemaGroup());
+    list.add(present_schemaGroup);
+    if (present_schemaGroup)
+      list.add(schemaGroup);
+
+    boolean present_description = true && (isSetDescription());
+    list.add(present_description);
+    if (present_description)
+      list.add(description);
+
+    return list.hashCode();
+  }
+
+  @Override
+  public int compareTo(ISchema other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+
+    lastComparison = 
Boolean.valueOf(isSetSchemaType()).compareTo(other.isSetSchemaType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSchemaType()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.schemaType, other.schemaType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, 
other.name);
+      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(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(isSetCompatibility()).compareTo(other.isSetCompatibility());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCompatibility()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.compatibility, 
other.compatibility);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetValidationLevel()).compareTo(other.isSetValidationLevel());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidationLevel()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.validationLevel, 
other.validationLevel);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetCanEvolve()).compareTo(other.isSetCanEvolve());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetCanEvolve()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.canEvolve, 
other.canEvolve);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetSchemaGroup()).compareTo(other.isSetSchemaGroup());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSchemaGroup()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.schemaGroup, other.schemaGroup);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = 
Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDescription()) {
+      lastComparison = 
org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
+      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("ISchema(");
+    boolean first = true;
+
+    sb.append("schemaType:");
+    if (this.schemaType == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.schemaType);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("name:");
+    if (this.name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.name);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("catName:");
+    if (this.catName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.catName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("dbName:");
+    if (this.dbName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.dbName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("compatibility:");
+    if (this.compatibility == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.compatibility);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("validationLevel:");
+    if (this.validationLevel == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.validationLevel);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("canEvolve:");
+    sb.append(this.canEvolve);
+    first = false;
+    if (isSetSchemaGroup()) {
+      if (!first) sb.append(", ");
+      sb.append("schemaGroup:");
+      if (this.schemaGroup == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.schemaGroup);
+      }
+      first = false;
+    }
+    if (isSetDescription()) {
+      if (!first) sb.append(", ");
+      sb.append("description:");
+      if (this.description == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.description);
+      }
+      first = false;
+    }
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws 
java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws 
java.io.IOException, ClassNotFoundException {
+    try {
+      // it doesn't seem like you should have to do this, but java 
serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
+      read(new org.apache.thrift.protocol.TCompactProtocol(new 
org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class ISchemaStandardSchemeFactory implements SchemeFactory {
+    public ISchemaStandardScheme getScheme() {
+      return new ISchemaStandardScheme();
+    }
+  }
+
+  private static class ISchemaStandardScheme extends StandardScheme<ISchema> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, ISchema 
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: // SCHEMA_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.schemaType = 
org.apache.hadoop.hive.metastore.api.SchemaType.findByValue(iprot.readI32());
+              struct.setSchemaTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 2: // NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.name = iprot.readString();
+              struct.setNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 3: // 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 4: // 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 5: // COMPATIBILITY
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.compatibility = 
org.apache.hadoop.hive.metastore.api.SchemaCompatibility.findByValue(iprot.readI32());
+              struct.setCompatibilityIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 6: // VALIDATION_LEVEL
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.validationLevel = 
org.apache.hadoop.hive.metastore.api.SchemaValidation.findByValue(iprot.readI32());
+              struct.setValidationLevelIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 7: // CAN_EVOLVE
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.canEvolve = iprot.readBool();
+              struct.setCanEvolveIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 8: // SCHEMA_GROUP
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.schemaGroup = iprot.readString();
+              struct.setSchemaGroupIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
+            }
+            break;
+          case 9: // DESCRIPTION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.description = iprot.readString();
+              struct.setDescriptionIsSet(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, ISchema 
struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.schemaType != null) {
+        oprot.writeFieldBegin(SCHEMA_TYPE_FIELD_DESC);
+        oprot.writeI32(struct.schemaType.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.catName != null) {
+        oprot.writeFieldBegin(CAT_NAME_FIELD_DESC);
+        oprot.writeString(struct.catName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.dbName != null) {
+        oprot.writeFieldBegin(DB_NAME_FIELD_DESC);
+        oprot.writeString(struct.dbName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.compatibility != null) {
+        oprot.writeFieldBegin(COMPATIBILITY_FIELD_DESC);
+        oprot.writeI32(struct.compatibility.getValue());
+        oprot.writeFieldEnd();
+      }
+      if (struct.validationLevel != null) {
+        oprot.writeFieldBegin(VALIDATION_LEVEL_FIELD_DESC);
+        oprot.writeI32(struct.validationLevel.getValue());
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(CAN_EVOLVE_FIELD_DESC);
+      oprot.writeBool(struct.canEvolve);
+      oprot.writeFieldEnd();
+      if (struct.schemaGroup != null) {
+        if (struct.isSetSchemaGroup()) {
+          oprot.writeFieldBegin(SCHEMA_GROUP_FIELD_DESC);
+          oprot.writeString(struct.schemaGroup);
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.description != null) {
+        if (struct.isSetDescription()) {
+          oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
+          oprot.writeString(struct.description);
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class ISchemaTupleSchemeFactory implements SchemeFactory {
+    public ISchemaTupleScheme getScheme() {
+      return new ISchemaTupleScheme();
+    }
+  }
+
+  private static class ISchemaTupleScheme extends TupleScheme<ISchema> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, ISchema 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetSchemaType()) {
+        optionals.set(0);
+      }
+      if (struct.isSetName()) {
+        optionals.set(1);
+      }
+      if (struct.isSetCatName()) {
+        optionals.set(2);
+      }
+      if (struct.isSetDbName()) {
+        optionals.set(3);
+      }
+      if (struct.isSetCompatibility()) {
+        optionals.set(4);
+      }
+      if (struct.isSetValidationLevel()) {
+        optionals.set(5);
+      }
+      if (struct.isSetCanEvolve()) {
+        optionals.set(6);
+      }
+      if (struct.isSetSchemaGroup()) {
+        optionals.set(7);
+      }
+      if (struct.isSetDescription()) {
+        optionals.set(8);
+      }
+      oprot.writeBitSet(optionals, 9);
+      if (struct.isSetSchemaType()) {
+        oprot.writeI32(struct.schemaType.getValue());
+      }
+      if (struct.isSetName()) {
+        oprot.writeString(struct.name);
+      }
+      if (struct.isSetCatName()) {
+        oprot.writeString(struct.catName);
+      }
+      if (struct.isSetDbName()) {
+        oprot.writeString(struct.dbName);
+      }
+      if (struct.isSetCompatibility()) {
+        oprot.writeI32(struct.compatibility.getValue());
+      }
+      if (struct.isSetValidationLevel()) {
+        oprot.writeI32(struct.validationLevel.getValue());
+      }
+      if (struct.isSetCanEvolve()) {
+        oprot.writeBool(struct.canEvolve);
+      }
+      if (struct.isSetSchemaGroup()) {
+        oprot.writeString(struct.schemaGroup);
+      }
+      if (struct.isSetDescription()) {
+        oprot.writeString(struct.description);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, ISchema 
struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(9);
+      if (incoming.get(0)) {
+        struct.schemaType = 
org.apache.hadoop.hive.metastore.api.SchemaType.findByValue(iprot.readI32());
+        struct.setSchemaTypeIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.name = iprot.readString();
+        struct.setNameIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.catName = iprot.readString();
+        struct.setCatNameIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.dbName = iprot.readString();
+        struct.setDbNameIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.compatibility = 
org.apache.hadoop.hive.metastore.api.SchemaCompatibility.findByValue(iprot.readI32());
+        struct.setCompatibilityIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.validationLevel = 
org.apache.hadoop.hive.metastore.api.SchemaValidation.findByValue(iprot.readI32());
+        struct.setValidationLevelIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.canEvolve = iprot.readBool();
+        struct.setCanEvolveIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.schemaGroup = iprot.readString();
+        struct.setSchemaGroupIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.description = iprot.readString();
+        struct.setDescriptionIsSet(true);
+      }
+    }
+  }
+
+}
+

Reply via email to