You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by vi...@apache.org on 2013/05/17 03:20:11 UTC

[2/4] Cassandra Triggers! patch by Vijay; reviewed by Jonathan Ellis for CASSANDRA-1311

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
index 09add15..2155b8e 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
@@ -82,6 +82,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
   private static final org.apache.thrift.protocol.TField DEFAULT_TIME_TO_LIVE_FIELD_DESC = new org.apache.thrift.protocol.TField("default_time_to_live", org.apache.thrift.protocol.TType.I32, (short)40);
   private static final org.apache.thrift.protocol.TField INDEX_INTERVAL_FIELD_DESC = new org.apache.thrift.protocol.TField("index_interval", org.apache.thrift.protocol.TType.I32, (short)41);
   private static final org.apache.thrift.protocol.TField SPECULATIVE_RETRY_FIELD_DESC = new org.apache.thrift.protocol.TField("speculative_retry", org.apache.thrift.protocol.TType.STRING, (short)42);
+  private static final org.apache.thrift.protocol.TField TRIGGER_CLASS_FIELD_DESC = new org.apache.thrift.protocol.TField("trigger_class", org.apache.thrift.protocol.TType.SET, (short)43);
   private static final org.apache.thrift.protocol.TField ROW_CACHE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("row_cache_size", org.apache.thrift.protocol.TType.DOUBLE, (short)9);
   private static final org.apache.thrift.protocol.TField KEY_CACHE_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("key_cache_size", org.apache.thrift.protocol.TType.DOUBLE, (short)11);
   private static final org.apache.thrift.protocol.TField ROW_CACHE_SAVE_PERIOD_IN_SECONDS_FIELD_DESC = new org.apache.thrift.protocol.TField("row_cache_save_period_in_seconds", org.apache.thrift.protocol.TType.I32, (short)19);
@@ -126,6 +127,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
   public int default_time_to_live; // optional
   public int index_interval; // optional
   public String speculative_retry; // optional
+  public Set<String> trigger_class; // optional
   /**
    * @deprecated
    */
@@ -196,6 +198,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
     DEFAULT_TIME_TO_LIVE((short)40, "default_time_to_live"),
     INDEX_INTERVAL((short)41, "index_interval"),
     SPECULATIVE_RETRY((short)42, "speculative_retry"),
+    TRIGGER_CLASS((short)43, "trigger_class"),
     /**
      * @deprecated
      */
@@ -304,6 +307,8 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
           return INDEX_INTERVAL;
         case 42: // SPECULATIVE_RETRY
           return SPECULATIVE_RETRY;
+        case 43: // TRIGGER_CLASS
+          return TRIGGER_CLASS;
         case 9: // ROW_CACHE_SIZE
           return ROW_CACHE_SIZE;
         case 11: // KEY_CACHE_SIZE
@@ -386,7 +391,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
   private static final int __MERGE_SHARDS_CHANCE_ISSET_ID = 19;
   private static final int __ROW_CACHE_KEYS_TO_SAVE_ISSET_ID = 20;
   private int __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.COLUMN_TYPE,_Fields.COMPARATOR_TYPE,_Fields.SUBCOMPARATOR_TYPE,_Fields.COMMENT,_Fields.READ_REPAIR_CHANCE,_Fields.COLUMN_METADATA,_Fields.GC_GRACE_SECONDS,_Fields.DEFAULT_VALIDATION_CLASS,_Fields.ID,_Fields.MIN_COMPACTION_THRESHOLD,_Fields.MAX_COMPACTION_THRESHOLD,_Fields.REPLICATE_ON_WRITE,_Fields.KEY_VALIDATION_CLASS,_Fields.KEY_ALIAS,_Fields.COMPACTION_STRATEGY,_Fields.COMPACTION_STRATEGY_OPTIONS,_Fields.COMPRESSION_OPTIONS,_Fields.BLOOM_FILTER_FP_CHANCE,_Fields.CACHING,_Fields.DCLOCAL_READ_REPAIR_CHANCE,_Fields.POPULATE_IO_CACHE_ON_FLUSH,_Fields.MEMTABLE_FLUSH_PERIOD_IN_MS,_Fields.DEFAULT_TIME_TO_LIVE,_Fields.INDEX_INTERVAL,_Fields.SPECULATIVE_RETRY,_Fields.ROW_CACHE_SIZE,_Fields.KEY_CACHE_SIZE,_Fields.ROW_CACHE_SAVE_PERIOD_IN_SECONDS,_Fields.KEY_CACHE_SAVE_PERIOD_IN_SECONDS,_Fields.MEMTABLE_FLUSH_AFTER_MINS,_Fields.MEMTABLE_THROUGHPUT_IN_MB,_Fields.MEMTABLE_OPERATIONS_IN_MILLIONS,_Fields.MERGE_SHARDS_CHANCE,_Fields.ROW_CACHE_PROVIDER,_Fi
 elds.ROW_CACHE_KEYS_TO_SAVE};
+  private _Fields optionals[] = {_Fields.COLUMN_TYPE,_Fields.COMPARATOR_TYPE,_Fields.SUBCOMPARATOR_TYPE,_Fields.COMMENT,_Fields.READ_REPAIR_CHANCE,_Fields.COLUMN_METADATA,_Fields.GC_GRACE_SECONDS,_Fields.DEFAULT_VALIDATION_CLASS,_Fields.ID,_Fields.MIN_COMPACTION_THRESHOLD,_Fields.MAX_COMPACTION_THRESHOLD,_Fields.REPLICATE_ON_WRITE,_Fields.KEY_VALIDATION_CLASS,_Fields.KEY_ALIAS,_Fields.COMPACTION_STRATEGY,_Fields.COMPACTION_STRATEGY_OPTIONS,_Fields.COMPRESSION_OPTIONS,_Fields.BLOOM_FILTER_FP_CHANCE,_Fields.CACHING,_Fields.DCLOCAL_READ_REPAIR_CHANCE,_Fields.POPULATE_IO_CACHE_ON_FLUSH,_Fields.MEMTABLE_FLUSH_PERIOD_IN_MS,_Fields.DEFAULT_TIME_TO_LIVE,_Fields.INDEX_INTERVAL,_Fields.SPECULATIVE_RETRY,_Fields.TRIGGER_CLASS,_Fields.ROW_CACHE_SIZE,_Fields.KEY_CACHE_SIZE,_Fields.ROW_CACHE_SAVE_PERIOD_IN_SECONDS,_Fields.KEY_CACHE_SAVE_PERIOD_IN_SECONDS,_Fields.MEMTABLE_FLUSH_AFTER_MINS,_Fields.MEMTABLE_THROUGHPUT_IN_MB,_Fields.MEMTABLE_OPERATIONS_IN_MILLIONS,_Fields.MERGE_SHARDS_CHANCE,_Fields.
 ROW_CACHE_PROVIDER,_Fields.ROW_CACHE_KEYS_TO_SAVE};
   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);
