fix schema-related trigger issues patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for CASSANDRA-5774
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a9659774 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a9659774 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a9659774 Branch: refs/heads/trunk Commit: a9659774b3a9b71975ea9084ed26de971dcd0ee7 Parents: 453b6f5 Author: Aleksey Yeschenko <alek...@apache.org> Authored: Tue Jul 23 01:30:29 2013 +0300 Committer: Aleksey Yeschenko <alek...@apache.org> Committed: Tue Jul 23 01:30:29 2013 +0300 ---------------------------------------------------------------------- CHANGES.txt | 1 + interface/cassandra.thrift | 11 +- .../cassandra/thrift/AuthenticationRequest.java | 4 +- .../org/apache/cassandra/thrift/Cassandra.java | 952 +++++++++---------- .../org/apache/cassandra/thrift/CfDef.java | 262 ++--- .../org/apache/cassandra/thrift/ColumnDef.java | 4 +- .../apache/cassandra/thrift/CqlMetadata.java | 88 +- .../cassandra/thrift/CqlPreparedResult.java | 64 +- .../org/apache/cassandra/thrift/CqlResult.java | 36 +- .../org/apache/cassandra/thrift/CqlRow.java | 36 +- .../org/apache/cassandra/thrift/KsDef.java | 80 +- .../org/apache/cassandra/thrift/TriggerDef.java | 577 +++++++++++ .../org/apache/cassandra/config/CFMetaData.java | 99 +- .../cassandra/config/ColumnDefinition.java | 9 + .../org/apache/cassandra/config/KSMetaData.java | 8 +- .../cassandra/config/TriggerDefinition.java | 166 ++++ .../apache/cassandra/config/TriggerOptions.java | 110 --- .../cql3/statements/CreateTriggerStatement.java | 22 +- .../cql3/statements/DropTriggerStatement.java | 16 +- .../org/apache/cassandra/db/DefsTables.java | 1 + .../org/apache/cassandra/db/SystemKeyspace.java | 34 +- .../cassandra/service/MigrationManager.java | 1 + .../cassandra/triggers/TriggerExecutor.java | 29 +- .../apache/cassandra/config/CFMetaDataTest.java | 2 +- 24 files changed, 1605 insertions(+), 1007 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9659774/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 9f1aa1d..22abcf6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 2.0.0-rc1 * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690) + * fix schema-related trigger issues (CASSANDRA-5774) 2.0.0-beta2 http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9659774/interface/cassandra.thrift ---------------------------------------------------------------------- diff --git a/interface/cassandra.thrift b/interface/cassandra.thrift index 8a62aea..e3d3374 100644 --- a/interface/cassandra.thrift +++ b/interface/cassandra.thrift @@ -430,6 +430,15 @@ struct ColumnDef { 5: optional map<string,string> index_options } +/** + Describes a trigger. + `options` should include at least 'class' param. + Other options are not supported yet. +*/ +struct TriggerDef { + 1: required string name, + 2: required map<string,string> options +} /* describes a column family. */ struct CfDef { @@ -460,7 +469,7 @@ struct CfDef { 40: optional i32 default_time_to_live, 41: optional i32 index_interval, 42: optional string speculative_retry="NONE", - 43: optional map<string, map<string, string>> triggers, + 43: optional list<TriggerDef> triggers, /* All of the following are now ignored and unsupplied. */ http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9659774/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java ---------------------------------------------------------------------- diff --git a/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java b/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java index 5697987..3f7f024 100644 --- a/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java +++ b/interface/thrift/gen-java/org/apache/cassandra/thrift/AuthenticationRequest.java @@ -383,7 +383,7 @@ public class AuthenticationRequest implements org.apache.thrift.TBase<Authentica struct.credentials = new HashMap<String,String>(2*_map80.size); for (int _i81 = 0; _i81 < _map80.size; ++_i81) { - String _key82; // required + String _key82; // optional String _val83; // required _key82 = iprot.readString(); _val83 = iprot.readString(); @@ -459,7 +459,7 @@ public class AuthenticationRequest implements org.apache.thrift.TBase<Authentica struct.credentials = new HashMap<String,String>(2*_map86.size); for (int _i87 = 0; _i87 < _map86.size; ++_i87) { - String _key88; // required + String _key88; // optional String _val89; // required _key88 = iprot.readString(); _val89 = iprot.readString();