You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2012/12/27 21:45:43 UTC

[7/10] git commit: Merge branch 'cassandra-1.1' into cassandra-1.2.0

Merge branch 'cassandra-1.1' into cassandra-1.2.0


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

Branch: refs/heads/trunk
Commit: 4b9d927d3afd66581ca5e232e3c4ef76f5aaab98
Parents: 65b377f 8a3b291
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Dec 27 15:41:32 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Dec 27 15:43:54 2012 -0500

----------------------------------------------------------------------
 .../apache/cassandra/thrift/ThriftValidation.java  |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4b9d927d/src/java/org/apache/cassandra/thrift/ThriftValidation.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/thrift/ThriftValidation.java
index 3912e82,de1ce56..6473acd
--- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java
+++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java
@@@ -465,21 -491,30 +465,30 @@@ public class ThriftValidatio
  
          // (key, token) is supported (for wide-row CFRR) but not (token, key)
          if (range.start_token != null && range.end_key != null)
 -            throw new InvalidRequestException("start token + end key is not a supported key range");
 +            throw new org.apache.cassandra.exceptions.InvalidRequestException("start token + end key is not a supported key range");
  
+         IPartitioner p = StorageService.getPartitioner();
+ 
          if (range.start_key != null && range.end_key != null)
          {
-             IPartitioner p = StorageService.getPartitioner();
              Token startToken = p.getToken(range.start_key);
              Token endToken = p.getToken(range.end_key);
              if (startToken.compareTo(endToken) > 0 && !endToken.isMinimum(p))
              {
                  if (p instanceof RandomPartitioner)
 -                    throw new InvalidRequestException("start key's md5 sorts after end key's md5.  this is not allowed; you probably should not specify end key at all, under RandomPartitioner");
 +                    throw new org.apache.cassandra.exceptions.InvalidRequestException("start key's md5 sorts after end key's md5.  this is not allowed; you probably should not specify end key at all, under RandomPartitioner");
                  else
 -                    throw new InvalidRequestException("start key must sort before (or equal to) finish key in your partitioner!");
 +                    throw new org.apache.cassandra.exceptions.InvalidRequestException("start key must sort before (or equal to) finish key in your partitioner!");
              }
          }
+         else if (range.end_token != null)
+         {
+             RowPosition stop = p.getTokenFactory().fromString(range.end_token).maxKeyBound(p);
+             if (range.start_key != null && RowPosition.forKey(range.start_key, p).compareTo(stop) > 0)
 -                throw new InvalidRequestException("Start key's token sorts after end token");
++                throw new org.apache.cassandra.exceptions.InvalidRequestException("Start key's token sorts after end token");
+             if (range.start_token != null && p.getTokenFactory().fromString(range.start_token).maxKeyBound(p).compareTo(stop) > 0)
 -                throw new InvalidRequestException("Start token sorts after end token");
++                throw new org.apache.cassandra.exceptions.InvalidRequestException("Start token sorts after end token");
+         }
  
          validateFilterClauses(metadata, range.row_filter);