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();

Reply via email to