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