Improve ORDER BY validation (CQL3)

patch by slebresne; reviewed by jbellis for CASSANDRA-4624


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

Branch: refs/heads/trunk
Commit: 4177b58f1099cb9f8de87b9432014b0afac90da0
Parents: 8e03f7b
Author: Sylvain Lebresne <sylv...@datastax.com>
Authored: Thu Sep 6 17:42:40 2012 +0200
Committer: Sylvain Lebresne <sylv...@datastax.com>
Committed: Thu Sep 6 17:42:40 2012 +0200

----------------------------------------------------------------------
 CHANGES.txt                                        |    2 ++
 .../cassandra/cql3/statements/SelectStatement.java |    4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4177b58f/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 6e72892..4a5bfe9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 1.1.6
   * (cql3) fix potential NPE with both equal and unequal restriction 
(CASSANDRA-4532)
+  * (cql3) improves ORDER BY validation (CASSANDRA-4624)
+
 
 1.1.5
  * add SecondaryIndex.reload API (CASSANDRA-4581)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4177b58f/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index dd00c5c..1d0918e 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -1070,8 +1070,8 @@ public class SelectStatement implements CQLStatement
 
             if (!stmt.parameters.orderings.isEmpty())
             {
-                if (whereClause.isEmpty())
-                    throw new InvalidRequestException("ORDER BY is only 
supported in combination with WHERE clause.");
+                if (stmt.isKeyRange())
+                    throw new InvalidRequestException("ORDER BY is only 
supported when the partition key is restricted by an EQ or an IN.");
 
                 Boolean[] reversedMap = new Boolean[cfDef.columns.size()];
                 int i = 0;

Reply via email to