incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [05/11] More changes, blur-core compile and tests pass.
Date Sun, 24 Mar 2013 20:05:22 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f4c3cc19/interface/gen-java/org/apache/blur/thrift/generated/TableDescriptor.java
----------------------------------------------------------------------
diff --git a/interface/gen-java/org/apache/blur/thrift/generated/TableDescriptor.java b/interface/gen-java/org/apache/blur/thrift/generated/TableDescriptor.java
index d297dbb..fd08187 100644
--- a/interface/gen-java/org/apache/blur/thrift/generated/TableDescriptor.java
+++ b/interface/gen-java/org/apache/blur/thrift/generated/TableDescriptor.java
@@ -1,7 +1,8 @@
 /**
- * Autogenerated by Thrift Compiler (0.7.0)
+ * Autogenerated by Thrift Compiler (0.9.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
  */
 package org.apache.blur.thrift.generated;
 
@@ -24,6 +25,15 @@ package org.apache.blur.thrift.generated;
 
 
 
+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 java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
@@ -58,6 +68,13 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   private static final org.apache.thrift.protocol.TField BLOCK_CACHING_FILE_TYPES_FIELD_DESC = new org.apache.thrift.protocol.TField("blockCachingFileTypes", org.apache.thrift.protocol.TType.SET, (short)11);
   private static final org.apache.thrift.protocol.TField READ_ONLY_FIELD_DESC = new org.apache.thrift.protocol.TField("readOnly", org.apache.thrift.protocol.TType.BOOL, (short)12);
   private static final org.apache.thrift.protocol.TField COLUMN_PRE_CACHE_FIELD_DESC = new org.apache.thrift.protocol.TField("columnPreCache", org.apache.thrift.protocol.TType.STRUCT, (short)13);
+  private static final org.apache.thrift.protocol.TField TABLE_PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("tableProperties", org.apache.thrift.protocol.TType.MAP, (short)14);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TableDescriptorStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TableDescriptorTupleSchemeFactory());
+  }
 
   /**
    * 
@@ -112,6 +129,10 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
    * Sets what column families and columns to prefetch into block cache on shard open.
    */
   public ColumnPreCache columnPreCache; // required
+  /**
+   * Properties, used to override default settings on a per table basis.
+   */
+  public Map<String,String> tableProperties; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -167,7 +188,11 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
     /**
      * Sets what column families and columns to prefetch into block cache on shard open.
      */
-    COLUMN_PRE_CACHE((short)13, "columnPreCache");
+    COLUMN_PRE_CACHE((short)13, "columnPreCache"),
+    /**
+     * Properties, used to override default settings on a per table basis.
+     */
+    TABLE_PROPERTIES((short)14, "tableProperties");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -208,6 +233,8 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
           return READ_ONLY;
         case 13: // COLUMN_PRE_CACHE
           return COLUMN_PRE_CACHE;
+        case 14: // TABLE_PROPERTIES
+          return TABLE_PROPERTIES;
         default:
           return null;
       }
@@ -253,8 +280,7 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   private static final int __COMPRESSIONBLOCKSIZE_ISSET_ID = 2;
   private static final int __BLOCKCACHING_ISSET_ID = 3;
   private static final int __READONLY_ISSET_ID = 4;
-  private BitSet __isset_bit_vector = new BitSet(5);
-
+  private byte __isset_bitfield = 0;
   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);
@@ -285,6 +311,10 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
     tmpMap.put(_Fields.COLUMN_PRE_CACHE, new org.apache.thrift.meta_data.FieldMetaData("columnPreCache", org.apache.thrift.TFieldRequirementType.DEFAULT, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ColumnPreCache.class)));
+    tmpMap.put(_Fields.TABLE_PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("tableProperties", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TableDescriptor.class, metaDataMap);
   }
@@ -319,7 +349,8 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
     boolean blockCaching,
     Set<String> blockCachingFileTypes,
     boolean readOnly,
-    ColumnPreCache columnPreCache)
+    ColumnPreCache columnPreCache,
+    Map<String,String> tableProperties)
   {
     this();
     this.isEnabled = isEnabled;
@@ -340,14 +371,14 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
     this.readOnly = readOnly;
     setReadOnlyIsSet(true);
     this.columnPreCache = columnPreCache;
+    this.tableProperties = tableProperties;
   }
 
   /**
    * Performs a deep copy on <i>other</i>.
    */
   public TableDescriptor(TableDescriptor other) {
-    __isset_bit_vector.clear();
-    __isset_bit_vector.or(other.__isset_bit_vector);
+    __isset_bitfield = other.__isset_bitfield;
     this.isEnabled = other.isEnabled;
     if (other.isSetAnalyzerDefinition()) {
       this.analyzerDefinition = new AnalyzerDefinition(other.analyzerDefinition);
@@ -381,6 +412,21 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
     if (other.isSetColumnPreCache()) {
       this.columnPreCache = new ColumnPreCache(other.columnPreCache);
     }
+    if (other.isSetTableProperties()) {
+      Map<String,String> __this__tableProperties = new HashMap<String,String>();
+      for (Map.Entry<String, String> other_element : other.tableProperties.entrySet()) {
+
+        String other_element_key = other_element.getKey();
+        String other_element_value = other_element.getValue();
+
+        String __this__tableProperties_copy_key = other_element_key;
+
+        String __this__tableProperties_copy_value = other_element_value;
+
+        __this__tableProperties.put(__this__tableProperties_copy_key, __this__tableProperties_copy_value);
+      }
+      this.tableProperties = __this__tableProperties;
+    }
   }
 
   public TableDescriptor deepCopy() {
@@ -409,6 +455,7 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
     this.readOnly = false;
 
     this.columnPreCache = null;
+    this.tableProperties = null;
   }
 
   /**
@@ -428,16 +475,16 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   }
 
   public void unsetIsEnabled() {
-    __isset_bit_vector.clear(__ISENABLED_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ISENABLED_ISSET_ID);
   }
 
   /** Returns true if field isEnabled is set (has been assigned a value) and false otherwise */
   public boolean isSetIsEnabled() {
-    return __isset_bit_vector.get(__ISENABLED_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __ISENABLED_ISSET_ID);
   }
 
   public void setIsEnabledIsSet(boolean value) {
-    __isset_bit_vector.set(__ISENABLED_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ISENABLED_ISSET_ID, value);
   }
 
   /**
@@ -487,16 +534,16 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   }
 
   public void unsetShardCount() {
-    __isset_bit_vector.clear(__SHARDCOUNT_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __SHARDCOUNT_ISSET_ID);
   }
 
   /** Returns true if field shardCount is set (has been assigned a value) and false otherwise */
   public boolean isSetShardCount() {
-    return __isset_bit_vector.get(__SHARDCOUNT_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __SHARDCOUNT_ISSET_ID);
   }
 
   public void setShardCountIsSet(boolean value) {
-    __isset_bit_vector.set(__SHARDCOUNT_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __SHARDCOUNT_ISSET_ID, value);
   }
 
   /**
@@ -576,16 +623,16 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   }
 
   public void unsetCompressionBlockSize() {
-    __isset_bit_vector.clear(__COMPRESSIONBLOCKSIZE_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __COMPRESSIONBLOCKSIZE_ISSET_ID);
   }
 
   /** Returns true if field compressionBlockSize is set (has been assigned a value) and false otherwise */
   public boolean isSetCompressionBlockSize() {
-    return __isset_bit_vector.get(__COMPRESSIONBLOCKSIZE_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __COMPRESSIONBLOCKSIZE_ISSET_ID);
   }
 
   public void setCompressionBlockSizeIsSet(boolean value) {
-    __isset_bit_vector.set(__COMPRESSIONBLOCKSIZE_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __COMPRESSIONBLOCKSIZE_ISSET_ID, value);
   }
 
   /**
@@ -695,16 +742,16 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   }
 
   public void unsetBlockCaching() {
-    __isset_bit_vector.clear(__BLOCKCACHING_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __BLOCKCACHING_ISSET_ID);
   }
 
   /** Returns true if field blockCaching is set (has been assigned a value) and false otherwise */
   public boolean isSetBlockCaching() {
-    return __isset_bit_vector.get(__BLOCKCACHING_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __BLOCKCACHING_ISSET_ID);
   }
 
   public void setBlockCachingIsSet(boolean value) {
-    __isset_bit_vector.set(__BLOCKCACHING_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __BLOCKCACHING_ISSET_ID, value);
   }
 
   public int getBlockCachingFileTypesSize() {
@@ -771,16 +818,16 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   }
 
   public void unsetReadOnly() {
-    __isset_bit_vector.clear(__READONLY_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __READONLY_ISSET_ID);
   }
 
   /** Returns true if field readOnly is set (has been assigned a value) and false otherwise */
   public boolean isSetReadOnly() {
-    return __isset_bit_vector.get(__READONLY_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __READONLY_ISSET_ID);
   }
 
   public void setReadOnlyIsSet(boolean value) {
-    __isset_bit_vector.set(__READONLY_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __READONLY_ISSET_ID, value);
   }
 
   /**
@@ -813,6 +860,47 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
     }
   }
 
+  public int getTablePropertiesSize() {
+    return (this.tableProperties == null) ? 0 : this.tableProperties.size();
+  }
+
+  public void putToTableProperties(String key, String val) {
+    if (this.tableProperties == null) {
+      this.tableProperties = new HashMap<String,String>();
+    }
+    this.tableProperties.put(key, val);
+  }
+
+  /**
+   * Properties, used to override default settings on a per table basis.
+   */
+  public Map<String,String> getTableProperties() {
+    return this.tableProperties;
+  }
+
+  /**
+   * Properties, used to override default settings on a per table basis.
+   */
+  public TableDescriptor setTableProperties(Map<String,String> tableProperties) {
+    this.tableProperties = tableProperties;
+    return this;
+  }
+
+  public void unsetTableProperties() {
+    this.tableProperties = null;
+  }
+
+  /** Returns true if field tableProperties is set (has been assigned a value) and false otherwise */
+  public boolean isSetTableProperties() {
+    return this.tableProperties != null;
+  }
+
+  public void setTablePropertiesIsSet(boolean value) {
+    if (!value) {
+      this.tableProperties = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case IS_ENABLED:
@@ -919,6 +1007,14 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
       }
       break;
 
+    case TABLE_PROPERTIES:
+      if (value == null) {
+        unsetTableProperties();
+      } else {
+        setTableProperties((Map<String,String>)value);
+      }
+      break;
+
     }
   }
 