@@ -449,6 +454,9 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     tmpMap.put(_Fields.SPECULATIVE_RETRY, new org.apache.thrift.meta_data.FieldMetaData("speculative_retry", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.TRIGGER_CLASS, new org.apache.thrift.meta_data.FieldMetaData("trigger_class", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
     tmpMap.put(_Fields.ROW_CACHE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("row_cache_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
     tmpMap.put(_Fields.KEY_CACHE_SIZE, new org.apache.thrift.meta_data.FieldMetaData("key_cache_size", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -586,6 +594,13 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
     if (other.isSetSpeculative_retry()) {
       this.speculative_retry = other.speculative_retry;
     }
+    if (other.isSetTrigger_class()) {
+      Set<String> __this__trigger_class = new HashSet<String>();
+      for (String other_element : other.trigger_class) {
+        __this__trigger_class.add(other_element);
+      }
+      this.trigger_class = __this__trigger_class;
+    }
     this.row_cache_size = other.row_cache_size;
     this.key_cache_size = other.key_cache_size;
     this.row_cache_save_period_in_seconds = other.row_cache_save_period_in_seconds;
@@ -649,6 +664,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
     this.index_interval = 0;
     this.speculative_retry = "NONE";
 
+    this.trigger_class = null;
     setRow_cache_sizeIsSet(false);
     this.row_cache_size = 0.0;
     setKey_cache_sizeIsSet(false);
@@ -1353,6 +1369,45 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
     }
   }
 
+  public int getTrigger_classSize() {
+    return (this.trigger_class == null) ? 0 : this.trigger_class.size();
+  }
+
+  public java.util.Iterator<String> getTrigger_classIterator() {
+    return (this.trigger_class == null) ? null : this.trigger_class.iterator();
+  }
+
+  public void addToTrigger_class(String elem) {
+    if (this.trigger_class == null) {
+      this.trigger_class = new HashSet<String>();
+    }
+    this.trigger_class.add(elem);
+  }
+
+  public Set<String> getTrigger_class() {
+    return this.trigger_class;
+  }
+
+  public CfDef setTrigger_class(Set<String> trigger_class) {
+    this.trigger_class = trigger_class;
+    return this;
+  }
+
+  public void unsetTrigger_class() {
+    this.trigger_class = null;
+  }
+
+  /** Returns true if field trigger_class is set (has been assigned a value) and false otherwise */
+  public boolean isSetTrigger_class() {
+    return this.trigger_class != null;
+  }
+
+  public void setTrigger_classIsSet(boolean value) {
+    if (!value) {
+      this.trigger_class = null;
+    }
+  }
+
   /**
    * @deprecated
    */
@@ -1862,6 +1917,14 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       }
       break;
 
+    case TRIGGER_CLASS:
+      if (value == null) {
+        unsetTrigger_class();
+      } else {
+        setTrigger_class((Set<String>)value);
+      }
+      break;
+
     case ROW_CACHE_SIZE:
       if (value == null) {
         unsetRow_cache_size();
@@ -2028,6 +2091,9 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
     case SPECULATIVE_RETRY:
       return getSpeculative_retry();
 
+    case TRIGGER_CLASS:
+      return getTrigger_class();
+
     case ROW_CACHE_SIZE:
       return Double.valueOf(getRow_cache_size());
 
@@ -2123,6 +2189,8 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       return isSetIndex_interval();
     case SPECULATIVE_RETRY:
       return isSetSpeculative_retry();
+    case TRIGGER_CLASS:
+      return isSetTrigger_class();
     case ROW_CACHE_SIZE:
       return isSetRow_cache_size();
     case KEY_CACHE_SIZE:
@@ -2403,6 +2471,15 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
         return false;
     }
 
+    boolean this_present_trigger_class = true && this.isSetTrigger_class();
+    boolean that_present_trigger_class = true && that.isSetTrigger_class();
+    if (this_present_trigger_class || that_present_trigger_class) {
+      if (!(this_present_trigger_class && that_present_trigger_class))
+        return false;
+      if (!this.trigger_class.equals(that.trigger_class))
+        return false;
+    }
+
     boolean this_present_row_cache_size = true && this.isSetRow_cache_size();
     boolean that_present_row_cache_size = true && that.isSetRow_cache_size();
     if (this_present_row_cache_size || that_present_row_cache_size) {
@@ -2635,6 +2712,11 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
     if (present_speculative_retry)
       builder.append(speculative_retry);
 
+    boolean present_trigger_class = true && (isSetTrigger_class());
+    builder.append(present_trigger_class);
+    if (present_trigger_class)
+      builder.append(trigger_class);
+
     boolean present_row_cache_size = true && (isSetRow_cache_size());
     builder.append(present_row_cache_size);
     if (present_row_cache_size)
@@ -2966,6 +3048,16 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetTrigger_class()).compareTo(typedOther.isSetTrigger_class());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetTrigger_class()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.trigger_class, typedOther.trigger_class);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     lastComparison = Boolean.valueOf(isSetRow_cache_size()).compareTo(typedOther.isSetRow_cache_size());
     if (lastComparison != 0) {
       return lastComparison;
@@ -3303,6 +3395,16 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       }
       first = false;
     }
+    if (isSetTrigger_class()) {
+      if (!first) sb.append(", ");
+      sb.append("trigger_class:");
+      if (this.trigger_class == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.trigger_class);
+      }
+      first = false;
+    }
     if (isSetRow_cache_size()) {
       if (!first) sb.append(", ");
       sb.append("row_cache_size:");
@@ -3481,7 +3583,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
                 struct.column_metadata = new ArrayList<ColumnDef>(_list92.size);
                 for (int _i93 = 0; _i93 < _list92.size; ++_i93)
                 {
-                  ColumnDef _elem94; // required
+                  ColumnDef _elem94; // optional
                   _elem94 = new ColumnDef();
                   _elem94.read(iprot);
                   struct.column_metadata.add(_elem94);
@@ -3669,6 +3771,24 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 43: // TRIGGER_CLASS
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set103 = iprot.readSetBegin();
+                struct.trigger_class = new HashSet<String>(2*_set103.size);
+                for (int _i104 = 0; _i104 < _set103.size; ++_i104)
+                {
+                  String _elem105; // optional
+                  _elem105 = iprot.readString();
+                  struct.trigger_class.add(_elem105);
+                }
+                iprot.readSetEnd();
+              }
+              struct.setTrigger_classIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           case 9: // ROW_CACHE_SIZE
             if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
               struct.row_cache_size = iprot.readDouble();
@@ -3822,9 +3942,9 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
           oprot.writeFieldBegin(COLUMN_METADATA_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.column_metadata.size()));
-            for (ColumnDef _iter103 : struct.column_metadata)
+            for (ColumnDef _iter106 : struct.column_metadata)
             {
-              _iter103.write(oprot);
+              _iter106.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -3926,10 +4046,10 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
           oprot.writeFieldBegin(COMPACTION_STRATEGY_OPTIONS_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.compaction_strategy_options.size()));
-            for (Map.Entry<String, String> _iter104 : struct.compaction_strategy_options.entrySet())
+            for (Map.Entry<String, String> _iter107 : struct.compaction_strategy_options.entrySet())
             {
-              oprot.writeString(_iter104.getKey());
-              oprot.writeString(_iter104.getValue());
+              oprot.writeString(_iter107.getKey());
+              oprot.writeString(_iter107.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -3946,10 +4066,10 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
           oprot.writeFieldBegin(COMPRESSION_OPTIONS_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.compression_options.size()));
-            for (Map.Entry<String, String> _iter105 : struct.compression_options.entrySet())
+            for (Map.Entry<String, String> _iter108 : struct.compression_options.entrySet())
             {
-              oprot.writeString(_iter105.getKey());
-              oprot.writeString(_iter105.getValue());
+              oprot.writeString(_iter108.getKey());
+              oprot.writeString(_iter108.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -4000,6 +4120,20 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
           oprot.writeFieldEnd();
         }
       }
+      if (struct.trigger_class != null) {
+        if (struct.isSetTrigger_class()) {
+          oprot.writeFieldBegin(TRIGGER_CLASS_FIELD_DESC);
+          {
+            oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.trigger_class.size()));
+            for (String _iter109 : struct.trigger_class)
+            {
+              oprot.writeString(_iter109);
+            }
+            oprot.writeSetEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -4095,37 +4229,40 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       if (struct.isSetSpeculative_retry()) {
         optionals.set(24);
       }
-      if (struct.isSetRow_cache_size()) {
+      if (struct.isSetTrigger_class()) {
         optionals.set(25);
       }
-      if (struct.isSetKey_cache_size()) {
+      if (struct.isSetRow_cache_size()) {
         optionals.set(26);
       }
-      if (struct.isSetRow_cache_save_period_in_seconds()) {
+      if (struct.isSetKey_cache_size()) {
         optionals.set(27);
       }
-      if (struct.isSetKey_cache_save_period_in_seconds()) {
+      if (struct.isSetRow_cache_save_period_in_seconds()) {
         optionals.set(28);
       }
-      if (struct.isSetMemtable_flush_after_mins()) {
+      if (struct.isSetKey_cache_save_period_in_seconds()) {
         optionals.set(29);
       }
-      if (struct.isSetMemtable_throughput_in_mb()) {
+      if (struct.isSetMemtable_flush_after_mins()) {
         optionals.set(30);
       }
-      if (struct.isSetMemtable_operations_in_millions()) {
+      if (struct.isSetMemtable_throughput_in_mb()) {
         optionals.set(31);
       }
-      if (struct.isSetMerge_shards_chance()) {
+      if (struct.isSetMemtable_operations_in_millions()) {
         optionals.set(32);
       }
-      if (struct.isSetRow_cache_provider()) {
+      if (struct.isSetMerge_shards_chance()) {
         optionals.set(33);
       }
-      if (struct.isSetRow_cache_keys_to_save()) {
+      if (struct.isSetRow_cache_provider()) {
         optionals.set(34);
       }
-      oprot.writeBitSet(optionals, 35);
+      if (struct.isSetRow_cache_keys_to_save()) {
+        optionals.set(35);
+      }
+      oprot.writeBitSet(optionals, 36);
       if (struct.isSetColumn_type()) {
         oprot.writeString(struct.column_type);
       }
@@ -4144,9 +4281,9 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       if (struct.isSetColumn_metadata()) {
         {
           oprot.writeI32(struct.column_metadata.size());
-          for (ColumnDef _iter106 : struct.column_metadata)
+          for (ColumnDef _iter110 : struct.column_metadata)
           {
-            _iter106.write(oprot);
+            _iter110.write(oprot);
           }
         }
       }
@@ -4180,20 +4317,20 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       if (struct.isSetCompaction_strategy_options()) {
         {
           oprot.writeI32(struct.compaction_strategy_options.size());
-          for (Map.Entry<String, String> _iter107 : struct.compaction_strategy_options.entrySet())
+          for (Map.Entry<String, String> _iter111 : struct.compaction_strategy_options.entrySet())
           {
-            oprot.writeString(_iter107.getKey());
-            oprot.writeString(_iter107.getValue());
+            oprot.writeString(_iter111.getKey());
+            oprot.writeString(_iter111.getValue());
           }
         }
       }
       if (struct.isSetCompression_options()) {
         {
           oprot.writeI32(struct.compression_options.size());
-          for (Map.Entry<String, String> _iter108 : struct.compression_options.entrySet())
+          for (Map.Entry<String, String> _iter112 : struct.compression_options.entrySet())
           {
-            oprot.writeString(_iter108.getKey());
-            oprot.writeString(_iter108.getValue());
+            oprot.writeString(_iter112.getKey());
+            oprot.writeString(_iter112.getValue());
           }
         }
       }
@@ -4221,6 +4358,15 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       if (struct.isSetSpeculative_retry()) {
         oprot.writeString(struct.speculative_retry);
       }
+      if (struct.isSetTrigger_class()) {
+        {
+          oprot.writeI32(struct.trigger_class.size());
+          for (String _iter113 : struct.trigger_class)
+          {
+            oprot.writeString(_iter113);
+          }
+        }
+      }
       if (struct.isSetRow_cache_size()) {
         oprot.writeDouble(struct.row_cache_size);
       }
@@ -4260,7 +4406,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       struct.setKeyspaceIsSet(true);
       struct.name = iprot.readString();
       struct.setNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(35);
+      BitSet incoming = iprot.readBitSet(36);
       if (incoming.get(0)) {
         struct.column_type = iprot.readString();
         struct.setColumn_typeIsSet(true);
@@ -4283,14 +4429,14 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       }
       if (incoming.get(5)) {
         {
-          org.apache.thrift.protocol.TList _list109 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.column_metadata = new ArrayList<ColumnDef>(_list109.size);
-          for (int _i110 = 0; _i110 < _list109.size; ++_i110)
+          org.apache.thrift.protocol.TList _list114 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.column_metadata = new ArrayList<ColumnDef>(_list114.size);
+          for (int _i115 = 0; _i115 < _list114.size; ++_i115)
           {
-            ColumnDef _elem111; // required
-            _elem111 = new ColumnDef();
-            _elem111.read(iprot);
-            struct.column_metadata.add(_elem111);
+            ColumnDef _elem116; // optional
+            _elem116 = new ColumnDef();
+            _elem116.read(iprot);
+            struct.column_metadata.add(_elem116);
           }
         }
         struct.setColumn_metadataIsSet(true);
@@ -4333,30 +4479,30 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
       }
       if (incoming.get(15)) {
         {
-          org.apache.thrift.protocol.TMap _map112 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.compaction_strategy_options = new HashMap<String,String>(2*_map112.size);
-          for (int _i113 = 0; _i113 < _map112.size; ++_i113)
+          org.apache.thrift.protocol.TMap _map117 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.compaction_strategy_options = new HashMap<String,String>(2*_map117.size);
+          for (int _i118 = 0; _i118 < _map117.size; ++_i118)
           {
-            String _key114; // required
-            String _val115; // required
-            _key114 = iprot.readString();
-            _val115 = iprot.readString();
-            struct.compaction_strategy_options.put(_key114, _val115);
+            String _key119; // required
+            String _val120; // required
+            _key119 = iprot.readString();
+            _val120 = iprot.readString();
+            struct.compaction_strategy_options.put(_key119, _val120);
           }
         }
         struct.setCompaction_strategy_optionsIsSet(true);
       }
       if (incoming.get(16)) {
         {
-          org.apache.thrift.protocol.TMap _map116 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.compression_options = new HashMap<String,String>(2*_map116.size);
-          for (int _i117 = 0; _i117 < _map116.size; ++_i117)
+          org.apache.thrift.protocol.TMap _map121 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.compression_options = new HashMap<String,String>(2*_map121.size);
+          for (int _i122 = 0; _i122 < _map121.size; ++_i122)
           {
-            String _key118; // required
-            String _val119; // required
-            _key118 = iprot.readString();
-            _val119 = iprot.readString();
-            struct.compression_options.put(_key118, _val119);
+            String _key123; // required
+            String _val124; // required
+            _key123 = iprot.readString();
+            _val124 = iprot.readString();
+            struct.compression_options.put(_key123, _val124);
           }
         }
         struct.setCompression_optionsIsSet(true);
@@ -4394,42 +4540,55 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
         struct.setSpeculative_retryIsSet(true);
       }
       if (incoming.get(25)) {
+        {
+          org.apache.thrift.protocol.TSet _set125 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.trigger_class = new HashSet<String>(2*_set125.size);
+          for (int _i126 = 0; _i126 < _set125.size; ++_i126)
+          {
+            String _elem127; // optional
+            _elem127 = iprot.readString();
+            struct.trigger_class.add(_elem127);
+          }
+        }
+        struct.setTrigger_classIsSet(true);
+      }
+      if (incoming.get(26)) {
         struct.row_cache_size = iprot.readDouble();
         struct.setRow_cache_sizeIsSet(true);
       }
-      if (incoming.get(26)) {
+      if (incoming.get(27)) {
         struct.key_cache_size = iprot.readDouble();
         struct.setKey_cache_sizeIsSet(true);
       }
-      if (incoming.get(27)) {
+      if (incoming.get(28)) {
         struct.row_cache_save_period_in_seconds = iprot.readI32();
         struct.setRow_cache_save_period_in_secondsIsSet(true);
       }
-      if (incoming.get(28)) {
+      if (incoming.get(29)) {
         struct.key_cache_save_period_in_seconds = iprot.readI32();
         struct.setKey_cache_save_period_in_secondsIsSet(true);
       }
-      if (incoming.get(29)) {
+      if (incoming.get(30)) {
         struct.memtable_flush_after_mins = iprot.readI32();
         struct.setMemtable_flush_after_minsIsSet(true);
       }
-      if (incoming.get(30)) {
+      if (incoming.get(31)) {
         struct.memtable_throughput_in_mb = iprot.readI32();
         struct.setMemtable_throughput_in_mbIsSet(true);
       }
-      if (incoming.get(31)) {
+      if (incoming.get(32)) {
         struct.memtable_operations_in_millions = iprot.readDouble();
         struct.setMemtable_operations_in_millionsIsSet(true);
       }
-      if (incoming.get(32)) {
+      if (incoming.get(33)) {
         struct.merge_shards_chance = iprot.readDouble();
         struct.setMerge_shards_chanceIsSet(true);
       }
-      if (incoming.get(33)) {
+      if (incoming.get(34)) {
         struct.row_cache_provider = iprot.readString();
         struct.setRow_cache_providerIsSet(true);
       }
-      if (incoming.get(34)) {
+      if (incoming.get(35)) {
         struct.row_cache_keys_to_save = iprot.readI32();
         struct.setRow_cache_keys_to_saveIsSet(true);
       }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java
index ea719cc..f9bccfe 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/CounterSuperColumn.java
@@ -479,7 +479,7 @@ public class CounterSuperColumn implements org.apache.thrift.TBase<CounterSuperC
                 struct.columns = new ArrayList<CounterColumn>(_list8.size);
                 for (int _i9 = 0; _i9 < _list8.size; ++_i9)
                 {
-                  CounterColumn _elem10; // required
+                  CounterColumn _elem10; // optional
                   _elem10 = new CounterColumn();
                   _elem10.read(iprot);
                   struct.columns.add(_elem10);
@@ -560,7 +560,7 @@ public class CounterSuperColumn implements org.apache.thrift.TBase<CounterSuperC
         struct.columns = new ArrayList<CounterColumn>(_list13.size);
         for (int _i14 = 0; _i14 < _list13.size; ++_i14)
         {
-          CounterColumn _elem15; // required
+          CounterColumn _elem15; // optional
           _elem15 = new CounterColumn();
           _elem15.read(iprot);
           struct.columns.add(_elem15);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlMetadata.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlMetadata.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlMetadata.java
index 6af8e9e..6b60337 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlMetadata.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlMetadata.java
@@ -658,15 +658,15 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
           case 1: // NAME_TYPES
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map146 = iprot.readMapBegin();
-                struct.name_types = new HashMap<ByteBuffer,String>(2*_map146.size);
-                for (int _i147 = 0; _i147 < _map146.size; ++_i147)
+                org.apache.thrift.protocol.TMap _map154 = iprot.readMapBegin();
+                struct.name_types = new HashMap<ByteBuffer,String>(2*_map154.size);
+                for (int _i155 = 0; _i155 < _map154.size; ++_i155)
                 {
-                  ByteBuffer _key148; // required
-                  String _val149; // required
-                  _key148 = iprot.readBinary();
-                  _val149 = iprot.readString();
-                  struct.name_types.put(_key148, _val149);
+                  ByteBuffer _key156; // required
+                  String _val157; // required
+                  _key156 = iprot.readBinary();
+                  _val157 = iprot.readString();
+                  struct.name_types.put(_key156, _val157);
                 }
                 iprot.readMapEnd();
               }
@@ -678,15 +678,15 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
           case 2: // VALUE_TYPES
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map150 = iprot.readMapBegin();
-                struct.value_types = new HashMap<ByteBuffer,String>(2*_map150.size);
-                for (int _i151 = 0; _i151 < _map150.size; ++_i151)
+                org.apache.thrift.protocol.TMap _map158 = iprot.readMapBegin();
+                struct.value_types = new HashMap<ByteBuffer,String>(2*_map158.size);
+                for (int _i159 = 0; _i159 < _map158.size; ++_i159)
                 {
-                  ByteBuffer _key152; // required
-                  String _val153; // required
-                  _key152 = iprot.readBinary();
-                  _val153 = iprot.readString();
-                  struct.value_types.put(_key152, _val153);
+                  ByteBuffer _key160; // required
+                  String _val161; // required
+                  _key160 = iprot.readBinary();
+                  _val161 = iprot.readString();
+                  struct.value_types.put(_key160, _val161);
                 }
                 iprot.readMapEnd();
               }
@@ -730,10 +730,10 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
         oprot.writeFieldBegin(NAME_TYPES_FIELD_DESC);
         {
           oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.name_types.size()));
-          for (Map.Entry<ByteBuffer, String> _iter154 : struct.name_types.entrySet())
+          for (Map.Entry<ByteBuffer, String> _iter162 : struct.name_types.entrySet())
           {
-            oprot.writeBinary(_iter154.getKey());
-            oprot.writeString(_iter154.getValue());
+            oprot.writeBinary(_iter162.getKey());
+            oprot.writeString(_iter162.getValue());
           }
           oprot.writeMapEnd();
         }
@@ -743,10 +743,10 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
         oprot.writeFieldBegin(VALUE_TYPES_FIELD_DESC);
         {
           oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.value_types.size()));
-          for (Map.Entry<ByteBuffer, String> _iter155 : struct.value_types.entrySet())
+          for (Map.Entry<ByteBuffer, String> _iter163 : struct.value_types.entrySet())
           {
-            oprot.writeBinary(_iter155.getKey());
-            oprot.writeString(_iter155.getValue());
+            oprot.writeBinary(_iter163.getKey());
+            oprot.writeString(_iter163.getValue());
           }
           oprot.writeMapEnd();
         }
@@ -781,18 +781,18 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
       TTupleProtocol oprot = (TTupleProtocol) prot;
       {
         oprot.writeI32(struct.name_types.size());
-        for (Map.Entry<ByteBuffer, String> _iter156 : struct.name_types.entrySet())
+        for (Map.Entry<ByteBuffer, String> _iter164 : struct.name_types.entrySet())
         {
-          oprot.writeBinary(_iter156.getKey());
-          oprot.writeString(_iter156.getValue());
+          oprot.writeBinary(_iter164.getKey());
+          oprot.writeString(_iter164.getValue());
         }
       }
       {
         oprot.writeI32(struct.value_types.size());
-        for (Map.Entry<ByteBuffer, String> _iter157 : struct.value_types.entrySet())
+        for (Map.Entry<ByteBuffer, String> _iter165 : struct.value_types.entrySet())
         {
-          oprot.writeBinary(_iter157.getKey());
-          oprot.writeString(_iter157.getValue());
+          oprot.writeBinary(_iter165.getKey());
+          oprot.writeString(_iter165.getValue());
         }
       }
       oprot.writeString(struct.default_name_type);
@@ -803,28 +803,28 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
     public void read(org.apache.thrift.protocol.TProtocol prot, CqlMetadata struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
       {
-        org.apache.thrift.protocol.TMap _map158 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-        struct.name_types = new HashMap<ByteBuffer,String>(2*_map158.size);
-        for (int _i159 = 0; _i159 < _map158.size; ++_i159)
+        org.apache.thrift.protocol.TMap _map166 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+        struct.name_types = new HashMap<ByteBuffer,String>(2*_map166.size);
+        for (int _i167 = 0; _i167 < _map166.size; ++_i167)
         {
-          ByteBuffer _key160; // required
-          String _val161; // required
-          _key160 = iprot.readBinary();
-          _val161 = iprot.readString();
-          struct.name_types.put(_key160, _val161);
+          ByteBuffer _key168; // required
+          String _val169; // required
+          _key168 = iprot.readBinary();
+          _val169 = iprot.readString();
+          struct.name_types.put(_key168, _val169);
         }
       }
       struct.setName_typesIsSet(true);
       {
-        org.apache.thrift.protocol.TMap _map162 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-        struct.value_types = new HashMap<ByteBuffer,String>(2*_map162.size);
-        for (int _i163 = 0; _i163 < _map162.size; ++_i163)
+        org.apache.thrift.protocol.TMap _map170 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+        struct.value_types = new HashMap<ByteBuffer,String>(2*_map170.size);
+        for (int _i171 = 0; _i171 < _map170.size; ++_i171)
         {
-          ByteBuffer _key164; // required
-          String _val165; // required
-          _key164 = iprot.readBinary();
-          _val165 = iprot.readString();
-          struct.value_types.put(_key164, _val165);
+          ByteBuffer _key172; // required
+          String _val173; // required
+          _key172 = iprot.readBinary();
+          _val173 = iprot.readString();
+          struct.value_types.put(_key172, _val173);
         }
       }
       struct.setValue_typesIsSet(true);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlPreparedResult.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlPreparedResult.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlPreparedResult.java
index 7d3460c..8f9146b 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlPreparedResult.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlPreparedResult.java
@@ -649,13 +649,13 @@ public class CqlPreparedResult implements org.apache.thrift.TBase<CqlPreparedRes
           case 3: // VARIABLE_TYPES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list174 = iprot.readListBegin();
-                struct.variable_types = new ArrayList<String>(_list174.size);
-                for (int _i175 = 0; _i175 < _list174.size; ++_i175)
+                org.apache.thrift.protocol.TList _list182 = iprot.readListBegin();
+                struct.variable_types = new ArrayList<String>(_list182.size);
+                for (int _i183 = 0; _i183 < _list182.size; ++_i183)
                 {
-                  String _elem176; // required
-                  _elem176 = iprot.readString();
-                  struct.variable_types.add(_elem176);
+                  String _elem184; // optional
+                  _elem184 = iprot.readString();
+                  struct.variable_types.add(_elem184);
                 }
                 iprot.readListEnd();
               }
@@ -667,13 +667,13 @@ public class CqlPreparedResult implements org.apache.thrift.TBase<CqlPreparedRes
           case 4: // VARIABLE_NAMES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list177 = iprot.readListBegin();
-                struct.variable_names = new ArrayList<String>(_list177.size);
-                for (int _i178 = 0; _i178 < _list177.size; ++_i178)
+                org.apache.thrift.protocol.TList _list185 = iprot.readListBegin();
+                struct.variable_names = new ArrayList<String>(_list185.size);
+                for (int _i186 = 0; _i186 < _list185.size; ++_i186)
                 {
-                  String _elem179; // required
-                  _elem179 = iprot.readString();
-                  struct.variable_names.add(_elem179);
+                  String _elem187; // optional
+                  _elem187 = iprot.readString();
+                  struct.variable_names.add(_elem187);
                 }
                 iprot.readListEnd();
               }
@@ -714,9 +714,9 @@ public class CqlPreparedResult implements org.apache.thrift.TBase<CqlPreparedRes
           oprot.writeFieldBegin(VARIABLE_TYPES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.variable_types.size()));
-            for (String _iter180 : struct.variable_types)
+            for (String _iter188 : struct.variable_types)
             {
-              oprot.writeString(_iter180);
+              oprot.writeString(_iter188);
             }
             oprot.writeListEnd();
           }
@@ -728,9 +728,9 @@ public class CqlPreparedResult implements org.apache.thrift.TBase<CqlPreparedRes
           oprot.writeFieldBegin(VARIABLE_NAMES_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.variable_names.size()));
-            for (String _iter181 : struct.variable_names)
+            for (String _iter189 : struct.variable_names)
             {
-              oprot.writeString(_iter181);
+              oprot.writeString(_iter189);
             }
             oprot.writeListEnd();
           }
@@ -767,18 +767,18 @@ public class CqlPreparedResult implements org.apache.thrift.TBase<CqlPreparedRes
       if (struct.isSetVariable_types()) {
         {
           oprot.writeI32(struct.variable_types.size());
-          for (String _iter182 : struct.variable_types)
+          for (String _iter190 : struct.variable_types)
           {
-            oprot.writeString(_iter182);
+            oprot.writeString(_iter190);
           }
         }
       }
       if (struct.isSetVariable_names()) {
         {
           oprot.writeI32(struct.variable_names.size());
-          for (String _iter183 : struct.variable_names)
+          for (String _iter191 : struct.variable_names)
           {
-            oprot.writeString(_iter183);
+            oprot.writeString(_iter191);
           }
         }
       }
@@ -794,26 +794,26 @@ public class CqlPreparedResult implements org.apache.thrift.TBase<CqlPreparedRes
       BitSet incoming = iprot.readBitSet(2);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list184 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.variable_types = new ArrayList<String>(_list184.size);
-          for (int _i185 = 0; _i185 < _list184.size; ++_i185)
+          org.apache.thrift.protocol.TList _list192 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.variable_types = new ArrayList<String>(_list192.size);
+          for (int _i193 = 0; _i193 < _list192.size; ++_i193)
           {
-            String _elem186; // required
-            _elem186 = iprot.readString();
-            struct.variable_types.add(_elem186);
+            String _elem194; // optional
+            _elem194 = iprot.readString();
+            struct.variable_types.add(_elem194);
           }
         }
         struct.setVariable_typesIsSet(true);
       }
       if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TList _list187 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.variable_names = new ArrayList<String>(_list187.size);
-          for (int _i188 = 0; _i188 < _list187.size; ++_i188)
+          org.apache.thrift.protocol.TList _list195 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.variable_names = new ArrayList<String>(_list195.size);
+          for (int _i196 = 0; _i196 < _list195.size; ++_i196)
           {
-            String _elem189; // required
-            _elem189 = iprot.readString();
-            struct.variable_names.add(_elem189);
+            String _elem197; // optional
+            _elem197 = iprot.readString();
+            struct.variable_names.add(_elem197);
           }
         }
         struct.setVariable_namesIsSet(true);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java
index 53afbaa..0ef02f7 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlResult.java
@@ -644,14 +644,14 @@ public class CqlResult implements org.apache.thrift.TBase<CqlResult, CqlResult._
           case 2: // ROWS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list166 = iprot.readListBegin();
-                struct.rows = new ArrayList<CqlRow>(_list166.size);
-                for (int _i167 = 0; _i167 < _list166.size; ++_i167)
+                org.apache.thrift.protocol.TList _list174 = iprot.readListBegin();
+                struct.rows = new ArrayList<CqlRow>(_list174.size);
+                for (int _i175 = 0; _i175 < _list174.size; ++_i175)
                 {
-                  CqlRow _elem168; // required
-                  _elem168 = new CqlRow();
-                  _elem168.read(iprot);
-                  struct.rows.add(_elem168);
+                  CqlRow _elem176; // optional
+                  _elem176 = new CqlRow();
+                  _elem176.read(iprot);
+                  struct.rows.add(_elem176);
                 }
                 iprot.readListEnd();
               }
@@ -702,9 +702,9 @@ public class CqlResult implements org.apache.thrift.TBase<CqlResult, CqlResult._
           oprot.writeFieldBegin(ROWS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.rows.size()));
-            for (CqlRow _iter169 : struct.rows)
+            for (CqlRow _iter177 : struct.rows)
             {
-              _iter169.write(oprot);
+              _iter177.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -755,9 +755,9 @@ public class CqlResult implements org.apache.thrift.TBase<CqlResult, CqlResult._
       if (struct.isSetRows()) {
         {
           oprot.writeI32(struct.rows.size());
-          for (CqlRow _iter170 : struct.rows)
+          for (CqlRow _iter178 : struct.rows)
           {
-            _iter170.write(oprot);
+            _iter178.write(oprot);
           }
         }
       }
@@ -777,14 +777,14 @@ public class CqlResult implements org.apache.thrift.TBase<CqlResult, CqlResult._
       BitSet incoming = iprot.readBitSet(3);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list171 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.rows = new ArrayList<CqlRow>(_list171.size);
-          for (int _i172 = 0; _i172 < _list171.size; ++_i172)
+          org.apache.thrift.protocol.TList _list179 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.rows = new ArrayList<CqlRow>(_list179.size);
+          for (int _i180 = 0; _i180 < _list179.size; ++_i180)
           {
-            CqlRow _elem173; // required
-            _elem173 = new CqlRow();
-            _elem173.read(iprot);
-            struct.rows.add(_elem173);
+            CqlRow _elem181; // optional
+            _elem181 = new CqlRow();
+            _elem181.read(iprot);
+            struct.rows.add(_elem181);
           }
         }
         struct.setRowsIsSet(true);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java
index 8fce2e1..d3816cc 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/CqlRow.java
@@ -478,14 +478,14 @@ public class CqlRow implements org.apache.thrift.TBase<CqlRow, CqlRow._Fields>,
           case 2: // COLUMNS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list138 = iprot.readListBegin();
-                struct.columns = new ArrayList<Column>(_list138.size);
-                for (int _i139 = 0; _i139 < _list138.size; ++_i139)
+                org.apache.thrift.protocol.TList _list146 = iprot.readListBegin();
+                struct.columns = new ArrayList<Column>(_list146.size);
+                for (int _i147 = 0; _i147 < _list146.size; ++_i147)
                 {
-                  Column _elem140; // required
-                  _elem140 = new Column();
-                  _elem140.read(iprot);
-                  struct.columns.add(_elem140);
+                  Column _elem148; // optional
+                  _elem148 = new Column();
+                  _elem148.read(iprot);
+                  struct.columns.add(_elem148);
                 }
                 iprot.readListEnd();
               }
@@ -518,9 +518,9 @@ public class CqlRow implements org.apache.thrift.TBase<CqlRow, CqlRow._Fields>,
         oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.columns.size()));
-          for (Column _iter141 : struct.columns)
+          for (Column _iter149 : struct.columns)
           {
-            _iter141.write(oprot);
+            _iter149.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -546,9 +546,9 @@ public class CqlRow implements org.apache.thrift.TBase<CqlRow, CqlRow._Fields>,
       oprot.writeBinary(struct.key);
       {
         oprot.writeI32(struct.columns.size());
-        for (Column _iter142 : struct.columns)
+        for (Column _iter150 : struct.columns)
         {
-          _iter142.write(oprot);
+          _iter150.write(oprot);
         }
       }
     }
@@ -559,14 +559,14 @@ public class CqlRow implements org.apache.thrift.TBase<CqlRow, CqlRow._Fields>,
       struct.key = iprot.readBinary();
       struct.setKeyIsSet(true);
       {
-        org.apache.thrift.protocol.TList _list143 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-        struct.columns = new ArrayList<Column>(_list143.size);
-        for (int _i144 = 0; _i144 < _list143.size; ++_i144)
+        org.apache.thrift.protocol.TList _list151 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.columns = new ArrayList<Column>(_list151.size);
+        for (int _i152 = 0; _i152 < _list151.size; ++_i152)
         {
-          Column _elem145; // required
-          _elem145 = new Column();
-          _elem145.read(iprot);
-          struct.columns.add(_elem145);
+          Column _elem153; // optional
+          _elem153 = new Column();
+          _elem153.read(iprot);
+          struct.columns.add(_elem153);
         }
       }
       struct.setColumnsIsSet(true);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java
index 499a081..3e1058f 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/IndexClause.java
@@ -559,7 +559,7 @@ public class IndexClause implements org.apache.thrift.TBase<IndexClause, IndexCl
                 struct.expressions = new ArrayList<IndexExpression>(_list24.size);
                 for (int _i25 = 0; _i25 < _list24.size; ++_i25)
                 {
-                  IndexExpression _elem26; // required
+                  IndexExpression _elem26; // optional
                   _elem26 = new IndexExpression();
                   _elem26.read(iprot);
                   struct.expressions.add(_elem26);
@@ -661,7 +661,7 @@ public class IndexClause implements org.apache.thrift.TBase<IndexClause, IndexCl
         struct.expressions = new ArrayList<IndexExpression>(_list29.size);
         for (int _i30 = 0; _i30 < _list29.size; ++_i30)
         {
-          IndexExpression _elem31; // required
+          IndexExpression _elem31; // optional
           _elem31 = new IndexExpression();
           _elem31.read(iprot);
           struct.expressions.add(_elem31);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java
index 243327d..152444e 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/KeyRange.java
@@ -848,7 +848,7 @@ public class KeyRange implements org.apache.thrift.TBase<KeyRange, KeyRange._Fie
                 struct.row_filter = new ArrayList<IndexExpression>(_list32.size);
                 for (int _i33 = 0; _i33 < _list32.size; ++_i33)
                 {
-                  IndexExpression _elem34; // required
+                  IndexExpression _elem34; // optional
                   _elem34 = new IndexExpression();
                   _elem34.read(iprot);
                   struct.row_filter.add(_elem34);
@@ -1017,7 +1017,7 @@ public class KeyRange implements org.apache.thrift.TBase<KeyRange, KeyRange._Fie
           struct.row_filter = new ArrayList<IndexExpression>(_list37.size);
           for (int _i38 = 0; _i38 < _list37.size; ++_i38)
           {
-            IndexExpression _elem39; // required
+            IndexExpression _elem39; // optional
             _elem39 = new IndexExpression();
             _elem39.read(iprot);
             struct.row_filter.add(_elem39);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java
index e7de670..07a53d4 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/KeySlice.java
@@ -486,7 +486,7 @@ public class KeySlice implements org.apache.thrift.TBase<KeySlice, KeySlice._Fie
                 struct.columns = new ArrayList<ColumnOrSuperColumn>(_list40.size);
                 for (int _i41 = 0; _i41 < _list40.size; ++_i41)
                 {
-                  ColumnOrSuperColumn _elem42; // required
+                  ColumnOrSuperColumn _elem42; // optional
                   _elem42 = new ColumnOrSuperColumn();
                   _elem42.read(iprot);
                   struct.columns.add(_elem42);
@@ -567,7 +567,7 @@ public class KeySlice implements org.apache.thrift.TBase<KeySlice, KeySlice._Fie
         struct.columns = new ArrayList<ColumnOrSuperColumn>(_list45.size);
         for (int _i46 = 0; _i46 < _list45.size; ++_i46)
         {
-          ColumnOrSuperColumn _elem47; // required
+          ColumnOrSuperColumn _elem47; // optional
           _elem47 = new ColumnOrSuperColumn();
           _elem47.read(iprot);
           struct.columns.add(_elem47);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java
index c1530a1..f284680 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/KsDef.java
@@ -837,15 +837,15 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
           case 3: // STRATEGY_OPTIONS
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map120 = iprot.readMapBegin();
-                struct.strategy_options = new HashMap<String,String>(2*_map120.size);
-                for (int _i121 = 0; _i121 < _map120.size; ++_i121)
+                org.apache.thrift.protocol.TMap _map128 = iprot.readMapBegin();
+                struct.strategy_options = new HashMap<String,String>(2*_map128.size);
+                for (int _i129 = 0; _i129 < _map128.size; ++_i129)
                 {
-                  String _key122; // required
-                  String _val123; // required
-                  _key122 = iprot.readString();
-                  _val123 = iprot.readString();
-                  struct.strategy_options.put(_key122, _val123);
+                  String _key130; // required
+                  String _val131; // required
+                  _key130 = iprot.readString();
+                  _val131 = iprot.readString();
+                  struct.strategy_options.put(_key130, _val131);
                 }
                 iprot.readMapEnd();
               }
@@ -865,14 +865,14 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
           case 5: // CF_DEFS
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list124 = iprot.readListBegin();
-                struct.cf_defs = new ArrayList<CfDef>(_list124.size);
-                for (int _i125 = 0; _i125 < _list124.size; ++_i125)
+                org.apache.thrift.protocol.TList _list132 = iprot.readListBegin();
+                struct.cf_defs = new ArrayList<CfDef>(_list132.size);
+                for (int _i133 = 0; _i133 < _list132.size; ++_i133)
                 {
-                  CfDef _elem126; // required
-                  _elem126 = new CfDef();
-                  _elem126.read(iprot);
-                  struct.cf_defs.add(_elem126);
+                  CfDef _elem134; // optional
+                  _elem134 = new CfDef();
+                  _elem134.read(iprot);
+                  struct.cf_defs.add(_elem134);
                 }
                 iprot.readListEnd();
               }
@@ -919,10 +919,10 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
           oprot.writeFieldBegin(STRATEGY_OPTIONS_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.strategy_options.size()));
-            for (Map.Entry<String, String> _iter127 : struct.strategy_options.entrySet())
+            for (Map.Entry<String, String> _iter135 : struct.strategy_options.entrySet())
             {
-              oprot.writeString(_iter127.getKey());
-              oprot.writeString(_iter127.getValue());
+              oprot.writeString(_iter135.getKey());
+              oprot.writeString(_iter135.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -938,9 +938,9 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
         oprot.writeFieldBegin(CF_DEFS_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.cf_defs.size()));
-          for (CfDef _iter128 : struct.cf_defs)
+          for (CfDef _iter136 : struct.cf_defs)
           {
-            _iter128.write(oprot);
+            _iter136.write(oprot);
           }
           oprot.writeListEnd();
         }
@@ -972,9 +972,9 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
       oprot.writeString(struct.strategy_class);
       {
         oprot.writeI32(struct.cf_defs.size());
-        for (CfDef _iter129 : struct.cf_defs)
+        for (CfDef _iter137 : struct.cf_defs)
         {
-          _iter129.write(oprot);
+          _iter137.write(oprot);
         }
       }
       BitSet optionals = new BitSet();
@@ -991,10 +991,10 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
       if (struct.isSetStrategy_options()) {
         {
           oprot.writeI32(struct.strategy_options.size());
-          for (Map.Entry<String, String> _iter130 : struct.strategy_options.entrySet())
+          for (Map.Entry<String, String> _iter138 : struct.strategy_options.entrySet())
           {
-            oprot.writeString(_iter130.getKey());
-            oprot.writeString(_iter130.getValue());
+            oprot.writeString(_iter138.getKey());
+            oprot.writeString(_iter138.getValue());
           }
         }
       }
@@ -1014,29 +1014,29 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
       struct.strategy_class = iprot.readString();
       struct.setStrategy_classIsSet(true);
       {
-        org.apache.thrift.protocol.TList _list131 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-        struct.cf_defs = new ArrayList<CfDef>(_list131.size);
-        for (int _i132 = 0; _i132 < _list131.size; ++_i132)
+        org.apache.thrift.protocol.TList _list139 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+        struct.cf_defs = new ArrayList<CfDef>(_list139.size);
+        for (int _i140 = 0; _i140 < _list139.size; ++_i140)
         {
-          CfDef _elem133; // required
-          _elem133 = new CfDef();
-          _elem133.read(iprot);
-          struct.cf_defs.add(_elem133);
+          CfDef _elem141; // optional
+          _elem141 = new CfDef();
+          _elem141.read(iprot);
+          struct.cf_defs.add(_elem141);
         }
       }
       struct.setCf_defsIsSet(true);
       BitSet incoming = iprot.readBitSet(3);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TMap _map134 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.strategy_options = new HashMap<String,String>(2*_map134.size);
-          for (int _i135 = 0; _i135 < _map134.size; ++_i135)
+          org.apache.thrift.protocol.TMap _map142 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.strategy_options = new HashMap<String,String>(2*_map142.size);
+          for (int _i143 = 0; _i143 < _map142.size; ++_i143)
           {
-            String _key136; // required
-            String _val137; // required
-            _key136 = iprot.readString();
-            _val137 = iprot.readString();
-            struct.strategy_options.put(_key136, _val137);
+            String _key144; // required
+            String _val145; // required
+            _key144 = iprot.readString();
+            _val145 = iprot.readString();
+            struct.strategy_options.put(_key144, _val145);
           }
         }
         struct.setStrategy_optionsIsSet(true);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java
index 0624e93..1a3dfd5 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/SlicePredicate.java
@@ -467,7 +467,7 @@ public class SlicePredicate implements org.apache.thrift.TBase<SlicePredicate, S
                 struct.column_names = new ArrayList<ByteBuffer>(_list16.size);
                 for (int _i17 = 0; _i17 < _list16.size; ++_i17)
                 {
-                  ByteBuffer _elem18; // required
+                  ByteBuffer _elem18; // optional
                   _elem18 = iprot.readBinary();
                   struct.column_names.add(_elem18);
                 }
@@ -572,7 +572,7 @@ public class SlicePredicate implements org.apache.thrift.TBase<SlicePredicate, S
           struct.column_names = new ArrayList<ByteBuffer>(_list21.size);
           for (int _i22 = 0; _i22 < _list21.size; ++_i22)
           {
-            ByteBuffer _elem23; // required
+            ByteBuffer _elem23; // optional
             _elem23 = iprot.readBinary();
             struct.column_names.add(_elem23);
           }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
index 3a30a21..aa14815 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
@@ -485,7 +485,7 @@ public class SuperColumn implements org.apache.thrift.TBase<SuperColumn, SuperCo
                 struct.columns = new ArrayList<Column>(_list0.size);
                 for (int _i1 = 0; _i1 < _list0.size; ++_i1)
                 {
-                  Column _elem2; // required
+                  Column _elem2; // optional
                   _elem2 = new Column();
                   _elem2.read(iprot);
                   struct.columns.add(_elem2);
@@ -566,7 +566,7 @@ public class SuperColumn implements org.apache.thrift.TBase<SuperColumn, SuperCo
         struct.columns = new ArrayList<Column>(_list5.size);
         for (int _i6 = 0; _i6 < _list5.size; ++_i6)
         {
-          Column _elem7; // required
+          Column _elem7; // optional
           _elem7 = new Column();
           _elem7.read(iprot);
           struct.columns.add(_elem7);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java
----------------------------------------------------------------------
diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java
index 1393fd5..fc32d02 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/TokenRange.java
@@ -774,7 +774,7 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
                 struct.endpoints = new ArrayList<String>(_list48.size);
                 for (int _i49 = 0; _i49 < _list48.size; ++_i49)
                 {
-                  String _elem50; // required
+                  String _elem50; // optional
                   _elem50 = iprot.readString();
                   struct.endpoints.add(_elem50);
                 }
@@ -792,7 +792,7 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
                 struct.rpc_endpoints = new ArrayList<String>(_list51.size);
                 for (int _i52 = 0; _i52 < _list51.size; ++_i52)
                 {
-                  String _elem53; // required
+                  String _elem53; // optional
                   _elem53 = iprot.readString();
                   struct.rpc_endpoints.add(_elem53);
                 }
@@ -810,7 +810,7 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
                 struct.endpoint_details = new ArrayList<EndpointDetails>(_list54.size);
                 for (int _i55 = 0; _i55 < _list54.size; ++_i55)
                 {
-                  EndpointDetails _elem56; // required
+                  EndpointDetails _elem56; // optional
                   _elem56 = new EndpointDetails();
                   _elem56.read(iprot);
                   struct.endpoint_details.add(_elem56);
@@ -953,7 +953,7 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
         struct.endpoints = new ArrayList<String>(_list63.size);
         for (int _i64 = 0; _i64 < _list63.size; ++_i64)
         {
-          String _elem65; // required
+          String _elem65; // optional
           _elem65 = iprot.readString();
           struct.endpoints.add(_elem65);
         }
@@ -966,7 +966,7 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
           struct.rpc_endpoints = new ArrayList<String>(_list66.size);
           for (int _i67 = 0; _i67 < _list66.size; ++_i67)
           {
-            String _elem68; // required
+            String _elem68; // optional
             _elem68 = iprot.readString();
             struct.rpc_endpoints.add(_elem68);
           }
@@ -979,7 +979,7 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
           struct.endpoint_details = new ArrayList<EndpointDetails>(_list69.size);
           for (int _i70 = 0; _i70 < _list69.size; ++_i70)
           {
-            EndpointDetails _elem71; // required
+            EndpointDetails _elem71; // optional
             _elem71 = new EndpointDetails();
             _elem71.read(iprot);
             struct.endpoint_details.add(_elem71);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/src/java/org/apache/cassandra/cli/CliClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cli/CliClient.java b/src/java/org/apache/cassandra/cli/CliClient.java
index 2b87943..c27ee2e 100644
--- a/src/java/org/apache/cassandra/cli/CliClient.java
+++ b/src/java/org/apache/cassandra/cli/CliClient.java
@@ -27,10 +27,14 @@ import java.nio.ByteBuffer;
 import java.nio.charset.CharacterCodingException;
 import java.util.*;
 
+import com.google.common.base.CharMatcher;
 import com.google.common.base.Charsets;
 import com.google.common.base.Predicate;
+import com.google.common.base.Splitter;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
+
 import org.apache.commons.lang.StringUtils;
 
 import org.antlr.runtime.tree.Tree;
@@ -140,7 +144,8 @@ public class CliClient
         CACHING,
         DEFAULT_TIME_TO_LIVE,
         SPECULATIVE_RETRY,
-        POPULATE_IO_CACHE_ON_FLUSH
+        POPULATE_IO_CACHE_ON_FLUSH,
+        TRIGGER_CLASSES
     }
 
     private static final String DEFAULT_PLACEMENT_STRATEGY = "org.apache.cassandra.locator.NetworkTopologyStrategy";
@@ -1354,6 +1359,10 @@ public class CliClient
             case POPULATE_IO_CACHE_ON_FLUSH:
                 cfDef.setPopulate_io_cache_on_flush(Boolean.parseBoolean(mValue));
                 break;
+            case TRIGGER_CLASSES:
+                Iterable<String> tcIt = Splitter.on(',').trimResults(CharMatcher.is('\'')).split(mValue);
+                cfDef.setTrigger_class(Sets.newHashSet(tcIt));
+                break;
             default:
                 //must match one of the above or we'd throw an exception at the valueOf statement above.
                 assert(false);
@@ -1818,6 +1827,8 @@ public class CliClient
 
         if (cfDef.isSetBloom_filter_fp_chance())
             writeAttr(output, false, "bloom_filter_fp_chance", cfDef.bloom_filter_fp_chance);
+        if (cfDef.isSetTrigger_class())
+            writeAttr(output, false, "trigger_class", StringUtils.join(cfDef.trigger_class, ','));
 
         if (!cfDef.compaction_strategy_options.isEmpty())
         {
@@ -2188,6 +2199,9 @@ public class CliClient
         sessionState.out.printf("      Index interval: %s%n", cf_def.isSetIndex_interval() ? cf_def.index_interval : "default");
         sessionState.out.printf("      Speculative Retry: %s%n", cf_def.speculative_retry);
 
+        if (cf_def.trigger_class != null)
+            sessionState.out.printf("      Trigger class: %s%n", cf_def.trigger_class);
+
         // if we have connection to the cfMBean established
         if (cfMBean != null)
             sessionState.out.printf("      Built indexes: %s%n", cfMBean.getBuiltIndexes());

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index e9ed8bb..0af6c77 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -26,8 +26,11 @@ import java.util.*;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Objects;
+import com.google.common.base.Strings;
 import com.google.common.collect.MapDifference;
 import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.builder.EqualsBuilder;
@@ -138,6 +141,7 @@ public final class CFMetaData
                                                                        + "default_write_consistency text,"
                                                                        + "speculative_retry text,"
                                                                        + "populate_io_cache_on_flush boolean,"
+                                                                       + "trigger_class text,"
                                                                        + "dropped_columns map<text, bigint>,"
                                                                        + "PRIMARY KEY (keyspace_name, columnfamily_name)"
                                                                        + ") WITH COMMENT='ColumnFamily definitions' AND gc_grace_seconds=8640");
@@ -360,6 +364,7 @@ public final class CFMetaData
     private volatile SpeculativeRetry speculativeRetry = DEFAULT_SPECULATIVE_RETRY;
     private volatile boolean populateIoCacheOnFlush = DEFAULT_POPULATE_IO_CACHE_ON_FLUSH;
     private volatile Map<ByteBuffer, Long> droppedColumns = new HashMap<ByteBuffer, Long>();
+    private volatile Set<String> triggerClass = null;
 
     /*
      * All CQL3 columns definition are stored in the column_metadata map.
@@ -405,6 +410,7 @@ public final class CFMetaData
     public CFMetaData speculativeRetry(SpeculativeRetry prop) {speculativeRetry = prop; return this;}
     public CFMetaData populateIoCacheOnFlush(boolean prop) {populateIoCacheOnFlush = prop; return this;}
     public CFMetaData droppedColumns(Map<ByteBuffer, Long> cols) {droppedColumns = cols; return this;}
+    public CFMetaData triggerClass(Set<String> prop) {triggerClass = prop; return this;}
 
     public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc)
     {
@@ -502,6 +508,7 @@ public final class CFMetaData
                              .gcGraceSeconds(0)
                              .caching(indexCaching)
                              .speculativeRetry(parent.speculativeRetry)
+                             .triggerClass(parent.triggerClass)
                              .compactionStrategyClass(parent.compactionStrategyClass)
                              .compactionStrategyOptions(parent.compactionStrategyOptions)
                              .reloadSecondaryIndexMetadata(parent);
@@ -556,7 +563,8 @@ public final class CFMetaData
                       .speculativeRetry(oldCFMD.speculativeRetry)
                       .memtableFlushPeriod(oldCFMD.memtableFlushPeriod)
                       .populateIoCacheOnFlush(oldCFMD.populateIoCacheOnFlush)
-                      .droppedColumns(oldCFMD.droppedColumns);
+                      .droppedColumns(oldCFMD.droppedColumns)
+                      .triggerClass(oldCFMD.triggerClass);
     }
 
     /**
@@ -687,6 +695,11 @@ public final class CFMetaData
                : bloomFilterFpChance;
     }
 
+    public Set<String> getTriggerClass()
+    {
+        return triggerClass;
+    }
+
     public Caching getCaching()
     {
         return caching;
@@ -756,6 +769,7 @@ public final class CFMetaData
             .append(speculativeRetry, rhs.speculativeRetry)
             .append(populateIoCacheOnFlush, rhs.populateIoCacheOnFlush)
             .append(droppedColumns, rhs.droppedColumns)
+            .append(triggerClass, rhs.triggerClass)
             .isEquals();
     }
 
@@ -788,6 +802,7 @@ public final class CFMetaData
             .append(speculativeRetry)
             .append(populateIoCacheOnFlush)
             .append(droppedColumns)
+            .append(triggerClass)
             .toHashCode();
     }
 
@@ -877,6 +892,8 @@ public final class CFMetaData
                 newCFMD.speculativeRetry(SpeculativeRetry.fromString(cf_def.speculative_retry));
             if (cf_def.isSetPopulate_io_cache_on_flush())
                 newCFMD.populateIoCacheOnFlush(cf_def.populate_io_cache_on_flush);
+            if (cf_def.isSetTrigger_class())
+                newCFMD.triggerClass(cf_def.trigger_class);
 
             CompressionParameters cp = CompressionParameters.create(cf_def.compression_options);
 
@@ -958,6 +975,8 @@ public final class CFMetaData
         speculativeRetry = cfm.speculativeRetry;
         populateIoCacheOnFlush = cfm.populateIoCacheOnFlush;
 
+        if (cfm.triggerClass != null)
+            triggerClass = cfm.triggerClass;
         if (!cfm.droppedColumns.isEmpty())
             droppedColumns = cfm.droppedColumns;
 
@@ -1118,6 +1137,8 @@ public final class CFMetaData
         def.setCaching(caching.toString());
         def.setDefault_time_to_live(defaultTimeToLive);
         def.setSpeculative_retry(speculativeRetry.toString());
+        if (triggerClass != null)
+            def.setTrigger_class(new HashSet<String>(triggerClass));
         return def;
     }
 
@@ -1453,6 +1474,7 @@ public final class CFMetaData
         cf.addColumn(DeletedColumn.create(ldt, timestamp, cfName, "column_aliases"));
         cf.addColumn(DeletedColumn.create(ldt, timestamp, cfName, "compaction_strategy_options"));
         cf.addColumn(DeletedColumn.create(ldt, timestamp, cfName, "index_interval"));
+        cf.addColumn(DeletedColumn.create(ldt, timestamp, cfName, "trigger_class"));
 
         for (Map.Entry<ByteBuffer, Long> entry : droppedColumns.entrySet())
             cf.addColumn(new DeletedColumn(makeDroppedColumnName(entry.getKey()), ldt, timestamp));
@@ -1516,6 +1538,8 @@ public final class CFMetaData
         cf.addColumn(Column.create(json(compactionStrategyOptions), timestamp, cfName, "compaction_strategy_options"));
         cf.addColumn(Column.create(indexInterval, timestamp, cfName, "index_interval"));
         cf.addColumn(Column.create(speculativeRetry.toString(), timestamp, cfName, "speculative_retry"));
+        cf.addColumn(triggerClass == null ? DeletedColumn.create(ldt, timestamp, cfName, "trigger_class")
+                                          : Column.create(StringUtils.join(triggerClass, ','), timestamp, cfName, "trigger_class"));
 
         for (Map.Entry<ByteBuffer, Long> entry : droppedColumns.entrySet())
             cf.addColumn(new Column(makeDroppedColumnName(entry.getKey()), LongType.instance.decompose(entry.getValue()), timestamp));
@@ -1565,6 +1589,8 @@ public final class CFMetaData
                 cfm.indexInterval(result.getInt("index_interval"));
             if (result.has("populate_io_cache_on_flush"))
                 cfm.populateIoCacheOnFlush(result.getBoolean("populate_io_cache_on_flush"));
+            if (result.has("trigger_class") && !Strings.isNullOrEmpty(result.getString("trigger_class")))
+                cfm.triggerClass(Sets.newHashSet(StringUtils.split(result.getString("trigger_class"), ',')));
 
             /*
              * The info previously hold by key_alias(es), column_alias and value_alias is now stored in column_metadata (because 1) this
@@ -1987,6 +2013,7 @@ public final class CFMetaData
             .append("indexInterval", indexInterval)
             .append("populateIoCacheOnFlush", populateIoCacheOnFlush)
             .append("droppedColumns", droppedColumns)
+            .append("trigger_class", triggerClass)
             .toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/src/java/org/apache/cassandra/cql/AlterTableStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/AlterTableStatement.java b/src/java/org/apache/cassandra/cql/AlterTableStatement.java
index 662d889..951b1bb 100644
--- a/src/java/org/apache/cassandra/cql/AlterTableStatement.java
+++ b/src/java/org/apache/cassandra/cql/AlterTableStatement.java
@@ -186,6 +186,7 @@ public class AlterTableStatement
         cfm.populateIoCacheOnFlush(cfProps.getPropertyBoolean(CFPropDefs.KW_POPULATE_IO_CACHE_ON_FLUSH, cfm.populateIoCacheOnFlush()));
         cfm.bloomFilterFpChance(cfProps.getPropertyDouble(CFPropDefs.KW_BF_FP_CHANCE, cfm.getBloomFilterFpChance()));
         cfm.memtableFlushPeriod(cfProps.getPropertyInt(CFPropDefs.KW_MEMTABLE_FLUSH_PERIOD, cfm.getMemtableFlushPeriod()));
+        cfm.triggerClass(cfProps.getPropertySet(CFPropDefs.KW_TRIGGER_CLASS, cfm.getTriggerClass()));
 
         if (!cfProps.compactionStrategyOptions.isEmpty())
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/src/java/org/apache/cassandra/cql/CFPropDefs.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CFPropDefs.java b/src/java/org/apache/cassandra/cql/CFPropDefs.java
index 82485fc..760da76 100644
--- a/src/java/org/apache/cassandra/cql/CFPropDefs.java
+++ b/src/java/org/apache/cassandra/cql/CFPropDefs.java
@@ -22,6 +22,7 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import com.google.common.base.Strings;
 import com.google.common.collect.Sets;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -33,6 +34,7 @@ import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.db.marshal.TypeParser;
 import org.apache.cassandra.exceptions.InvalidRequestException;
 import org.apache.cassandra.exceptions.SyntaxException;
+import org.apache.commons.lang.StringUtils;
 
 public class CFPropDefs {
     private static final Logger logger = LoggerFactory.getLogger(CFPropDefs.class);
@@ -53,6 +55,7 @@ public class CFPropDefs {
     public static final String KW_POPULATE_IO_CACHE_ON_FLUSH = "populate_io_cache_on_flush";
     public static final String KW_BF_FP_CHANCE = "bloom_filter_fp_chance";
     public static final String KW_MEMTABLE_FLUSH_PERIOD = "memtable_flush_period_in_ms";
+    public static final String KW_TRIGGER_CLASS = "trigger_class";
 
     // Maps CQL short names to the respective Cassandra comparator/validator class names
     public static final Map<String, String> comparators = new HashMap<String, String>();
@@ -96,6 +99,7 @@ public class CFPropDefs {
         keywords.add(KW_POPULATE_IO_CACHE_ON_FLUSH);
         keywords.add(KW_BF_FP_CHANCE);
         keywords.add(KW_MEMTABLE_FLUSH_PERIOD);
+        keywords.add(KW_TRIGGER_CLASS);
 
         obsoleteKeywords.add("row_cache_size");
         obsoleteKeywords.add("key_cache_size");
@@ -286,6 +290,14 @@ public class CFPropDefs {
         return result;
     }
 
+    public Set<String> getPropertySet(String key, Set<String> defaultValue)
+    {
+        String value = properties.get(key);
+        if (Strings.isNullOrEmpty(value))
+            return defaultValue;
+        return Sets.newHashSet(StringUtils.split(value, ','));
+    }
+
     public String toString()
     {
         return String.format("CFPropDefs(%s, compaction: %s, compression: %s)",

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
index 409fca8..e8b73ef 100644
--- a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
+++ b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
@@ -201,7 +202,8 @@ public class CreateColumnFamilyStatement
                    .bloomFilterFpChance(getPropertyDouble(CFPropDefs.KW_BF_FP_CHANCE, null))
                    .memtableFlushPeriod(getPropertyInt(CFPropDefs.KW_MEMTABLE_FLUSH_PERIOD, 0))
                    .defaultTimeToLive(getPropertyInt(CFPropDefs.KW_DEFAULT_TIME_TO_LIVE, CFMetaData.DEFAULT_DEFAULT_TIME_TO_LIVE))
-                   .populateIoCacheOnFlush(getPropertyBoolean(CFPropDefs.KW_POPULATE_IO_CACHE_ON_FLUSH, CFMetaData.DEFAULT_POPULATE_IO_CACHE_ON_FLUSH));
+                   .populateIoCacheOnFlush(getPropertyBoolean(CFPropDefs.KW_POPULATE_IO_CACHE_ON_FLUSH, CFMetaData.DEFAULT_POPULATE_IO_CACHE_ON_FLUSH))
+                   .triggerClass(getPropertySet(CFPropDefs.KW_TRIGGER_CLASS, null));
 
             // CQL2 can have null keyAliases
             if (keyAlias != null)
@@ -238,6 +240,11 @@ public class CreateColumnFamilyStatement
         return cfProps.getPropertyInt(key, defaultValue);
     }
 
+    private Set<String> getPropertySet(String key, Set<String> defaultValue)
+    {
+        return cfProps.getPropertySet(key, defaultValue);
+    }
+
     public Map<Term, String> getColumns()
     {
         return columns;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/72a6cff6/src/java/org/apache/cassandra/cql/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/QueryProcessor.java b/src/java/org/apache/cassandra/cql/QueryProcessor.java
index 2f9c5ba..57fec4a 100644
--- a/src/java/org/apache/cassandra/cql/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql/QueryProcessor.java
@@ -507,7 +507,7 @@ public class QueryProcessor
                     validateKey(mutation.key());
                 }
 
-                StorageProxy.mutate(rowMutations, update.getConsistencyLevel());
+                StorageProxy.mutateWithTriggers(rowMutations, update.getConsistencyLevel(), false);
 
                 result.type = CqlResultType.VOID;
                 return result;
@@ -536,7 +536,7 @@ public class QueryProcessor
                     validateKey(mutation.key());
                 }
 
-                StorageProxy.mutate(mutations, batch.getConsistencyLevel());
+                StorageProxy.mutateWithTriggers(mutations, batch.getConsistencyLevel(), false);
 
                 result.type = CqlResultType.VOID;
                 return result;
@@ -582,7 +582,7 @@ public class QueryProcessor
                     validateKey(deletion.key());
                 }
 
-                StorageProxy.mutate(deletions, delete.getConsistencyLevel());
+                StorageProxy.mutateWithTriggers(deletions, delete.getConsistencyLevel(), false);
 
                 result.type = CqlResultType.VOID;
                 return result;