Updated Branches: refs/heads/cassandra-1.1 6d3888143 -> a75b708de
Less strict validation after #4004 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a75b708d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a75b708d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a75b708d Branch: refs/heads/cassandra-1.1 Commit: a75b708decc25372949f3c764e4f500735fdd452 Parents: 6d38881 Author: Sylvain Lebresne <sylv...@datastax.com> Authored: Thu May 3 09:58:27 2012 +0200 Committer: Sylvain Lebresne <sylv...@datastax.com> Committed: Thu May 3 09:58:27 2012 +0200 ---------------------------------------------------------------------- .../cassandra/cql3/statements/SelectStatement.java | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a75b708d/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 561db9a..b9d1c4f 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -960,7 +960,7 @@ public class SelectStatement implements CQLStatement if (!stmt.parameters.orderings.isEmpty()) { - boolean[] reversedMap = new boolean[cfDef.columns.size()]; + Boolean[] reversedMap = new Boolean[cfDef.columns.size()]; int i = 0; for (Map.Entry<ColumnIdentifier, Boolean> entry : stmt.parameters.orderings.entrySet()) { @@ -977,14 +977,17 @@ public class SelectStatement implements CQLStatement if (i++ != name.position) throw new InvalidRequestException(String.format("Order by currently only support the ordering of columns following their declared order in the PRIMARY KEY")); - if (reversed != isReversedType(name)) - reversedMap[name.position] = true; + reversedMap[name.position] = (reversed != isReversedType(name)); } - // Check that all boolean in reversedMap agrees + // Check that all boolean in reversedMap, if set, agrees Boolean isReversed = null; - for (boolean b : reversedMap) + for (Boolean b : reversedMap) { + // Column on which order is specified can be in any order + if (b == null) + continue; + if (isReversed == null) { isReversed = b; @@ -993,6 +996,7 @@ public class SelectStatement implements CQLStatement if (isReversed != b) throw new InvalidRequestException(String.format("Unsupported order by relation")); } + assert isReversed != null; stmt.isReversed = isReversed; }