@@ -963,6 +1059,9 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
     case COLUMN_PRE_CACHE:
       return getColumnPreCache();
 
+    case TABLE_PROPERTIES:
+      return getTableProperties();
+
     }
     throw new IllegalStateException();
   }
@@ -1000,6 +1099,8 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
       return isSetReadOnly();
     case COLUMN_PRE_CACHE:
       return isSetColumnPreCache();
+    case TABLE_PROPERTIES:
+      return isSetTableProperties();
     }
     throw new IllegalStateException();
   }
@@ -1134,6 +1235,15 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
         return false;
     }
 
+    boolean this_present_tableProperties = true && this.isSetTableProperties();
+    boolean that_present_tableProperties = true && that.isSetTableProperties();
+    if (this_present_tableProperties || that_present_tableProperties) {
+      if (!(this_present_tableProperties && that_present_tableProperties))
+        return false;
+      if (!this.tableProperties.equals(that.tableProperties))
+        return false;
+    }
+
     return true;
   }
 
@@ -1280,6 +1390,16 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetTableProperties()).compareTo(typedOther.isSetTableProperties());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTableProperties()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableProperties, typedOther.tableProperties);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -1288,202 +1408,11 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   }
 
   public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    org.apache.thrift.protocol.TField field;
-    iprot.readStructBegin();
-    while (true)
-    {
-      field = iprot.readFieldBegin();
-      if (field.type == org.apache.thrift.protocol.TType.STOP) { 
-        break;
-      }
-      switch (field.id) {
-        case 1: // IS_ENABLED
-          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
-            this.isEnabled = iprot.readBool();
-            setIsEnabledIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 2: // ANALYZER_DEFINITION
-          if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
-            this.analyzerDefinition = new AnalyzerDefinition();
-            this.analyzerDefinition.read(iprot);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 3: // SHARD_COUNT
-          if (field.type == org.apache.thrift.protocol.TType.I32) {
-            this.shardCount = iprot.readI32();
-            setShardCountIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 4: // TABLE_URI
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.tableUri = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 5: // COMPRESSION_CLASS
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.compressionClass = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 6: // COMPRESSION_BLOCK_SIZE
-          if (field.type == org.apache.thrift.protocol.TType.I32) {
-            this.compressionBlockSize = iprot.readI32();
-            setCompressionBlockSizeIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 7: // CLUSTER
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.cluster = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 8: // NAME
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.name = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 9: // SIMILARITY_CLASS
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.similarityClass = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 10: // BLOCK_CACHING
-          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
-            this.blockCaching = iprot.readBool();
-            setBlockCachingIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 11: // BLOCK_CACHING_FILE_TYPES
-          if (field.type == org.apache.thrift.protocol.TType.SET) {
-            {
-              org.apache.thrift.protocol.TSet _set79 = iprot.readSetBegin();
-              this.blockCachingFileTypes = new HashSet<String>(2*_set79.size);
-              for (int _i80 = 0; _i80 < _set79.size; ++_i80)
-              {
-                String _elem81; // required
-                _elem81 = iprot.readString();
-                this.blockCachingFileTypes.add(_elem81);
-              }
-              iprot.readSetEnd();
-            }
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 12: // READ_ONLY
-          if (field.type == org.apache.thrift.protocol.TType.BOOL) {
-            this.readOnly = iprot.readBool();
-            setReadOnlyIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 13: // COLUMN_PRE_CACHE
-          if (field.type == org.apache.thrift.protocol.TType.STRUCT) {
-            this.columnPreCache = new ColumnPreCache();
-            this.columnPreCache.read(iprot);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        default:
-          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-      }
-      iprot.readFieldEnd();
-    }
-    iprot.readStructEnd();
-
-    // check for required fields of primitive type, which can't be checked in the validate method
-    validate();
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
   }
 
   public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    validate();
-
-    oprot.writeStructBegin(STRUCT_DESC);
-    oprot.writeFieldBegin(IS_ENABLED_FIELD_DESC);
-    oprot.writeBool(this.isEnabled);
-    oprot.writeFieldEnd();
-    if (this.analyzerDefinition != null) {
-      oprot.writeFieldBegin(ANALYZER_DEFINITION_FIELD_DESC);
-      this.analyzerDefinition.write(oprot);
-      oprot.writeFieldEnd();
-    }
-    oprot.writeFieldBegin(SHARD_COUNT_FIELD_DESC);
-    oprot.writeI32(this.shardCount);
-    oprot.writeFieldEnd();
-    if (this.tableUri != null) {
-      oprot.writeFieldBegin(TABLE_URI_FIELD_DESC);
-      oprot.writeString(this.tableUri);
-      oprot.writeFieldEnd();
-    }
-    if (this.compressionClass != null) {
-      oprot.writeFieldBegin(COMPRESSION_CLASS_FIELD_DESC);
-      oprot.writeString(this.compressionClass);
-      oprot.writeFieldEnd();
-    }
-    oprot.writeFieldBegin(COMPRESSION_BLOCK_SIZE_FIELD_DESC);
-    oprot.writeI32(this.compressionBlockSize);
-    oprot.writeFieldEnd();
-    if (this.cluster != null) {
-      oprot.writeFieldBegin(CLUSTER_FIELD_DESC);
-      oprot.writeString(this.cluster);
-      oprot.writeFieldEnd();
-    }
-    if (this.name != null) {
-      oprot.writeFieldBegin(NAME_FIELD_DESC);
-      oprot.writeString(this.name);
-      oprot.writeFieldEnd();
-    }
-    if (this.similarityClass != null) {
-      oprot.writeFieldBegin(SIMILARITY_CLASS_FIELD_DESC);
-      oprot.writeString(this.similarityClass);
-      oprot.writeFieldEnd();
-    }
-    oprot.writeFieldBegin(BLOCK_CACHING_FIELD_DESC);
-    oprot.writeBool(this.blockCaching);
-    oprot.writeFieldEnd();
-    if (this.blockCachingFileTypes != null) {
-      oprot.writeFieldBegin(BLOCK_CACHING_FILE_TYPES_FIELD_DESC);
-      {
-        oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, this.blockCachingFileTypes.size()));
-        for (String _iter82 : this.blockCachingFileTypes)
-        {
-          oprot.writeString(_iter82);
-        }
-        oprot.writeSetEnd();
-      }
-      oprot.writeFieldEnd();
-    }
-    oprot.writeFieldBegin(READ_ONLY_FIELD_DESC);
-    oprot.writeBool(this.readOnly);
-    oprot.writeFieldEnd();
-    if (this.columnPreCache != null) {
-      oprot.writeFieldBegin(COLUMN_PRE_CACHE_FIELD_DESC);
-      this.columnPreCache.write(oprot);
-      oprot.writeFieldEnd();
-    }
-    oprot.writeFieldStop();
-    oprot.writeStructEnd();
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
   }
 
   @Override
@@ -1574,12 +1503,27 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
       sb.append(this.columnPreCache);
     }
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("tableProperties:");
+    if (this.tableProperties == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.tableProperties);
+    }
+    first = false;
     sb.append(")");
     return sb.toString();
   }
 
   public void validate() throws org.apache.thrift.TException {
     // check for required fields
+    // check for sub-struct validity
+    if (analyzerDefinition != null) {
+      analyzerDefinition.validate();
+    }
+    if (columnPreCache != null) {
+      columnPreCache.validate();
+    }
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -1593,12 +1537,459 @@ public class TableDescriptor implements org.apache.thrift.TBase<TableDescriptor,
   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_bit_vector = new BitSet(1);
+      __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 TableDescriptorStandardSchemeFactory implements SchemeFactory {
+    public TableDescriptorStandardScheme getScheme() {
+      return new TableDescriptorStandardScheme();
+    }
+  }
+
+  private static class TableDescriptorStandardScheme extends StandardScheme<TableDescriptor> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TableDescriptor 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: // IS_ENABLED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.isEnabled = iprot.readBool();
+              struct.setIsEnabledIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // ANALYZER_DEFINITION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.analyzerDefinition = new AnalyzerDefinition();
+              struct.analyzerDefinition.read(iprot);
+              struct.setAnalyzerDefinitionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // SHARD_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.shardCount = iprot.readI32();
+              struct.setShardCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // TABLE_URI
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tableUri = iprot.readString();
+              struct.setTableUriIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // COMPRESSION_CLASS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.compressionClass = iprot.readString();
+              struct.setCompressionClassIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // COMPRESSION_BLOCK_SIZE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.compressionBlockSize = iprot.readI32();
+              struct.setCompressionBlockSizeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 7: // CLUSTER
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.cluster = iprot.readString();
+              struct.setClusterIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 8: // 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 9: // SIMILARITY_CLASS
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.similarityClass = iprot.readString();
+              struct.setSimilarityClassIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // BLOCK_CACHING
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.blockCaching = iprot.readBool();
+              struct.setBlockCachingIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // BLOCK_CACHING_FILE_TYPES
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set158 = iprot.readSetBegin();
+                struct.blockCachingFileTypes = new HashSet<String>(2*_set158.size);
+                for (int _i159 = 0; _i159 < _set158.size; ++_i159)
+                {
+                  String _elem160; // required
+                  _elem160 = iprot.readString();
+                  struct.blockCachingFileTypes.add(_elem160);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setBlockCachingFileTypesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 12: // READ_ONLY
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.readOnly = iprot.readBool();
+              struct.setReadOnlyIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // COLUMN_PRE_CACHE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.columnPreCache = new ColumnPreCache();
+              struct.columnPreCache.read(iprot);
+              struct.setColumnPreCacheIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 14: // TABLE_PROPERTIES
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map161 = iprot.readMapBegin();
+                struct.tableProperties = new HashMap<String,String>(2*_map161.size);
+                for (int _i162 = 0; _i162 < _map161.size; ++_i162)
+                {
+                  String _key163; // required
+                  String _val164; // optional
+                  _key163 = iprot.readString();
+                  _val164 = iprot.readString();
+                  struct.tableProperties.put(_key163, _val164);
+                }
+                iprot.readMapEnd();
+              }
+              struct.setTablePropertiesIsSet(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();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TableDescriptor struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      oprot.writeFieldBegin(IS_ENABLED_FIELD_DESC);
+      oprot.writeBool(struct.isEnabled);
+      oprot.writeFieldEnd();
+      if (struct.analyzerDefinition != null) {
+        oprot.writeFieldBegin(ANALYZER_DEFINITION_FIELD_DESC);
+        struct.analyzerDefinition.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(SHARD_COUNT_FIELD_DESC);
+      oprot.writeI32(struct.shardCount);
+      oprot.writeFieldEnd();
+      if (struct.tableUri != null) {
+        oprot.writeFieldBegin(TABLE_URI_FIELD_DESC);
+        oprot.writeString(struct.tableUri);
+        oprot.writeFieldEnd();
+      }
+      if (struct.compressionClass != null) {
+        oprot.writeFieldBegin(COMPRESSION_CLASS_FIELD_DESC);
+        oprot.writeString(struct.compressionClass);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(COMPRESSION_BLOCK_SIZE_FIELD_DESC);
+      oprot.writeI32(struct.compressionBlockSize);
+      oprot.writeFieldEnd();
+      if (struct.cluster != null) {
+        oprot.writeFieldBegin(CLUSTER_FIELD_DESC);
+        oprot.writeString(struct.cluster);
+        oprot.writeFieldEnd();
+      }
+      if (struct.name != null) {
+        oprot.writeFieldBegin(NAME_FIELD_DESC);
+        oprot.writeString(struct.name);
+        oprot.writeFieldEnd();
+      }
+      if (struct.similarityClass != null) {
+        oprot.writeFieldBegin(SIMILARITY_CLASS_FIELD_DESC);
+        oprot.writeString(struct.similarityClass);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(BLOCK_CACHING_FIELD_DESC);
+      oprot.writeBool(struct.blockCaching);
+      oprot.writeFieldEnd();
+      if (struct.blockCachingFileTypes != null) {
+        oprot.writeFieldBegin(BLOCK_CACHING_FILE_TYPES_FIELD_DESC);
+        {
+          oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.blockCachingFileTypes.size()));
+          for (String _iter165 : struct.blockCachingFileTypes)
+          {
+            oprot.writeString(_iter165);
+          }
+          oprot.writeSetEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(READ_ONLY_FIELD_DESC);
+      oprot.writeBool(struct.readOnly);
+      oprot.writeFieldEnd();
+      if (struct.columnPreCache != null) {
+        oprot.writeFieldBegin(COLUMN_PRE_CACHE_FIELD_DESC);
+        struct.columnPreCache.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      if (struct.tableProperties != null) {
+        oprot.writeFieldBegin(TABLE_PROPERTIES_FIELD_DESC);
+        {
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.tableProperties.size()));
+          for (Map.Entry<String, String> _iter166 : struct.tableProperties.entrySet())
+          {
+            oprot.writeString(_iter166.getKey());
+            oprot.writeString(_iter166.getValue());
+          }
+          oprot.writeMapEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TableDescriptorTupleSchemeFactory implements SchemeFactory {
+    public TableDescriptorTupleScheme getScheme() {
+      return new TableDescriptorTupleScheme();
+    }
+  }
+
+  private static class TableDescriptorTupleScheme extends TupleScheme<TableDescriptor> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TableDescriptor struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetIsEnabled()) {
+        optionals.set(0);
+      }
+      if (struct.isSetAnalyzerDefinition()) {
+        optionals.set(1);
+      }
+      if (struct.isSetShardCount()) {
+        optionals.set(2);
+      }
+      if (struct.isSetTableUri()) {
+        optionals.set(3);
+      }
+      if (struct.isSetCompressionClass()) {
+        optionals.set(4);
+      }
+      if (struct.isSetCompressionBlockSize()) {
+        optionals.set(5);
+      }
+      if (struct.isSetCluster()) {
+        optionals.set(6);
+      }
+      if (struct.isSetName()) {
+        optionals.set(7);
+      }
+      if (struct.isSetSimilarityClass()) {
+        optionals.set(8);
+      }
+      if (struct.isSetBlockCaching()) {
+        optionals.set(9);
+      }
+      if (struct.isSetBlockCachingFileTypes()) {
+        optionals.set(10);
+      }
+      if (struct.isSetReadOnly()) {
+        optionals.set(11);
+      }
+      if (struct.isSetColumnPreCache()) {
+        optionals.set(12);
+      }
+      if (struct.isSetTableProperties()) {
+        optionals.set(13);
+      }
+      oprot.writeBitSet(optionals, 14);
+      if (struct.isSetIsEnabled()) {
+        oprot.writeBool(struct.isEnabled);
+      }
+      if (struct.isSetAnalyzerDefinition()) {
+        struct.analyzerDefinition.write(oprot);
+      }
+      if (struct.isSetShardCount()) {
+        oprot.writeI32(struct.shardCount);
+      }
+      if (struct.isSetTableUri()) {
+        oprot.writeString(struct.tableUri);
+      }
+      if (struct.isSetCompressionClass()) {
+        oprot.writeString(struct.compressionClass);
+      }
+      if (struct.isSetCompressionBlockSize()) {
+        oprot.writeI32(struct.compressionBlockSize);
+      }
+      if (struct.isSetCluster()) {
+        oprot.writeString(struct.cluster);
+      }
+      if (struct.isSetName()) {
+        oprot.writeString(struct.name);
+      }
+      if (struct.isSetSimilarityClass()) {
+        oprot.writeString(struct.similarityClass);
+      }
+      if (struct.isSetBlockCaching()) {
+        oprot.writeBool(struct.blockCaching);
+      }
+      if (struct.isSetBlockCachingFileTypes()) {
+        {
+          oprot.writeI32(struct.blockCachingFileTypes.size());
+          for (String _iter167 : struct.blockCachingFileTypes)
+          {
+            oprot.writeString(_iter167);
+          }
+        }
+      }
+      if (struct.isSetReadOnly()) {
+        oprot.writeBool(struct.readOnly);
+      }
+      if (struct.isSetColumnPreCache()) {
+        struct.columnPreCache.write(oprot);
+      }
+      if (struct.isSetTableProperties()) {
+        {
+          oprot.writeI32(struct.tableProperties.size());
+          for (Map.Entry<String, String> _iter168 : struct.tableProperties.entrySet())
+          {
+            oprot.writeString(_iter168.getKey());
+            oprot.writeString(_iter168.getValue());
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TableDescriptor struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(14);
+      if (incoming.get(0)) {
+        struct.isEnabled = iprot.readBool();
+        struct.setIsEnabledIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.analyzerDefinition = new AnalyzerDefinition();
+        struct.analyzerDefinition.read(iprot);
+        struct.setAnalyzerDefinitionIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.shardCount = iprot.readI32();
+        struct.setShardCountIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.tableUri = iprot.readString();
+        struct.setTableUriIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.compressionClass = iprot.readString();
+        struct.setCompressionClassIsSet(true);
+      }
+      if (incoming.get(5)) {
+        struct.compressionBlockSize = iprot.readI32();
+        struct.setCompressionBlockSizeIsSet(true);
+      }
+      if (incoming.get(6)) {
+        struct.cluster = iprot.readString();
+        struct.setClusterIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.name = iprot.readString();
+        struct.setNameIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.similarityClass = iprot.readString();
+        struct.setSimilarityClassIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.blockCaching = iprot.readBool();
+        struct.setBlockCachingIsSet(true);
+      }
+      if (incoming.get(10)) {
+        {
+          org.apache.thrift.protocol.TSet _set169 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.blockCachingFileTypes = new HashSet<String>(2*_set169.size);
+          for (int _i170 = 0; _i170 < _set169.size; ++_i170)
+          {
+            String _elem171; // required
+            _elem171 = iprot.readString();
+            struct.blockCachingFileTypes.add(_elem171);
+          }
+        }
+        struct.setBlockCachingFileTypesIsSet(true);
+      }
+      if (incoming.get(11)) {
+        struct.readOnly = iprot.readBool();
+        struct.setReadOnlyIsSet(true);
+      }
+      if (incoming.get(12)) {
+        struct.columnPreCache = new ColumnPreCache();
+        struct.columnPreCache.read(iprot);
+        struct.setColumnPreCacheIsSet(true);
+      }
+      if (incoming.get(13)) {
+        {
+          org.apache.thrift.protocol.TMap _map172 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.tableProperties = new HashMap<String,String>(2*_map172.size);
+          for (int _i173 = 0; _i173 < _map172.size; ++_i173)
+          {
+            String _key174; // required
+            String _val175; // optional
+            _key174 = iprot.readString();
+            _val175 = iprot.readString();
+            struct.tableProperties.put(_key174, _val175);
+          }
+        }
+        struct.setTablePropertiesIsSet(true);
+      }
+    }
+  }
+
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f4c3cc19/interface/gen-java/org/apache/blur/thrift/generated/TableStats.java
----------------------------------------------------------------------
diff --git a/interface/gen-java/org/apache/blur/thrift/generated/TableStats.java b/interface/gen-java/org/apache/blur/thrift/generated/TableStats.java
index f4bae2d..dca3f1d 100644
--- a/interface/gen-java/org/apache/blur/thrift/generated/TableStats.java
+++ b/interface/gen-java/org/apache/blur/thrift/generated/TableStats.java
@@ -1,7 +1,8 @@
 /**
- * Autogenerated by Thrift Compiler (0.7.0)
+ * Autogenerated by Thrift Compiler (0.9.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
  */
 package org.apache.blur.thrift.generated;
 
@@ -24,6 +25,15 @@ package org.apache.blur.thrift.generated;
 
 
 
+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 java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
@@ -51,6 +61,12 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   private static final org.apache.thrift.protocol.TField ROW_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("rowCount", org.apache.thrift.protocol.TType.I64, (short)4);
   private static final org.apache.thrift.protocol.TField QUERIES_FIELD_DESC = new org.apache.thrift.protocol.TField("queries", org.apache.thrift.protocol.TType.I64, (short)5);
 
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new TableStatsStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new TableStatsTupleSchemeFactory());
+  }
+
   /**
    * 
    */
@@ -162,8 +178,7 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   private static final int __RECORDCOUNT_ISSET_ID = 1;
   private static final int __ROWCOUNT_ISSET_ID = 2;
   private static final int __QUERIES_ISSET_ID = 3;
-  private BitSet __isset_bit_vector = new BitSet(4);
-
+  private byte __isset_bitfield = 0;
   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);
@@ -207,8 +222,7 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
    * Performs a deep copy on <i>other</i>.
    */
   public TableStats(TableStats other) {
-    __isset_bit_vector.clear();
-    __isset_bit_vector.or(other.__isset_bit_vector);
+    __isset_bitfield = other.__isset_bitfield;
     if (other.isSetTableName()) {
       this.tableName = other.tableName;
     }
@@ -282,16 +296,16 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   }
 
   public void unsetBytes() {
-    __isset_bit_vector.clear(__BYTES_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __BYTES_ISSET_ID);
   }
 
   /** Returns true if field bytes is set (has been assigned a value) and false otherwise */
   public boolean isSetBytes() {
-    return __isset_bit_vector.get(__BYTES_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __BYTES_ISSET_ID);
   }
 
   public void setBytesIsSet(boolean value) {
-    __isset_bit_vector.set(__BYTES_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __BYTES_ISSET_ID, value);
   }
 
   /**
@@ -311,16 +325,16 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   }
 
   public void unsetRecordCount() {
-    __isset_bit_vector.clear(__RECORDCOUNT_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RECORDCOUNT_ISSET_ID);
   }
 
   /** Returns true if field recordCount is set (has been assigned a value) and false otherwise */
   public boolean isSetRecordCount() {
-    return __isset_bit_vector.get(__RECORDCOUNT_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __RECORDCOUNT_ISSET_ID);
   }
 
   public void setRecordCountIsSet(boolean value) {
-    __isset_bit_vector.set(__RECORDCOUNT_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RECORDCOUNT_ISSET_ID, value);
   }
 
   /**
@@ -340,16 +354,16 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   }
 
   public void unsetRowCount() {
-    __isset_bit_vector.clear(__ROWCOUNT_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __ROWCOUNT_ISSET_ID);
   }
 
   /** Returns true if field rowCount is set (has been assigned a value) and false otherwise */
   public boolean isSetRowCount() {
-    return __isset_bit_vector.get(__ROWCOUNT_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __ROWCOUNT_ISSET_ID);
   }
 
   public void setRowCountIsSet(boolean value) {
-    __isset_bit_vector.set(__ROWCOUNT_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __ROWCOUNT_ISSET_ID, value);
   }
 
   /**
@@ -369,16 +383,16 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   }
 
   public void unsetQueries() {
-    __isset_bit_vector.clear(__QUERIES_ISSET_ID);
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __QUERIES_ISSET_ID);
   }
 
   /** Returns true if field queries is set (has been assigned a value) and false otherwise */
   public boolean isSetQueries() {
-    return __isset_bit_vector.get(__QUERIES_ISSET_ID);
+    return EncodingUtils.testBit(__isset_bitfield, __QUERIES_ISSET_ID);
   }
 
   public void setQueriesIsSet(boolean value) {
-    __isset_bit_vector.set(__QUERIES_ISSET_ID, value);
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __QUERIES_ISSET_ID, value);
   }
 
   public void setFieldValue(_Fields field, Object value) {
@@ -600,88 +614,11 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   }
 
   public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    org.apache.thrift.protocol.TField field;
-    iprot.readStructBegin();
-    while (true)
-    {
-      field = iprot.readFieldBegin();
-      if (field.type == org.apache.thrift.protocol.TType.STOP) { 
-        break;
-      }
-      switch (field.id) {
-        case 1: // TABLE_NAME
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.tableName = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 2: // BYTES
-          if (field.type == org.apache.thrift.protocol.TType.I64) {
-            this.bytes = iprot.readI64();
-            setBytesIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 3: // RECORD_COUNT
-          if (field.type == org.apache.thrift.protocol.TType.I64) {
-            this.recordCount = iprot.readI64();
-            setRecordCountIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 4: // ROW_COUNT
-          if (field.type == org.apache.thrift.protocol.TType.I64) {
-            this.rowCount = iprot.readI64();
-            setRowCountIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 5: // QUERIES
-          if (field.type == org.apache.thrift.protocol.TType.I64) {
-            this.queries = iprot.readI64();
-            setQueriesIsSet(true);
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        default:
-          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-      }
-      iprot.readFieldEnd();
-    }
-    iprot.readStructEnd();
-
-    // check for required fields of primitive type, which can't be checked in the validate method
-    validate();
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
   }
 
   public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    validate();
-
-    oprot.writeStructBegin(STRUCT_DESC);
-    if (this.tableName != null) {
-      oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
-      oprot.writeString(this.tableName);
-      oprot.writeFieldEnd();
-    }
-    oprot.writeFieldBegin(BYTES_FIELD_DESC);
-    oprot.writeI64(this.bytes);
-    oprot.writeFieldEnd();
-    oprot.writeFieldBegin(RECORD_COUNT_FIELD_DESC);
-    oprot.writeI64(this.recordCount);
-    oprot.writeFieldEnd();
-    oprot.writeFieldBegin(ROW_COUNT_FIELD_DESC);
-    oprot.writeI64(this.rowCount);
-    oprot.writeFieldEnd();
-    oprot.writeFieldBegin(QUERIES_FIELD_DESC);
-    oprot.writeI64(this.queries);
-    oprot.writeFieldEnd();
-    oprot.writeFieldStop();
-    oprot.writeStructEnd();
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
   }
 
   @Override
@@ -718,6 +655,7 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
 
   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 {
@@ -731,12 +669,180 @@ public class TableStats implements org.apache.thrift.TBase<TableStats, TableStat
   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_bit_vector = new BitSet(1);
+      __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 TableStatsStandardSchemeFactory implements SchemeFactory {
+    public TableStatsStandardScheme getScheme() {
+      return new TableStatsStandardScheme();
+    }
+  }
+
+  private static class TableStatsStandardScheme extends StandardScheme<TableStats> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, TableStats 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_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.tableName = iprot.readString();
+              struct.setTableNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // BYTES
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.bytes = iprot.readI64();
+              struct.setBytesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // RECORD_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.recordCount = iprot.readI64();
+              struct.setRecordCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // ROW_COUNT
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.rowCount = iprot.readI64();
+              struct.setRowCountIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // QUERIES
+            if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+              struct.queries = iprot.readI64();
+              struct.setQueriesIsSet(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();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, TableStats struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.tableName != null) {
+        oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
+        oprot.writeString(struct.tableName);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldBegin(BYTES_FIELD_DESC);
+      oprot.writeI64(struct.bytes);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(RECORD_COUNT_FIELD_DESC);
+      oprot.writeI64(struct.recordCount);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(ROW_COUNT_FIELD_DESC);
+      oprot.writeI64(struct.rowCount);
+      oprot.writeFieldEnd();
+      oprot.writeFieldBegin(QUERIES_FIELD_DESC);
+      oprot.writeI64(struct.queries);
+      oprot.writeFieldEnd();
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class TableStatsTupleSchemeFactory implements SchemeFactory {
+    public TableStatsTupleScheme getScheme() {
+      return new TableStatsTupleScheme();
+    }
+  }
+
+  private static class TableStatsTupleScheme extends TupleScheme<TableStats> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, TableStats struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetTableName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetBytes()) {
+        optionals.set(1);
+      }
+      if (struct.isSetRecordCount()) {
+        optionals.set(2);
+      }
+      if (struct.isSetRowCount()) {
+        optionals.set(3);
+      }
+      if (struct.isSetQueries()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetTableName()) {
+        oprot.writeString(struct.tableName);
+      }
+      if (struct.isSetBytes()) {
+        oprot.writeI64(struct.bytes);
+      }
+      if (struct.isSetRecordCount()) {
+        oprot.writeI64(struct.recordCount);
+      }
+      if (struct.isSetRowCount()) {
+        oprot.writeI64(struct.rowCount);
+      }
+      if (struct.isSetQueries()) {
+        oprot.writeI64(struct.queries);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, TableStats struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(5);
+      if (incoming.get(0)) {
+        struct.tableName = iprot.readString();
+        struct.setTableNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.bytes = iprot.readI64();
+        struct.setBytesIsSet(true);
+      }
+      if (incoming.get(2)) {
+        struct.recordCount = iprot.readI64();
+        struct.setRecordCountIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.rowCount = iprot.readI64();
+        struct.setRowCountIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.queries = iprot.readI64();
+        struct.setQueriesIsSet(true);
+      }
+    }
+  }
+
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f4c3cc19/interface/gen-perl/Blur/Blur.pm
----------------------------------------------------------------------
diff --git a/interface/gen-perl/Blur/Blur.pm b/interface/gen-perl/Blur/Blur.pm
index b260d03..068063b 100644
--- a/interface/gen-perl/Blur/Blur.pm
+++ b/interface/gen-perl/Blur/Blur.pm
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.7.0)
+# Autogenerated by Thrift Compiler (0.9.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
@@ -100,15 +100,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size147 = 0;
+          my $_size156 = 0;
           $self->{success} = [];
-          my $_etype150 = 0;
-          $xfer += $input->readListBegin(\$_etype150, \$_size147);
-          for (my $_i151 = 0; $_i151 < $_size147; ++$_i151)
+          my $_etype159 = 0;
+          $xfer += $input->readListBegin(\$_etype159, \$_size156);
+          for (my $_i160 = 0; $_i160 < $_size156; ++$_i160)
           {
-            my $elem152 = undef;
-            $xfer += $input->readString(\$elem152);
-            push(@{$self->{success}},$elem152);
+            my $elem161 = undef;
+            $xfer += $input->readString(\$elem161);
+            push(@{$self->{success}},$elem161);
           }
           $xfer += $input->readListEnd();
         }
@@ -140,9 +140,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter153 (@{$self->{success}}) 
+        foreach my $iter162 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter153);
+          $xfer += $output->writeString($iter162);
         }
       }
       $xfer += $output->writeListEnd();
