You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/08/02 12:40:59 UTC

git commit: Reject counters inside user types

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1.0 85b743827 -> fb3995ae1


Reject counters inside user types

patch by Aleksey Yeschenko; tested by Russ Hatch; reviewed by Jonathan
Ellis for CASSANDRA-7672


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fb3995ae
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb3995ae
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb3995ae

Branch: refs/heads/cassandra-2.1.0
Commit: fb3995ae13683de598624f2d689e1fb2d88d51bf
Parents: 85b7438
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sat Aug 2 13:40:00 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sat Aug 2 13:40:00 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                                   | 1 +
 .../apache/cassandra/cql3/statements/CreateTypeStatement.java | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb3995ae/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f4b3921..eaa3b43 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.0-final
+ * Reject counters inside user types (CASSANDRA-7672)
  * Switch to notification-based GCInspector (CASSANDRA-7638)
  * (cqlsh) Handle nulls in UDTs and tuples correctly (CASSANDRA-7656)
  * Don't use strict consistency when replacing (CASSANDRA-7568)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb3995ae/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java b/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java
index 1ddc8e6..5224474 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java
@@ -68,8 +68,13 @@ public class CreateTypeStatement extends SchemaAlteringStatement
         KSMetaData ksm = Schema.instance.getKSMetaData(name.getKeyspace());
         if (ksm == null)
             throw new InvalidRequestException(String.format("Cannot add type in unknown keyspace %s", name.getKeyspace()));
+
         if (ksm.userTypes.getType(name.getUserTypeName()) != null && !ifNotExists)
-            throw new InvalidRequestException(String.format("A user type of name %s already exists.", name));
+            throw new InvalidRequestException(String.format("A user type of name %s already exists", name));
+
+        for (CQL3Type.Raw type : columnTypes)
+            if (type.isCounter())
+                throw new InvalidRequestException("A user type cannot contain counters");
     }
 
     public static void checkForDuplicateNames(UserType type) throws InvalidRequestException