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/06/17 00:58:36 UTC
[2/3] patch by Vijay; reviewed by Aleksey Yeschenko for CASSANDRA-5576
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 2155b8e..8943afb 100644
--- a/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
+++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/CfDef.java
@@ -82,7 +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 TRIGGERS_FIELD_DESC = new org.apache.thrift.protocol.TField("triggers", org.apache.thrift.protocol.TType.MAP, (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);
@@ -127,7 +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
+ public Map<String,Map<String,String>> triggers; // optional
/**
* @deprecated
*/
@@ -198,7 +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"),
+ TRIGGERS((short)43, "triggers"),
/**
* @deprecated
*/
@@ -307,8 +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 43: // TRIGGERS
+ return TRIGGERS;
case 9: // ROW_CACHE_SIZE
return ROW_CACHE_SIZE;
case 11: // KEY_CACHE_SIZE
@@ -391,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.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};
+ 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.TRIGGERS,_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_C
ACHE_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);
@@ -454,9 +454,12 @@ 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.TRIGGERS, new org.apache.thrift.meta_data.FieldMetaData("triggers", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ 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.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)))));
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,
@@ -594,12 +597,31 @@ 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);
+ if (other.isSetTriggers()) {
+ Map<String,Map<String,String>> __this__triggers = new HashMap<String,Map<String,String>>();
+ for (Map.Entry<String, Map<String,String>> other_element : other.triggers.entrySet()) {
+
+ String other_element_key = other_element.getKey();
+ Map<String,String> other_element_value = other_element.getValue();
+
+ String __this__triggers_copy_key = other_element_key;
+
+ Map<String,String> __this__triggers_copy_value = new HashMap<String,String>();
+ for (Map.Entry<String, String> other_element_value_element : other_element_value.entrySet()) {
+
+ String other_element_value_element_key = other_element_value_element.getKey();
+ String other_element_value_element_value = other_element_value_element.getValue();
+
+ String __this__triggers_copy_value_copy_key = other_element_value_element_key;
+
+ String __this__triggers_copy_value_copy_value = other_element_value_element_value;
+
+ __this__triggers_copy_value.put(__this__triggers_copy_value_copy_key, __this__triggers_copy_value_copy_value);
+ }
+
+ __this__triggers.put(__this__triggers_copy_key, __this__triggers_copy_value);
}
- this.trigger_class = __this__trigger_class;
+ this.triggers = __this__triggers;
}
this.row_cache_size = other.row_cache_size;
this.key_cache_size = other.key_cache_size;
@@ -664,7 +686,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;
+ this.triggers = null;
setRow_cache_sizeIsSet(false);
this.row_cache_size = 0.0;
setKey_cache_sizeIsSet(false);
@@ -1369,42 +1391,38 @@ 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 int getTriggersSize() {
+ return (this.triggers == null) ? 0 : this.triggers.size();
}
- public void addToTrigger_class(String elem) {
- if (this.trigger_class == null) {
- this.trigger_class = new HashSet<String>();
+ public void putToTriggers(String key, Map<String,String> val) {
+ if (this.triggers == null) {
+ this.triggers = new HashMap<String,Map<String,String>>();
}
- this.trigger_class.add(elem);
+ this.triggers.put(key, val);
}
- public Set<String> getTrigger_class() {
- return this.trigger_class;
+ public Map<String,Map<String,String>> getTriggers() {
+ return this.triggers;
}
- public CfDef setTrigger_class(Set<String> trigger_class) {
- this.trigger_class = trigger_class;
+ public CfDef setTriggers(Map<String,Map<String,String>> triggers) {
+ this.triggers = triggers;
return this;
}
- public void unsetTrigger_class() {
- this.trigger_class = null;
+ public void unsetTriggers() {
+ this.triggers = 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;
+ /** Returns true if field triggers is set (has been assigned a value) and false otherwise */
+ public boolean isSetTriggers() {
+ return this.triggers != null;
}
- public void setTrigger_classIsSet(boolean value) {
+ public void setTriggersIsSet(boolean value) {
if (!value) {
- this.trigger_class = null;
+ this.triggers = null;
}
}
@@ -1917,11 +1935,11 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
}
break;
- case TRIGGER_CLASS:
+ case TRIGGERS:
if (value == null) {
- unsetTrigger_class();
+ unsetTriggers();
} else {
- setTrigger_class((Set<String>)value);
+ setTriggers((Map<String,Map<String,String>>)value);
}
break;
@@ -2091,8 +2109,8 @@ 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 TRIGGERS:
+ return getTriggers();
case ROW_CACHE_SIZE:
return Double.valueOf(getRow_cache_size());
@@ -2189,8 +2207,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 TRIGGERS:
+ return isSetTriggers();
case ROW_CACHE_SIZE:
return isSetRow_cache_size();
case KEY_CACHE_SIZE:
@@ -2471,12 +2489,12 @@ 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))
+ boolean this_present_triggers = true && this.isSetTriggers();
+ boolean that_present_triggers = true && that.isSetTriggers();
+ if (this_present_triggers || that_present_triggers) {
+ if (!(this_present_triggers && that_present_triggers))
return false;
- if (!this.trigger_class.equals(that.trigger_class))
+ if (!this.triggers.equals(that.triggers))
return false;
}
@@ -2712,10 +2730,10 @@ 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_triggers = true && (isSetTriggers());
+ builder.append(present_triggers);
+ if (present_triggers)
+ builder.append(triggers);
boolean present_row_cache_size = true && (isSetRow_cache_size());
builder.append(present_row_cache_size);
@@ -3048,12 +3066,12 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
return lastComparison;
}
}
- lastComparison = Boolean.valueOf(isSetTrigger_class()).compareTo(typedOther.isSetTrigger_class());
+ lastComparison = Boolean.valueOf(isSetTriggers()).compareTo(typedOther.isSetTriggers());
if (lastComparison != 0) {
return lastComparison;
}
- if (isSetTrigger_class()) {
- lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.trigger_class, typedOther.trigger_class);
+ if (isSetTriggers()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.triggers, typedOther.triggers);
if (lastComparison != 0) {
return lastComparison;
}
@@ -3395,13 +3413,13 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
}
first = false;
}
- if (isSetTrigger_class()) {
+ if (isSetTriggers()) {
if (!first) sb.append(", ");
- sb.append("trigger_class:");
- if (this.trigger_class == null) {
+ sb.append("triggers:");
+ if (this.triggers == null) {
sb.append("null");
} else {
- sb.append(this.trigger_class);
+ sb.append(this.triggers);
}
first = false;
}
@@ -3771,20 +3789,34 @@ 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) {
+ case 43: // TRIGGERS
+ if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
{
- 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)
+ org.apache.thrift.protocol.TMap _map103 = iprot.readMapBegin();
+ struct.triggers = new HashMap<String,Map<String,String>>(2*_map103.size);
+ for (int _i104 = 0; _i104 < _map103.size; ++_i104)
{
- String _elem105; // optional
- _elem105 = iprot.readString();
- struct.trigger_class.add(_elem105);
+ String _key105; // required
+ Map<String,String> _val106; // required
+ _key105 = iprot.readString();
+ {
+ org.apache.thrift.protocol.TMap _map107 = iprot.readMapBegin();
+ _val106 = new HashMap<String,String>(2*_map107.size);
+ for (int _i108 = 0; _i108 < _map107.size; ++_i108)
+ {
+ String _key109; // required
+ String _val110; // required
+ _key109 = iprot.readString();
+ _val110 = iprot.readString();
+ _val106.put(_key109, _val110);
+ }
+ iprot.readMapEnd();
+ }
+ struct.triggers.put(_key105, _val106);
}
- iprot.readSetEnd();
+ iprot.readMapEnd();
}
- struct.setTrigger_classIsSet(true);
+ struct.setTriggersIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -3942,9 +3974,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 _iter106 : struct.column_metadata)
+ for (ColumnDef _iter111 : struct.column_metadata)
{
- _iter106.write(oprot);
+ _iter111.write(oprot);
}
oprot.writeListEnd();
}
@@ -4046,10 +4078,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> _iter107 : struct.compaction_strategy_options.entrySet())
+ for (Map.Entry<String, String> _iter112 : struct.compaction_strategy_options.entrySet())
{
- oprot.writeString(_iter107.getKey());
- oprot.writeString(_iter107.getValue());
+ oprot.writeString(_iter112.getKey());
+ oprot.writeString(_iter112.getValue());
}
oprot.writeMapEnd();
}
@@ -4066,10 +4098,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> _iter108 : struct.compression_options.entrySet())
+ for (Map.Entry<String, String> _iter113 : struct.compression_options.entrySet())
{
- oprot.writeString(_iter108.getKey());
- oprot.writeString(_iter108.getValue());
+ oprot.writeString(_iter113.getKey());
+ oprot.writeString(_iter113.getValue());
}
oprot.writeMapEnd();
}
@@ -4120,16 +4152,25 @@ 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);
+ if (struct.triggers != null) {
+ if (struct.isSetTriggers()) {
+ oprot.writeFieldBegin(TRIGGERS_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.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.triggers.size()));
+ for (Map.Entry<String, Map<String,String>> _iter114 : struct.triggers.entrySet())
{
- oprot.writeString(_iter109);
+ oprot.writeString(_iter114.getKey());
+ {
+ oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, _iter114.getValue().size()));
+ for (Map.Entry<String, String> _iter115 : _iter114.getValue().entrySet())
+ {
+ oprot.writeString(_iter115.getKey());
+ oprot.writeString(_iter115.getValue());
+ }
+ oprot.writeMapEnd();
+ }
}
- oprot.writeSetEnd();
+ oprot.writeMapEnd();
}
oprot.writeFieldEnd();
}
@@ -4229,7 +4270,7 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
if (struct.isSetSpeculative_retry()) {
optionals.set(24);
}
- if (struct.isSetTrigger_class()) {
+ if (struct.isSetTriggers()) {
optionals.set(25);
}
if (struct.isSetRow_cache_size()) {
@@ -4281,9 +4322,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 _iter110 : struct.column_metadata)
+ for (ColumnDef _iter116 : struct.column_metadata)
{
- _iter110.write(oprot);
+ _iter116.write(oprot);
}
}
}
@@ -4317,20 +4358,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> _iter111 : struct.compaction_strategy_options.entrySet())
+ for (Map.Entry<String, String> _iter117 : struct.compaction_strategy_options.entrySet())
{
- oprot.writeString(_iter111.getKey());
- oprot.writeString(_iter111.getValue());
+ oprot.writeString(_iter117.getKey());
+ oprot.writeString(_iter117.getValue());
}
}
}
if (struct.isSetCompression_options()) {
{
oprot.writeI32(struct.compression_options.size());
- for (Map.Entry<String, String> _iter112 : struct.compression_options.entrySet())
+ for (Map.Entry<String, String> _iter118 : struct.compression_options.entrySet())
{
- oprot.writeString(_iter112.getKey());
- oprot.writeString(_iter112.getValue());
+ oprot.writeString(_iter118.getKey());
+ oprot.writeString(_iter118.getValue());
}
}
}
@@ -4358,12 +4399,20 @@ 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()) {
+ if (struct.isSetTriggers()) {
{
- oprot.writeI32(struct.trigger_class.size());
- for (String _iter113 : struct.trigger_class)
+ oprot.writeI32(struct.triggers.size());
+ for (Map.Entry<String, Map<String,String>> _iter119 : struct.triggers.entrySet())
{
- oprot.writeString(_iter113);
+ oprot.writeString(_iter119.getKey());
+ {
+ oprot.writeI32(_iter119.getValue().size());
+ for (Map.Entry<String, String> _iter120 : _iter119.getValue().entrySet())
+ {
+ oprot.writeString(_iter120.getKey());
+ oprot.writeString(_iter120.getValue());
+ }
+ }
}
}
}
@@ -4429,14 +4478,14 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
}
if (incoming.get(5)) {
{
- 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)
+ org.apache.thrift.protocol.TList _list121 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+ struct.column_metadata = new ArrayList<ColumnDef>(_list121.size);
+ for (int _i122 = 0; _i122 < _list121.size; ++_i122)
{
- ColumnDef _elem116; // optional
- _elem116 = new ColumnDef();
- _elem116.read(iprot);
- struct.column_metadata.add(_elem116);
+ ColumnDef _elem123; // optional
+ _elem123 = new ColumnDef();
+ _elem123.read(iprot);
+ struct.column_metadata.add(_elem123);
}
}
struct.setColumn_metadataIsSet(true);
@@ -4479,30 +4528,30 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
}
if (incoming.get(15)) {
{
- 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)
+ org.apache.thrift.protocol.TMap _map124 = 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*_map124.size);
+ for (int _i125 = 0; _i125 < _map124.size; ++_i125)
{
- String _key119; // required
- String _val120; // required
- _key119 = iprot.readString();
- _val120 = iprot.readString();
- struct.compaction_strategy_options.put(_key119, _val120);
+ String _key126; // required
+ String _val127; // required
+ _key126 = iprot.readString();
+ _val127 = iprot.readString();
+ struct.compaction_strategy_options.put(_key126, _val127);
}
}
struct.setCompaction_strategy_optionsIsSet(true);
}
if (incoming.get(16)) {
{
- 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)
+ org.apache.thrift.protocol.TMap _map128 = 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*_map128.size);
+ for (int _i129 = 0; _i129 < _map128.size; ++_i129)
{
- String _key123; // required
- String _val124; // required
- _key123 = iprot.readString();
- _val124 = iprot.readString();
- struct.compression_options.put(_key123, _val124);
+ String _key130; // required
+ String _val131; // required
+ _key130 = iprot.readString();
+ _val131 = iprot.readString();
+ struct.compression_options.put(_key130, _val131);
}
}
struct.setCompression_optionsIsSet(true);
@@ -4541,16 +4590,29 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
}
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)
+ org.apache.thrift.protocol.TMap _map132 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
+ struct.triggers = new HashMap<String,Map<String,String>>(2*_map132.size);
+ for (int _i133 = 0; _i133 < _map132.size; ++_i133)
{
- String _elem127; // optional
- _elem127 = iprot.readString();
- struct.trigger_class.add(_elem127);
+ String _key134; // required
+ Map<String,String> _val135; // required
+ _key134 = iprot.readString();
+ {
+ org.apache.thrift.protocol.TMap _map136 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+ _val135 = new HashMap<String,String>(2*_map136.size);
+ for (int _i137 = 0; _i137 < _map136.size; ++_i137)
+ {
+ String _key138; // required
+ String _val139; // required
+ _key138 = iprot.readString();
+ _val139 = iprot.readString();
+ _val135.put(_key138, _val139);
+ }
+ }
+ struct.triggers.put(_key134, _val135);
}
}
- struct.setTrigger_classIsSet(true);
+ struct.setTriggersIsSet(true);
}
if (incoming.get(26)) {
struct.row_cache_size = iprot.readDouble();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 6b60337..f2d220e 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 _map154 = iprot.readMapBegin();
- struct.name_types = new HashMap<ByteBuffer,String>(2*_map154.size);
- for (int _i155 = 0; _i155 < _map154.size; ++_i155)
+ org.apache.thrift.protocol.TMap _map166 = iprot.readMapBegin();
+ struct.name_types = new HashMap<ByteBuffer,String>(2*_map166.size);
+ for (int _i167 = 0; _i167 < _map166.size; ++_i167)
{
- ByteBuffer _key156; // required
- String _val157; // required
- _key156 = iprot.readBinary();
- _val157 = iprot.readString();
- struct.name_types.put(_key156, _val157);
+ ByteBuffer _key168; // required
+ String _val169; // required
+ _key168 = iprot.readBinary();
+ _val169 = iprot.readString();
+ struct.name_types.put(_key168, _val169);
}
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 _map158 = iprot.readMapBegin();
- struct.value_types = new HashMap<ByteBuffer,String>(2*_map158.size);
- for (int _i159 = 0; _i159 < _map158.size; ++_i159)
+ org.apache.thrift.protocol.TMap _map170 = iprot.readMapBegin();
+ struct.value_types = new HashMap<ByteBuffer,String>(2*_map170.size);
+ for (int _i171 = 0; _i171 < _map170.size; ++_i171)
{
- ByteBuffer _key160; // required
- String _val161; // required
- _key160 = iprot.readBinary();
- _val161 = iprot.readString();
- struct.value_types.put(_key160, _val161);
+ ByteBuffer _key172; // required
+ String _val173; // required
+ _key172 = iprot.readBinary();
+ _val173 = iprot.readString();
+ struct.value_types.put(_key172, _val173);
}
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> _iter162 : struct.name_types.entrySet())
+ for (Map.Entry<ByteBuffer, String> _iter174 : struct.name_types.entrySet())
{
- oprot.writeBinary(_iter162.getKey());
- oprot.writeString(_iter162.getValue());
+ oprot.writeBinary(_iter174.getKey());
+ oprot.writeString(_iter174.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> _iter163 : struct.value_types.entrySet())
+ for (Map.Entry<ByteBuffer, String> _iter175 : struct.value_types.entrySet())
{
- oprot.writeBinary(_iter163.getKey());
- oprot.writeString(_iter163.getValue());
+ oprot.writeBinary(_iter175.getKey());
+ oprot.writeString(_iter175.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> _iter164 : struct.name_types.entrySet())
+ for (Map.Entry<ByteBuffer, String> _iter176 : struct.name_types.entrySet())
{
- oprot.writeBinary(_iter164.getKey());
- oprot.writeString(_iter164.getValue());
+ oprot.writeBinary(_iter176.getKey());
+ oprot.writeString(_iter176.getValue());
}
}
{
oprot.writeI32(struct.value_types.size());
- for (Map.Entry<ByteBuffer, String> _iter165 : struct.value_types.entrySet())
+ for (Map.Entry<ByteBuffer, String> _iter177 : struct.value_types.entrySet())
{
- oprot.writeBinary(_iter165.getKey());
- oprot.writeString(_iter165.getValue());
+ oprot.writeBinary(_iter177.getKey());
+ oprot.writeString(_iter177.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 _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)
+ org.apache.thrift.protocol.TMap _map178 = 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*_map178.size);
+ for (int _i179 = 0; _i179 < _map178.size; ++_i179)
{
- ByteBuffer _key168; // required
- String _val169; // required
- _key168 = iprot.readBinary();
- _val169 = iprot.readString();
- struct.name_types.put(_key168, _val169);
+ ByteBuffer _key180; // required
+ String _val181; // required
+ _key180 = iprot.readBinary();
+ _val181 = iprot.readString();
+ struct.name_types.put(_key180, _val181);
}
}
struct.setName_typesIsSet(true);
{
- 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)
+ org.apache.thrift.protocol.TMap _map182 = 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*_map182.size);
+ for (int _i183 = 0; _i183 < _map182.size; ++_i183)
{
- ByteBuffer _key172; // required
- String _val173; // required
- _key172 = iprot.readBinary();
- _val173 = iprot.readString();
- struct.value_types.put(_key172, _val173);
+ ByteBuffer _key184; // required
+ String _val185; // required
+ _key184 = iprot.readBinary();
+ _val185 = iprot.readString();
+ struct.value_types.put(_key184, _val185);
}
}
struct.setValue_typesIsSet(true);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 8f9146b..3f137de 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 _list182 = iprot.readListBegin();
- struct.variable_types = new ArrayList<String>(_list182.size);
- for (int _i183 = 0; _i183 < _list182.size; ++_i183)
+ org.apache.thrift.protocol.TList _list194 = iprot.readListBegin();
+ struct.variable_types = new ArrayList<String>(_list194.size);
+ for (int _i195 = 0; _i195 < _list194.size; ++_i195)
{
- String _elem184; // optional
- _elem184 = iprot.readString();
- struct.variable_types.add(_elem184);
+ String _elem196; // optional
+ _elem196 = iprot.readString();
+ struct.variable_types.add(_elem196);
}
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 _list185 = iprot.readListBegin();
- struct.variable_names = new ArrayList<String>(_list185.size);
- for (int _i186 = 0; _i186 < _list185.size; ++_i186)
+ org.apache.thrift.protocol.TList _list197 = iprot.readListBegin();
+ struct.variable_names = new ArrayList<String>(_list197.size);
+ for (int _i198 = 0; _i198 < _list197.size; ++_i198)
{
- String _elem187; // optional
- _elem187 = iprot.readString();
- struct.variable_names.add(_elem187);
+ String _elem199; // optional
+ _elem199 = iprot.readString();
+ struct.variable_names.add(_elem199);
}
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 _iter188 : struct.variable_types)
+ for (String _iter200 : struct.variable_types)
{
- oprot.writeString(_iter188);
+ oprot.writeString(_iter200);
}
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 _iter189 : struct.variable_names)
+ for (String _iter201 : struct.variable_names)
{
- oprot.writeString(_iter189);
+ oprot.writeString(_iter201);
}
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 _iter190 : struct.variable_types)
+ for (String _iter202 : struct.variable_types)
{
- oprot.writeString(_iter190);
+ oprot.writeString(_iter202);
}
}
}
if (struct.isSetVariable_names()) {
{
oprot.writeI32(struct.variable_names.size());
- for (String _iter191 : struct.variable_names)
+ for (String _iter203 : struct.variable_names)
{
- oprot.writeString(_iter191);
+ oprot.writeString(_iter203);
}
}
}
@@ -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 _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)
+ org.apache.thrift.protocol.TList _list204 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+ struct.variable_types = new ArrayList<String>(_list204.size);
+ for (int _i205 = 0; _i205 < _list204.size; ++_i205)
{
- String _elem194; // optional
- _elem194 = iprot.readString();
- struct.variable_types.add(_elem194);
+ String _elem206; // optional
+ _elem206 = iprot.readString();
+ struct.variable_types.add(_elem206);
}
}
struct.setVariable_typesIsSet(true);
}
if (incoming.get(1)) {
{
- 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)
+ org.apache.thrift.protocol.TList _list207 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+ struct.variable_names = new ArrayList<String>(_list207.size);
+ for (int _i208 = 0; _i208 < _list207.size; ++_i208)
{
- String _elem197; // optional
- _elem197 = iprot.readString();
- struct.variable_names.add(_elem197);
+ String _elem209; // optional
+ _elem209 = iprot.readString();
+ struct.variable_names.add(_elem209);
}
}
struct.setVariable_namesIsSet(true);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 0ef02f7..5867b44 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 _list174 = iprot.readListBegin();
- struct.rows = new ArrayList<CqlRow>(_list174.size);
- for (int _i175 = 0; _i175 < _list174.size; ++_i175)
+ org.apache.thrift.protocol.TList _list186 = iprot.readListBegin();
+ struct.rows = new ArrayList<CqlRow>(_list186.size);
+ for (int _i187 = 0; _i187 < _list186.size; ++_i187)
{
- CqlRow _elem176; // optional
- _elem176 = new CqlRow();
- _elem176.read(iprot);
- struct.rows.add(_elem176);
+ CqlRow _elem188; // optional
+ _elem188 = new CqlRow();
+ _elem188.read(iprot);
+ struct.rows.add(_elem188);
}
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 _iter177 : struct.rows)
+ for (CqlRow _iter189 : struct.rows)
{
- _iter177.write(oprot);
+ _iter189.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 _iter178 : struct.rows)
+ for (CqlRow _iter190 : struct.rows)
{
- _iter178.write(oprot);
+ _iter190.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 _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)
+ org.apache.thrift.protocol.TList _list191 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+ struct.rows = new ArrayList<CqlRow>(_list191.size);
+ for (int _i192 = 0; _i192 < _list191.size; ++_i192)
{
- CqlRow _elem181; // optional
- _elem181 = new CqlRow();
- _elem181.read(iprot);
- struct.rows.add(_elem181);
+ CqlRow _elem193; // optional
+ _elem193 = new CqlRow();
+ _elem193.read(iprot);
+ struct.rows.add(_elem193);
}
}
struct.setRowsIsSet(true);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 d3816cc..d495530 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 _list146 = iprot.readListBegin();
- struct.columns = new ArrayList<Column>(_list146.size);
- for (int _i147 = 0; _i147 < _list146.size; ++_i147)
+ org.apache.thrift.protocol.TList _list158 = iprot.readListBegin();
+ struct.columns = new ArrayList<Column>(_list158.size);
+ for (int _i159 = 0; _i159 < _list158.size; ++_i159)
{
- Column _elem148; // optional
- _elem148 = new Column();
- _elem148.read(iprot);
- struct.columns.add(_elem148);
+ Column _elem160; // optional
+ _elem160 = new Column();
+ _elem160.read(iprot);
+ struct.columns.add(_elem160);
}
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 _iter149 : struct.columns)
+ for (Column _iter161 : struct.columns)
{
- _iter149.write(oprot);
+ _iter161.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 _iter150 : struct.columns)
+ for (Column _iter162 : struct.columns)
{
- _iter150.write(oprot);
+ _iter162.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 _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)
+ org.apache.thrift.protocol.TList _list163 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+ struct.columns = new ArrayList<Column>(_list163.size);
+ for (int _i164 = 0; _i164 < _list163.size; ++_i164)
{
- Column _elem153; // optional
- _elem153 = new Column();
- _elem153.read(iprot);
- struct.columns.add(_elem153);
+ Column _elem165; // optional
+ _elem165 = new Column();
+ _elem165.read(iprot);
+ struct.columns.add(_elem165);
}
}
struct.setColumnsIsSet(true);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 f284680..3f2ee29 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 _map128 = iprot.readMapBegin();
- struct.strategy_options = new HashMap<String,String>(2*_map128.size);
- for (int _i129 = 0; _i129 < _map128.size; ++_i129)
+ org.apache.thrift.protocol.TMap _map140 = iprot.readMapBegin();
+ struct.strategy_options = new HashMap<String,String>(2*_map140.size);
+ for (int _i141 = 0; _i141 < _map140.size; ++_i141)
{
- String _key130; // required
- String _val131; // required
- _key130 = iprot.readString();
- _val131 = iprot.readString();
- struct.strategy_options.put(_key130, _val131);
+ String _key142; // required
+ String _val143; // required
+ _key142 = iprot.readString();
+ _val143 = iprot.readString();
+ struct.strategy_options.put(_key142, _val143);
}
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 _list132 = iprot.readListBegin();
- struct.cf_defs = new ArrayList<CfDef>(_list132.size);
- for (int _i133 = 0; _i133 < _list132.size; ++_i133)
+ org.apache.thrift.protocol.TList _list144 = iprot.readListBegin();
+ struct.cf_defs = new ArrayList<CfDef>(_list144.size);
+ for (int _i145 = 0; _i145 < _list144.size; ++_i145)
{
- CfDef _elem134; // optional
- _elem134 = new CfDef();
- _elem134.read(iprot);
- struct.cf_defs.add(_elem134);
+ CfDef _elem146; // optional
+ _elem146 = new CfDef();
+ _elem146.read(iprot);
+ struct.cf_defs.add(_elem146);
}
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> _iter135 : struct.strategy_options.entrySet())
+ for (Map.Entry<String, String> _iter147 : struct.strategy_options.entrySet())
{
- oprot.writeString(_iter135.getKey());
- oprot.writeString(_iter135.getValue());
+ oprot.writeString(_iter147.getKey());
+ oprot.writeString(_iter147.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 _iter136 : struct.cf_defs)
+ for (CfDef _iter148 : struct.cf_defs)
{
- _iter136.write(oprot);
+ _iter148.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 _iter137 : struct.cf_defs)
+ for (CfDef _iter149 : struct.cf_defs)
{
- _iter137.write(oprot);
+ _iter149.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> _iter138 : struct.strategy_options.entrySet())
+ for (Map.Entry<String, String> _iter150 : struct.strategy_options.entrySet())
{
- oprot.writeString(_iter138.getKey());
- oprot.writeString(_iter138.getValue());
+ oprot.writeString(_iter150.getKey());
+ oprot.writeString(_iter150.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 _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)
+ org.apache.thrift.protocol.TList _list151 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+ struct.cf_defs = new ArrayList<CfDef>(_list151.size);
+ for (int _i152 = 0; _i152 < _list151.size; ++_i152)
{
- CfDef _elem141; // optional
- _elem141 = new CfDef();
- _elem141.read(iprot);
- struct.cf_defs.add(_elem141);
+ CfDef _elem153; // optional
+ _elem153 = new CfDef();
+ _elem153.read(iprot);
+ struct.cf_defs.add(_elem153);
}
}
struct.setCf_defsIsSet(true);
BitSet incoming = iprot.readBitSet(3);
if (incoming.get(0)) {
{
- 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)
+ org.apache.thrift.protocol.TMap _map154 = 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*_map154.size);
+ for (int _i155 = 0; _i155 < _map154.size; ++_i155)
{
- String _key144; // required
- String _val145; // required
- _key144 = iprot.readString();
- _val145 = iprot.readString();
- struct.strategy_options.put(_key144, _val145);
+ String _key156; // required
+ String _val157; // required
+ _key156 = iprot.readString();
+ _val157 = iprot.readString();
+ struct.strategy_options.put(_key156, _val157);
}
}
struct.setStrategy_optionsIsSet(true);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 c27ee2e..80a6211 100644
--- a/src/java/org/apache/cassandra/cli/CliClient.java
+++ b/src/java/org/apache/cassandra/cli/CliClient.java
@@ -27,13 +27,10 @@ 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;
@@ -145,7 +142,6 @@ public class CliClient
DEFAULT_TIME_TO_LIVE,
SPECULATIVE_RETRY,
POPULATE_IO_CACHE_ON_FLUSH,
- TRIGGER_CLASSES
}
private static final String DEFAULT_PLACEMENT_STRATEGY = "org.apache.cassandra.locator.NetworkTopologyStrategy";
@@ -1359,10 +1355,6 @@ 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);
@@ -1827,9 +1819,6 @@ 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())
{
StringBuilder cOptions = new StringBuilder();
@@ -2199,9 +2188,6 @@ 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/8bf6e155/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 9d35a70..cfe1090 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -23,13 +23,12 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.ByteBuffer;
import java.util.*;
+import java.util.Map.Entry;
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;
@@ -141,7 +140,6 @@ 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");
@@ -159,6 +157,14 @@ public final class CFMetaData
+ "PRIMARY KEY(keyspace_name, columnfamily_name, column_name)"
+ ") WITH COMMENT='ColumnFamily column attributes' AND gc_grace_seconds=8640");
+ public static final CFMetaData SchemaTriggerCf = compile("CREATE TABLE \"" + SystemTable.SCHEMA_TRIGGERS_CF + "\" ("
+ + "keyspace_name text,"
+ + "column_family text,"
+ + "trigger_name text,"
+ + "trigger_options map<text, text>,"
+ + "PRIMARY KEY (keyspace_name, column_family, trigger_name)"
+ + ") WITH COMMENT='triggers metadata table'");
+
public static final CFMetaData HintsCf = compile("CREATE TABLE " + SystemTable.HINTS_CF + " ("
+ "target_id uuid,"
+ "hint_id timeuuid,"
@@ -364,7 +370,8 @@ 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;
+ private volatile Map<String, Map<String, String>> triggers = new HashMap<>();
+ private volatile Collection<String> cachedTriggers;
/*
* All CQL3 columns definition are stored in the column_metadata map.
@@ -410,7 +417,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 triggers(Map<String, Map<String, String>> prop) {triggers = prop; cachedTriggers = TriggerOptions.extractClasses(triggers); return this;}
public CFMetaData(String keyspace, String name, ColumnFamilyType type, AbstractType<?> comp, AbstractType<?> subcc)
{
@@ -435,6 +442,11 @@ public final class CFMetaData
updateCfDef(); // init cqlCfDef
}
+ public Map<String, Map<String, String>> getTriggers()
+ {
+ return new HashMap<>(triggers);
+ }
+
private static CFMetaData compile(String cql, String keyspace)
{
return compile(null, cql, keyspace);
@@ -508,7 +520,7 @@ public final class CFMetaData
.gcGraceSeconds(0)
.caching(indexCaching)
.speculativeRetry(parent.speculativeRetry)
- .triggerClass(parent.triggerClass)
+ .triggers(parent.triggers)
.compactionStrategyClass(parent.compactionStrategyClass)
.compactionStrategyOptions(parent.compactionStrategyOptions)
.reloadSecondaryIndexMetadata(parent);
@@ -564,7 +576,7 @@ public final class CFMetaData
.memtableFlushPeriod(oldCFMD.memtableFlushPeriod)
.populateIoCacheOnFlush(oldCFMD.populateIoCacheOnFlush)
.droppedColumns(oldCFMD.droppedColumns)
- .triggerClass(oldCFMD.triggerClass);
+ .triggers(oldCFMD.getTriggers());
}
/**
@@ -695,9 +707,9 @@ public final class CFMetaData
: bloomFilterFpChance;
}
- public Set<String> getTriggerClass()
+ public Collection<String> getTriggerClasses()
{
- return triggerClass;
+ return cachedTriggers;
}
public Caching getCaching()
@@ -769,7 +781,7 @@ public final class CFMetaData
.append(speculativeRetry, rhs.speculativeRetry)
.append(populateIoCacheOnFlush, rhs.populateIoCacheOnFlush)
.append(droppedColumns, rhs.droppedColumns)
- .append(triggerClass, rhs.triggerClass)
+ .append(triggers, rhs.triggers)
.isEquals();
}
@@ -802,7 +814,7 @@ public final class CFMetaData
.append(speculativeRetry)
.append(populateIoCacheOnFlush)
.append(droppedColumns)
- .append(triggerClass)
+ .append(triggers)
.toHashCode();
}
@@ -892,8 +904,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);
+ if (cf_def.isSetTriggers())
+ newCFMD.triggers(cf_def.triggers);
CompressionParameters cp = CompressionParameters.create(cf_def.compression_options);
@@ -975,8 +987,6 @@ public final class CFMetaData
speculativeRetry = cfm.speculativeRetry;
populateIoCacheOnFlush = cfm.populateIoCacheOnFlush;
- if (cfm.triggerClass != null)
- triggerClass = cfm.triggerClass;
if (!cfm.droppedColumns.isEmpty())
droppedColumns = cfm.droppedColumns;
@@ -995,6 +1005,7 @@ public final class CFMetaData
oldDef.apply(def, getColumnDefinitionComparator(oldDef));
}
+ triggers(new HashMap<>(cfm.triggers)); // update trigger as an unit.
compactionStrategyClass = cfm.compactionStrategyClass;
compactionStrategyOptions = cfm.compactionStrategyOptions;
@@ -1137,8 +1148,7 @@ 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));
+ def.setTriggers(triggers);
return def;
}
@@ -1430,6 +1440,12 @@ public final class CFMetaData
cd.toSchema(rm, cfName, getColumnDefinitionComparator(cd), modificationTimestamp);
}
+ MapDifference<String, Map<String, String>> tdiffrence = Maps.difference(triggers, newState.triggers);
+ for (Entry<String, Map<String, String>> tentry : tdiffrence.entriesOnlyOnLeft().entrySet())
+ TriggerOptions.deleteColumns(rm, cfName, tentry, modificationTimestamp);
+ for (Entry<String, Map<String, String>> tentry : tdiffrence.entriesOnlyOnRight().entrySet())
+ TriggerOptions.addColumns(rm, cfName, tentry, modificationTimestamp);
+
return rm;
}
@@ -1450,6 +1466,11 @@ public final class CFMetaData
builder.add(ByteBufferUtil.bytes(cfName));
cf.addAtom(new RangeTombstone(builder.build(), builder.buildAsEndOfRange(), timestamp, ldt));
+ ColumnFamily tcf = rm.addOrGet(SystemTable.SCHEMA_TRIGGERS_CF);
+ ColumnNameBuilder tbuilder = SchemaTriggerCf.getCfDef().getColumnNameBuilder();
+ tbuilder.add(ByteBufferUtil.bytes(cfName));
+ tcf.addAtom(new RangeTombstone(tbuilder.build(), tbuilder.buildAsEndOfRange(), timestamp, ldt));
+
for (ColumnDefinition cd : column_metadata.values())
cd.deleteFromSchema(rm, cfName, getColumnDefinitionComparator(cd), timestamp);
@@ -1509,8 +1530,6 @@ 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));
@@ -1560,8 +1579,6 @@ 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
@@ -1626,6 +1643,9 @@ public final class CFMetaData
{
CFMetaData cfDef = fromSchemaNoColumns(result);
+ // read triggers.
+ cfDef.triggers(TriggerOptions.getAllTriggers(cfDef.ksName, cfDef.cfName));
+
Row serializedColumnDefinitions = ColumnDefinition.readSchema(cfDef.ksName, cfDef.cfName);
return addColumnDefinitionSchema(cfDef, serializedColumnDefinitions);
}
@@ -1984,7 +2004,7 @@ public final class CFMetaData
.append("indexInterval", indexInterval)
.append("populateIoCacheOnFlush", populateIoCacheOnFlush)
.append("droppedColumns", droppedColumns)
- .append("trigger_class", triggerClass)
+ .append("triggers", triggers)
.toString();
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/src/java/org/apache/cassandra/config/KSMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/KSMetaData.java b/src/java/org/apache/cassandra/config/KSMetaData.java
index db08da8..f188134 100644
--- a/src/java/org/apache/cassandra/config/KSMetaData.java
+++ b/src/java/org/apache/cassandra/config/KSMetaData.java
@@ -84,6 +84,7 @@ public final class KSMetaData
CFMetaData.PeerEventsCf,
CFMetaData.HintsCf,
CFMetaData.IndexCf,
+ CFMetaData.SchemaTriggerCf,
CFMetaData.CounterIdCf,
CFMetaData.SchemaKeyspacesCf,
CFMetaData.SchemaColumnFamiliesCf,
@@ -228,6 +229,7 @@ public final class KSMetaData
rm.delete(SystemTable.SCHEMA_KEYSPACES_CF, timestamp);
rm.delete(SystemTable.SCHEMA_COLUMNFAMILIES_CF, timestamp);
rm.delete(SystemTable.SCHEMA_COLUMNS_CF, timestamp);
+ rm.delete(SystemTable.SCHEMA_TRIGGERS_CF, timestamp);
return rm;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/src/java/org/apache/cassandra/config/TriggerOptions.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/TriggerOptions.java b/src/java/org/apache/cassandra/config/TriggerOptions.java
new file mode 100644
index 0000000..3ab5f86
--- /dev/null
+++ b/src/java/org/apache/cassandra/config/TriggerOptions.java
@@ -0,0 +1,93 @@
+package org.apache.cassandra.config;
+
+import static org.apache.cassandra.cql3.QueryProcessor.processInternal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.cassandra.cql3.ColumnNameBuilder;
+import org.apache.cassandra.cql3.UntypedResultSet;
+import org.apache.cassandra.cql3.UntypedResultSet.Row;
+import org.apache.cassandra.db.ColumnFamily;
+import org.apache.cassandra.db.RangeTombstone;
+import org.apache.cassandra.db.RowMutation;
+import org.apache.cassandra.db.SystemTable;
+import org.apache.cassandra.db.marshal.UTF8Type;
+import org.apache.cassandra.utils.ByteBufferUtil;
+
+public class TriggerOptions
+{
+ private static final String CLASS_KEY = "class";
+ private static final String OPTIONS_KEY = "trigger_options";
+
+ public static Map<String, Map<String, String>> getAllTriggers(String ksName, String cfName)
+ {
+ String req = "SELECT * FROM system.%s WHERE keyspace_name='%s' AND column_family='%s'";
+ UntypedResultSet result = processInternal(String.format(req, SystemTable.SCHEMA_TRIGGERS_CF, ksName, cfName));
+ Map<String, Map<String, String>> triggers = new HashMap<>();
+ if (result.isEmpty())
+ return triggers;
+ for (Row row : result)
+ triggers.put(row.getString("trigger_name"), row.getMap(OPTIONS_KEY, UTF8Type.instance, UTF8Type.instance));
+ return triggers;
+ }
+
+ public static void addColumns(RowMutation rm, String cfName, Entry<String, Map<String, String>> tentry, long modificationTimestamp)
+ {
+ ColumnFamily cf = rm.addOrGet(SystemTable.SCHEMA_TRIGGERS_CF);
+ assert tentry.getValue().get(CLASS_KEY) != null;
+ ColumnNameBuilder builder = CFMetaData.SchemaTriggerCf.getCfDef().getColumnNameBuilder();
+ builder.add(ByteBufferUtil.bytes(cfName)).add(ByteBufferUtil.bytes(tentry.getKey())).add(ByteBufferUtil.bytes(OPTIONS_KEY));
+ for (Entry<String, String> entry : tentry.getValue().entrySet())
+ {
+ ColumnNameBuilder builderCopy = builder.copy();
+ builderCopy.add(ByteBufferUtil.bytes(entry.getKey()));
+ cf.addColumn(builderCopy.build(), ByteBufferUtil.bytes(entry.getValue()), modificationTimestamp);
+ }
+ }
+
+ public static void deleteColumns(RowMutation rm, String cfName, Entry<String, Map<String, String>> tentry, long modificationTimestamp)
+ {
+ ColumnFamily cf = rm.addOrGet(SystemTable.SCHEMA_TRIGGERS_CF);
+ int ldt = (int) (System.currentTimeMillis() / 1000);
+ ColumnNameBuilder builder = CFMetaData.SchemaTriggerCf.getCfDef().getColumnNameBuilder();
+ builder.add(ByteBufferUtil.bytes(cfName)).add(ByteBufferUtil.bytes(tentry.getKey()));
+ cf.addAtom(new RangeTombstone(builder.build(), builder.buildAsEndOfRange(), modificationTimestamp, ldt));
+ }
+
+ public static void update(CFMetaData cfm, String triggerName, String clazz)
+ {
+ Map<String, Map<String, String>> existingTriggers = cfm.getTriggers();
+ assert existingTriggers.get(triggerName) == null;
+ Map<String, String> triggerUnit = new HashMap<>();
+ triggerUnit.put(CLASS_KEY, clazz);
+ existingTriggers.put(triggerName, triggerUnit);
+ cfm.triggers(existingTriggers);
+ }
+
+ public static void remove(CFMetaData cfm, String triggerName)
+ {
+ Map<String, Map<String, String>> existingTriggers = cfm.getTriggers(); // have a copy of the triggers
+ existingTriggers.remove(triggerName);
+ cfm.triggers(existingTriggers);
+ }
+
+ public static boolean hasTrigger(CFMetaData cfm, String triggerName)
+ {
+ return cfm.getTriggers().get(triggerName) != null;
+ }
+
+ public static Collection<String> extractClasses(Map<String, Map<String, String>> triggers)
+ {
+ List<String> classes = new ArrayList<>();
+ if (triggers.isEmpty())
+ return null;
+ for (Map<String, String> options : triggers.values())
+ classes.add(options.get(CLASS_KEY));
+ return classes;
+ }
+}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/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 951b1bb..662d889 100644
--- a/src/java/org/apache/cassandra/cql/AlterTableStatement.java
+++ b/src/java/org/apache/cassandra/cql/AlterTableStatement.java
@@ -186,7 +186,6 @@ 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/8bf6e155/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 e8b73ef..dd56387 100644
--- a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
+++ b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
@@ -202,8 +202,7 @@ 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))
- .triggerClass(getPropertySet(CFPropDefs.KW_TRIGGER_CLASS, null));
+ .populateIoCacheOnFlush(getPropertyBoolean(CFPropDefs.KW_POPULATE_IO_CACHE_ON_FLUSH, CFMetaData.DEFAULT_POPULATE_IO_CACHE_ON_FLUSH));
// CQL2 can have null keyAliases
if (keyAlias != null)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/src/java/org/apache/cassandra/cql3/CFPropDefs.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CFPropDefs.java b/src/java/org/apache/cassandra/cql3/CFPropDefs.java
index 2c0ad0d..3167c9e 100644
--- a/src/java/org/apache/cassandra/cql3/CFPropDefs.java
+++ b/src/java/org/apache/cassandra/cql3/CFPropDefs.java
@@ -152,8 +152,6 @@ public class CFPropDefs extends PropertyDefinitions
cfm.speculativeRetry(CFMetaData.SpeculativeRetry.fromString(getString(KW_SPECULATIVE_RETRY, cfm.getSpeculativeRetry().toString())));
cfm.memtableFlushPeriod(getInt(KW_MEMTABLE_FLUSH_PERIOD, cfm.getMemtableFlushPeriod()));
cfm.populateIoCacheOnFlush(getBoolean(KW_POPULATE_IO_CACHE_ON_FLUSH, cfm.populateIoCacheOnFlush()));
- if (hasProperty(KW_TRIGGER_CLASS))
- cfm.triggerClass(getSet(KW_TRIGGER_CLASS, cfm.getTriggerClass()));
if (compactionStrategyClass != null)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/src/java/org/apache/cassandra/cql3/Cql.g
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Cql.g b/src/java/org/apache/cassandra/cql3/Cql.g
index 913f6ea..71c6ae3 100644
--- a/src/java/org/apache/cassandra/cql3/Cql.g
+++ b/src/java/org/apache/cassandra/cql3/Cql.g
@@ -193,6 +193,8 @@ cqlStatement returns [ParsedStatement stmt]
| st20=alterUserStatement { $stmt = st20; }
| st21=dropUserStatement { $stmt = st21; }
| st22=listUsersStatement { $stmt = st22; }
+ | st23=createTriggerStatement { $stmt = st23; }
+ | st24=dropTriggerStatement { $stmt = st24; }
;
/*
@@ -488,6 +490,22 @@ createIndexStatement returns [CreateIndexStatement expr]
;
/**
+ * CREATE TRIGGER [triggerName] ON columnFamily (columnName) EXECUTE (class, class);
+ */
+createTriggerStatement returns [CreateTriggerStatement expr]
+ : K_CREATE K_TRIGGER (tn=IDENT) K_ON cf=columnFamilyName K_USING tc1=STRING_LITERAL
+ { $expr = new CreateTriggerStatement(cf, $tn.text, $tc1.text); }
+ ;
+
+/**
+ * DROP TRIGGER [triggerName] ON columnFamily (columnName);
+ */
+dropTriggerStatement returns [DropTriggerStatement expr]
+ : K_DROP K_TRIGGER (tn=IDENT) K_ON cf=columnFamilyName
+ { $expr = new DropTriggerStatement(cf, $tn.text); }
+ ;
+
+/**
* ALTER KEYSPACE <KS> WITH <property> = <value>;
*/
alterKeyspaceStatement returns [AlterKeyspaceStatement expr]
@@ -911,6 +929,7 @@ unreserved_function_keyword returns [String str]
| K_PASSWORD
| K_EXISTS
| K_CUSTOM
+ | K_TRIGGER
) { $str = $k.text; }
| t=native_type { $str = t.toString(); }
;
@@ -1010,6 +1029,8 @@ K_EXISTS: E X I S T S;
K_MAP: M A P;
K_LIST: L I S T;
+K_TRIGGER: T R I G G E R;
+
// Case-insensitive alpha characters
fragment A: ('a'|'A');
fragment B: ('b'|'B');
http://git-wip-us.apache.org/repos/asf/cassandra/blob/8bf6e155/src/java/org/apache/cassandra/cql3/PropertyDefinitions.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/PropertyDefinitions.java b/src/java/org/apache/cassandra/cql3/PropertyDefinitions.java
index 82a1b82..ba83e45 100644
--- a/src/java/org/apache/cassandra/cql3/PropertyDefinitions.java
+++ b/src/java/org/apache/cassandra/cql3/PropertyDefinitions.java
@@ -76,16 +76,6 @@ public class PropertyDefinitions
return (Map<String, String>)val;
}
- protected Set<String> getSet(String name, Set<String> defaultValue) throws SyntaxException
- {
- Object val = properties.get(name);
- if (val == null)
- return defaultValue;
- if (!(val instanceof Set))
- throw new SyntaxException(String.format("Invalid value for property '%s'", name));
- return (Set<String>) val;
- }
-
public Boolean hasProperty(String name)
{
return properties.containsKey(name);