@@ -265,15 +265,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size154 = 0;
+          my $_size163 = 0;
           $self->{success} = [];
-          my $_etype157 = 0;
-          $xfer += $input->readListBegin(\$_etype157, \$_size154);
-          for (my $_i158 = 0; $_i158 < $_size154; ++$_i158)
+          my $_etype166 = 0;
+          $xfer += $input->readListBegin(\$_etype166, \$_size163);
+          for (my $_i167 = 0; $_i167 < $_size163; ++$_i167)
           {
-            my $elem159 = undef;
-            $xfer += $input->readString(\$elem159);
-            push(@{$self->{success}},$elem159);
+            my $elem168 = undef;
+            $xfer += $input->readString(\$elem168);
+            push(@{$self->{success}},$elem168);
           }
           $xfer += $input->readListEnd();
         }
@@ -305,9 +305,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter160 (@{$self->{success}}) 
+        foreach my $iter169 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter160);
+          $xfer += $output->writeString($iter169);
         }
       }
       $xfer += $output->writeListEnd();
@@ -412,15 +412,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size161 = 0;
+          my $_size170 = 0;
           $self->{success} = [];
-          my $_etype164 = 0;
-          $xfer += $input->readListBegin(\$_etype164, \$_size161);
-          for (my $_i165 = 0; $_i165 < $_size161; ++$_i165)
+          my $_etype173 = 0;
+          $xfer += $input->readListBegin(\$_etype173, \$_size170);
+          for (my $_i174 = 0; $_i174 < $_size170; ++$_i174)
           {
-            my $elem166 = undef;
-            $xfer += $input->readString(\$elem166);
-            push(@{$self->{success}},$elem166);
+            my $elem175 = undef;
+            $xfer += $input->readString(\$elem175);
+            push(@{$self->{success}},$elem175);
           }
           $xfer += $input->readListEnd();
         }
