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 2015/11/05 12:20:15 UTC

[1/2] cassandra git commit: Fix handling counters in supercolumns when parsing schema

Repository: cassandra
Updated Branches:
  refs/heads/trunk 65000b3c2 -> 4effabc8f


Fix handling counters in supercolumns when parsing schema

patch by Aleksey Yeschenko; reviewed by Sylvain Lebresne for
CASSANDRA-10365


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

Branch: refs/heads/trunk
Commit: 18e2fca8b47f9e2dc84ad43c957f0d226dd883d7
Parents: 4a00438
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Nov 5 11:01:51 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Nov 5 11:18:38 2015 +0000

----------------------------------------------------------------------
 .../org/apache/cassandra/cql3/CQL3Type.java     | 22 +++++++++++++++++---
 .../apache/cassandra/schema/CQLTypeParser.java  |  2 +-
 src/java/org/apache/cassandra/schema/Types.java |  2 +-
 3 files changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/18e2fca8/src/java/org/apache/cassandra/cql3/CQL3Type.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CQL3Type.java b/src/java/org/apache/cassandra/cql3/CQL3Type.java
index 7f5afa6..fde3fab 100644
--- a/src/java/org/apache/cassandra/cql3/CQL3Type.java
+++ b/src/java/org/apache/cassandra/cql3/CQL3Type.java
@@ -17,10 +17,8 @@
  */
 package org.apache.cassandra.cql3;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -355,6 +353,11 @@ public interface CQL3Type
 
         public abstract CQL3Type prepare(String keyspace, Types udts) throws InvalidRequestException;
 
+        public CQL3Type prepareInternal(String keyspace, Types udts) throws InvalidRequestException
+        {
+            return prepare(keyspace, udts);
+        }
+
         public boolean referencesUserType(String name)
         {
             return false;
@@ -461,11 +464,24 @@ public interface CQL3Type
 
             public CQL3Type prepare(String keyspace, Types udts) throws InvalidRequestException
             {
+                return prepare(keyspace, udts, false);
+            }
+
+            public CQL3Type prepareInternal(String keyspace, Types udts)
+            {
+                return prepare(keyspace, udts, true);
+            }
+
+            public CQL3Type prepare(String keyspace, Types udts, boolean isInternal) throws InvalidRequestException
+            {
                 assert values != null : "Got null values type for a collection";
 
                 if (!frozen && values.supportsFreezing() && !values.frozen)
                     throw new InvalidRequestException("Non-frozen collections are not allowed inside collections: " + this);
-                if (values.isCounter())
+
+                // we represent Thrift supercolumns as maps, internally, and we do allow counters in supercolumns. Thus,
+                // for internal type parsing (think schema) we have to make an exception and allow counters as (map) values
+                if (values.isCounter() && !isInternal)
                     throw new InvalidRequestException("Counters are not allowed inside collections: " + this);
 
                 if (keys != null)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/18e2fca8/src/java/org/apache/cassandra/schema/CQLTypeParser.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/CQLTypeParser.java b/src/java/org/apache/cassandra/schema/CQLTypeParser.java
index 87eebd7..ed68498 100644
--- a/src/java/org/apache/cassandra/schema/CQLTypeParser.java
+++ b/src/java/org/apache/cassandra/schema/CQLTypeParser.java
@@ -52,7 +52,7 @@ public final class CQLTypeParser
         if (udt != null)
             return udt;
 
-        return parseRaw(unparsed).prepare(keyspace, userTypes).getType();
+        return parseRaw(unparsed).prepareInternal(keyspace, userTypes).getType();
     }
 
     static CQL3Type.Raw parseRaw(String type)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/18e2fca8/src/java/org/apache/cassandra/schema/Types.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/Types.java b/src/java/org/apache/cassandra/schema/Types.java
index 0d6e36d..4f3d78c 100644
--- a/src/java/org/apache/cassandra/schema/Types.java
+++ b/src/java/org/apache/cassandra/schema/Types.java
@@ -274,7 +274,7 @@ public final class Types implements Iterable<UserType>
 
                 List<AbstractType<?>> preparedFieldTypes =
                     fieldTypes.stream()
-                              .map(t -> t.prepare(keyspace, types).getType())
+                              .map(t -> t.prepareInternal(keyspace, types).getType())
                               .collect(toList());
 
                 return new UserType(keyspace, bytes(name), preparedFieldNames, preparedFieldTypes);


[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

Posted by al...@apache.org.
Merge branch 'cassandra-3.0' into trunk


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

Branch: refs/heads/trunk
Commit: 4effabc8fe842224cd8e2a846274b617d2b4a9e6
Parents: 65000b3 18e2fca
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Nov 5 11:20:06 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Nov 5 11:20:06 2015 +0000

----------------------------------------------------------------------
 .../org/apache/cassandra/cql3/CQL3Type.java     | 22 +++++++++++++++++---
 .../apache/cassandra/schema/CQLTypeParser.java  |  2 +-
 src/java/org/apache/cassandra/schema/Types.java |  2 +-
 3 files changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------