You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sa...@apache.org on 2015/09/18 18:20:06 UTC

[2/3] cassandra git commit: Early validation of partition keys in CAS requests

Early validation of partition keys in CAS requests

Patch by Sam Tunnicliffe; reviewed by Benjamin Lerer for CASSANDRA-10338


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

Branch: refs/heads/trunk
Commit: 6e805caed9be650cbd12bc0afd5d564f6fe5185a
Parents: fa800fc
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Tue Sep 15 11:14:10 2015 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Sep 18 17:17:27 2015 +0100

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6e805cae/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 248192e..775d8a4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.0-rc1
+ * Check partition keys for CAS operations during stmt validation (CASSANDRA-10338)
  * Add custom query expressions to SELECT (CASSANDRA-10217)
  * Fix minor bugs in MV handling (CASSANDRA-10362)
  * Allow custom indexes with 0,1 or multiple target columns (CASSANDRA-10124)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6e805cae/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
index 3f3f3f5..54a4f28 100644
--- a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
@@ -281,7 +281,11 @@ public abstract class ModificationStatement implements CQLStatement
     public List<ByteBuffer> buildPartitionKeyNames(QueryOptions options)
     throws InvalidRequestException
     {
-        return restrictions.getPartitionKeys(options);
+        List<ByteBuffer> partitionKeys = restrictions.getPartitionKeys(options);
+        for (ByteBuffer key : partitionKeys)
+            QueryProcessor.validateKey(key);
+
+        return partitionKeys;
     }
 
     public NavigableSet<Clustering> createClustering(QueryOptions options)