@@ -452,9 +452,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter167 (@{$self->{success}}) 
+        foreach my $iter176 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter167);
+          $xfer += $output->writeString($iter176);
         }
       }
       $xfer += $output->writeListEnd();
@@ -577,18 +577,18 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::MAP) {
         {
-          my $_size168 = 0;
+          my $_size177 = 0;
           $self->{success} = {};
-          my $_ktype169 = 0;
-          my $_vtype170 = 0;
-          $xfer += $input->readMapBegin(\$_ktype169, \$_vtype170, \$_size168);
-          for (my $_i172 = 0; $_i172 < $_size168; ++$_i172)
+          my $_ktype178 = 0;
+          my $_vtype179 = 0;
+          $xfer += $input->readMapBegin(\$_ktype178, \$_vtype179, \$_size177);
+          for (my $_i181 = 0; $_i181 < $_size177; ++$_i181)
           {
-            my $key173 = '';
-            my $val174 = '';
-            $xfer += $input->readString(\$key173);
-            $xfer += $input->readString(\$val174);
-            $self->{success}->{$key173} = $val174;
+            my $key182 = '';
+            my $val183 = '';
+            $xfer += $input->readString(\$key182);
+            $xfer += $input->readString(\$val183);
+            $self->{success}->{$key182} = $val183;
           }
           $xfer += $input->readMapEnd();
         }
@@ -620,10 +620,10 @@ sub write {
     {
       $xfer += $output->writeMapBegin(TType::STRING, TType::STRING, scalar(keys %{$self->{success}}));
       {
-        while( my ($kiter175,$viter176) = each %{$self->{success}}) 
+        while( my ($kiter184,$viter185) = each %{$self->{success}}) 
         {
-          $xfer += $output->writeString($kiter175);
-          $xfer += $output->writeString($viter176);
+          $xfer += $output->writeString($kiter184);
+          $xfer += $output->writeString($viter185);
         }
       }
       $xfer += $output->writeMapEnd();
@@ -728,15 +728,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size177 = 0;
+          my $_size186 = 0;
           $self->{success} = [];
-          my $_etype180 = 0;
-          $xfer += $input->readListBegin(\$_etype180, \$_size177);
-          for (my $_i181 = 0; $_i181 < $_size177; ++$_i181)
+          my $_etype189 = 0;
+          $xfer += $input->readListBegin(\$_etype189, \$_size186);
+          for (my $_i190 = 0; $_i190 < $_size186; ++$_i190)
           {
-            my $elem182 = undef;
-            $xfer += $input->readString(\$elem182);
-            push(@{$self->{success}},$elem182);
+            my $elem191 = undef;
+            $xfer += $input->readString(\$elem191);
+            push(@{$self->{success}},$elem191);
           }
           $xfer += $input->readListEnd();
         }
@@ -768,9 +768,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter183 (@{$self->{success}}) 
+        foreach my $iter192 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter183);
+          $xfer += $output->writeString($iter192);
         }
       }
       $xfer += $output->writeListEnd();
@@ -893,15 +893,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size184 = 0;
+          my $_size193 = 0;
           $self->{success} = [];
-          my $_etype187 = 0;
-          $xfer += $input->readListBegin(\$_etype187, \$_size184);
-          for (my $_i188 = 0; $_i188 < $_size184; ++$_i188)
+          my $_etype196 = 0;
+          $xfer += $input->readListBegin(\$_etype196, \$_size193);
+          for (my $_i197 = 0; $_i197 < $_size193; ++$_i197)
           {
-            my $elem189 = undef;
-            $xfer += $input->readString(\$elem189);
-            push(@{$self->{success}},$elem189);
+            my $elem198 = undef;
+            $xfer += $input->readString(\$elem198);
+            push(@{$self->{success}},$elem198);
           }
           $xfer += $input->readListEnd();
         }
@@ -933,9 +933,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter190 (@{$self->{success}}) 
+        foreach my $iter199 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter190);
+          $xfer += $output->writeString($iter199);
         }
       }
       $xfer += $output->writeListEnd();
@@ -1508,16 +1508,16 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size191 = 0;
+          my $_size200 = 0;
           $self->{success} = [];
-          my $_etype194 = 0;
-          $xfer += $input->readListBegin(\$_etype194, \$_size191);
-          for (my $_i195 = 0; $_i195 < $_size191; ++$_i195)
+          my $_etype203 = 0;
+          $xfer += $input->readListBegin(\$_etype203, \$_size200);
+          for (my $_i204 = 0; $_i204 < $_size200; ++$_i204)
           {
-            my $elem196 = undef;
-            $elem196 = new Blur::BlurQueryStatus();
-            $xfer += $elem196->read($input);
-            push(@{$self->{success}},$elem196);
+            my $elem205 = undef;
+            $elem205 = new Blur::BlurQueryStatus();
+            $xfer += $elem205->read($input);
+            push(@{$self->{success}},$elem205);
           }
           $xfer += $input->readListEnd();
         }
@@ -1549,9 +1549,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{success}}));
       {
-        foreach my $iter197 (@{$self->{success}}) 
+        foreach my $iter206 (@{$self->{success}}) 
         {
-          $xfer += ${iter197}->write($output);
+          $xfer += ${iter206}->write($output);
         }
       }
       $xfer += $output->writeListEnd();
@@ -1674,15 +1674,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size198 = 0;
+          my $_size207 = 0;
           $self->{success} = [];
-          my $_etype201 = 0;
-          $xfer += $input->readListBegin(\$_etype201, \$_size198);
-          for (my $_i202 = 0; $_i202 < $_size198; ++$_i202)
+          my $_etype210 = 0;
+          $xfer += $input->readListBegin(\$_etype210, \$_size207);
+          for (my $_i211 = 0; $_i211 < $_size207; ++$_i211)
           {
-            my $elem203 = undef;
-            $xfer += $input->readI64(\$elem203);
-            push(@{$self->{success}},$elem203);
+            my $elem212 = undef;
+            $xfer += $input->readI64(\$elem212);
+            push(@{$self->{success}},$elem212);
           }
           $xfer += $input->readListEnd();
         }
@@ -1714,9 +1714,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::I64, scalar(@{$self->{success}}));
       {
-        foreach my $iter204 (@{$self->{success}}) 
+        foreach my $iter213 (@{$self->{success}}) 
         {
-          $xfer += $output->writeI64($iter204);
+          $xfer += $output->writeI64($iter213);
         }
       }
       $xfer += $output->writeListEnd();
@@ -2494,15 +2494,15 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size205 = 0;
+          my $_size214 = 0;
           $self->{success} = [];
-          my $_etype208 = 0;
-          $xfer += $input->readListBegin(\$_etype208, \$_size205);
-          for (my $_i209 = 0; $_i209 < $_size205; ++$_i209)
+          my $_etype217 = 0;
+          $xfer += $input->readListBegin(\$_etype217, \$_size214);
+          for (my $_i218 = 0; $_i218 < $_size214; ++$_i218)
           {
-            my $elem210 = undef;
-            $xfer += $input->readString(\$elem210);
-            push(@{$self->{success}},$elem210);
+            my $elem219 = undef;
+            $xfer += $input->readString(\$elem219);
+            push(@{$self->{success}},$elem219);
           }
           $xfer += $input->readListEnd();
         }
@@ -2534,9 +2534,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRING, scalar(@{$self->{success}}));
       {
-        foreach my $iter211 (@{$self->{success}}) 
+        foreach my $iter220 (@{$self->{success}}) 
         {
-          $xfer += $output->writeString($iter211);
+          $xfer += $output->writeString($iter220);
         }
       }
       $xfer += $output->writeListEnd();
@@ -3071,16 +3071,16 @@ sub read {
     {
       /^1$/ && do{      if ($ftype == TType::LIST) {
         {
-          my $_size212 = 0;
+          my $_size221 = 0;
           $self->{mutations} = [];
-          my $_etype215 = 0;
-          $xfer += $input->readListBegin(\$_etype215, \$_size212);
-          for (my $_i216 = 0; $_i216 < $_size212; ++$_i216)
+          my $_etype224 = 0;
+          $xfer += $input->readListBegin(\$_etype224, \$_size221);
+          for (my $_i225 = 0; $_i225 < $_size221; ++$_i225)
           {
-            my $elem217 = undef;
-            $elem217 = new Blur::RowMutation();
-            $xfer += $elem217->read($input);
-            push(@{$self->{mutations}},$elem217);
+            my $elem226 = undef;
+            $elem226 = new Blur::RowMutation();
+            $xfer += $elem226->read($input);
+            push(@{$self->{mutations}},$elem226);
           }
           $xfer += $input->readListEnd();
         }
@@ -3105,9 +3105,9 @@ sub write {
     {
       $xfer += $output->writeListBegin(TType::STRUCT, scalar(@{$self->{mutations}}));
       {
-        foreach my $iter218 (@{$self->{mutations}}) 
+        foreach my $iter227 (@{$self->{mutations}}) 
         {
-          $xfer += ${iter218}->write($output);
+          $xfer += ${iter227}->write($output);
         }
       }
       $xfer += $output->writeListEnd();
@@ -4092,18 +4092,18 @@ sub read {
     {
       /^0$/ && do{      if ($ftype == TType::MAP) {
         {
-          my $_size219 = 0;
+          my $_size228 = 0;
           $self->{success} = {};
-          my $_ktype220 = 0;
-          my $_vtype221 = 0;
-          $xfer += $input->readMapBegin(\$_ktype220, \$_vtype221, \$_size219);
-          for (my $_i223 = 0; $_i223 < $_size219; ++$_i223)
+          my $_ktype229 = 0;
+          my $_vtype230 = 0;
+          $xfer += $input->readMapBegin(\$_ktype229, \$_vtype230, \$_size228);
+          for (my $_i232 = 0; $_i232 < $_size228; ++$_i232)
           {
-            my $key224 = '';
-            my $val225 = '';
-            $xfer += $input->readString(\$key224);
-            $xfer += $input->readString(\$val225);
-            $self->{success}->{$key224} = $val225;
+            my $key233 = '';
+            my $val234 = '';
+            $xfer += $input->readString(\$key233);
+            $xfer += $input->readString(\$val234);
+            $self->{success}->{$key233} = $val234;
           }
           $xfer += $input->readMapEnd();
         }
@@ -4135,10 +4135,10 @@ sub write {
     {
       $xfer += $output->writeMapBegin(TType::STRING, TType::STRING, scalar(keys %{$self->{success}}));
       {
-        while( my ($kiter226,$viter227) = each %{$self->{success}}) 
+        while( my ($kiter235,$viter236) = each %{$self->{success}}) 
         {
-          $xfer += $output->writeString($kiter226);
-          $xfer += $output->writeString($viter227);
+          $xfer += $output->writeString($kiter235);
+          $xfer += $output->writeString($viter236);
         }
       }
       $xfer += $output->writeMapEnd();

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f4c3cc19/interface/gen-perl/Blur/Constants.pm
----------------------------------------------------------------------
diff --git a/interface/gen-perl/Blur/Constants.pm b/interface/gen-perl/Blur/Constants.pm
index 45fce92..c8e01e3 100644
--- a/interface/gen-perl/Blur/Constants.pm
+++ b/interface/gen-perl/Blur/Constants.pm
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.7.0)
+# Autogenerated by Thrift Compiler (0.9.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/f4c3cc19/interface/gen-perl/Blur/Types.pm
----------------------------------------------------------------------
diff --git a/interface/gen-perl/Blur/Types.pm b/interface/gen-perl/Blur/Types.pm
index 32bfd09..ffaed44 100644
--- a/interface/gen-perl/Blur/Types.pm
+++ b/interface/gen-perl/Blur/Types.pm
@@ -1,5 +1,5 @@
 #
-# Autogenerated by Thrift Compiler (0.7.0)
+# Autogenerated by Thrift Compiler (0.9.0)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
@@ -3048,7 +3048,7 @@ sub write {
 
 package Blur::TableDescriptor;
 use base qw(Class::Accessor);
-Blur::TableDescriptor->mk_accessors( qw( isEnabled analyzerDefinition shardCount tableUri compressionClass compressionBlockSize cluster name similarityClass blockCaching blockCachingFileTypes readOnly columnPreCache ) );
+Blur::TableDescriptor->mk_accessors( qw( isEnabled analyzerDefinition shardCount tableUri compressionClass compressionBlockSize cluster name similarityClass blockCaching blockCachingFileTypes readOnly columnPreCache tableProperties ) );
 
 sub new {
   my $classname = shift;
@@ -3067,6 +3067,7 @@ sub new {
   $self->{blockCachingFileTypes} = undef;
   $self->{readOnly} = 0;
   $self->{columnPreCache} = undef;
+  $self->{tableProperties} = undef;
   if (UNIVERSAL::isa($vals,'HASH')) {
     if (defined $vals->{isEnabled}) {
       $self->{isEnabled} = $vals->{isEnabled};
@@ -3107,6 +3108,9 @@ sub new {
     if (defined $vals->{columnPreCache}) {
       $self->{columnPreCache} = $vals->{columnPreCache};
     }
+    if (defined $vals->{tableProperties}) {
+      $self->{tableProperties} = $vals->{tableProperties};
+    }
   }
   return bless ($self, $classname);
 }
@@ -3222,6 +3226,27 @@ sub read {
         $xfer += $input->skip($ftype);
       }
       last; };
+      /^14$/ && do{      if ($ftype == TType::MAP) {
+        {
+          my $_size146 = 0;
+          $self->{tableProperties} = {};
+          my $_ktype147 = 0;
+          my $_vtype148 = 0;
+          $xfer += $input->readMapBegin(\$_ktype147, \$_vtype148, \$_size146);
+          for (my $_i150 = 0; $_i150 < $_size146; ++$_i150)
+          {
+            my $key151 = '';
+            my $val152 = '';
+            $xfer += $input->readString(\$key151);
+            $xfer += $input->readString(\$val152);
+            $self->{tableProperties}->{$key151} = $val152;
+          }
+          $xfer += $input->readMapEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
         $xfer += $input->skip($ftype);
     }
     $xfer += $input->readFieldEnd();
@@ -3289,9 +3314,9 @@ sub write {
     {
       $xfer += $output->writeSetBegin(TType::STRING, scalar(@{$self->{blockCachingFileTypes}}));
       {
-        foreach my $iter146 (@{$self->{blockCachingFileTypes}})
+        foreach my $iter153 (@{$self->{blockCachingFileTypes}})
         {
-          $xfer += $output->writeString($iter146);
+          $xfer += $output->writeString($iter153);
         }
       }
       $xfer += $output->writeSetEnd();
@@ -3308,6 +3333,21 @@ sub write {
     $xfer += $self->{columnPreCache}->write($output);
     $xfer += $output->writeFieldEnd();
   }
+  if (defined $self->{tableProperties}) {
+    $xfer += $output->writeFieldBegin('tableProperties', TType::MAP, 14);
+    {
+      $xfer += $output->writeMapBegin(TType::STRING, TType::STRING, scalar(keys %{$self->{tableProperties}}));
+      {
+        while( my ($kiter154,$viter155) = each %{$self->{tableProperties}}) 
+        {
+          $xfer += $output->writeString($kiter154);
+          $xfer += $output->writeString($viter155);
+        }
+      }
+      $xfer += $output->writeMapEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
   $xfer += $output->writeFieldStop();
   $xfer += $output->writeStructEnd();
   return $xfer;


Mime
View raw message