You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2014/08/18 14:19:16 UTC
git commit: Fix ordering of static cells
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1.0 1f5401066 -> 56db00180
Fix ordering of static cells
patch by slebresne; reviewed by benedict for CASSANDRA-7763
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/56db0018
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/56db0018
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/56db0018
Branch: refs/heads/cassandra-2.1.0
Commit: 56db00180f588cd3a5da7ae5861eefda00fbac56
Parents: 1f54010
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Aug 18 14:18:02 2014 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Aug 18 14:19:04 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../apache/cassandra/db/composites/AbstractCType.java | 11 +++++++++++
.../db/composites/CompoundSparseCellNameType.java | 11 +++++++++++
3 files changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/56db0018/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f1edef4..8aafd98 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.0
+ * Fix ordering of static cells (CASSANDRA-7763)
Merged from 2.0:
* Fix dropping collection when it's the last regular column (CASSANDRA-7744)
* Properly reject operations on list index with conditions (CASSANDRA-7499)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/56db0018/src/java/org/apache/cassandra/db/composites/AbstractCType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/composites/AbstractCType.java b/src/java/org/apache/cassandra/db/composites/AbstractCType.java
index e299e42..0e206c7 100644
--- a/src/java/org/apache/cassandra/db/composites/AbstractCType.java
+++ b/src/java/org/apache/cassandra/db/composites/AbstractCType.java
@@ -104,6 +104,17 @@ public abstract class AbstractCType implements CType
public int compare(Composite c1, Composite c2)
{
+ if (c1.isStatic() != c2.isStatic())
+ {
+ // Static sorts before non-static no matter what, except for empty which
+ // always sort first
+ if (c1.isEmpty())
+ return c2.isEmpty() ? 0 : -1;
+ if (c2.isEmpty())
+ return 1;
+ return c1.isStatic() ? -1 : 1;
+ }
+
int s1 = c1.size();
int s2 = c2.size();
int minSize = Math.min(s1, s2);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/56db0018/src/java/org/apache/cassandra/db/composites/CompoundSparseCellNameType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/composites/CompoundSparseCellNameType.java b/src/java/org/apache/cassandra/db/composites/CompoundSparseCellNameType.java
index 29e1617..ec25e92 100644
--- a/src/java/org/apache/cassandra/db/composites/CompoundSparseCellNameType.java
+++ b/src/java/org/apache/cassandra/db/composites/CompoundSparseCellNameType.java
@@ -267,6 +267,17 @@ public class CompoundSparseCellNameType extends AbstractCompoundCellNameType
@Override
public int compare(Composite c1, Composite c2)
{
+ if (c1.isStatic() != c2.isStatic())
+ {
+ // Static sorts before non-static no matter what, except for empty which
+ // always sort first
+ if (c1.isEmpty())
+ return c2.isEmpty() ? 0 : -1;
+ if (c2.isEmpty())
+ return 1;
+ return c1.isStatic() ? -1 : 1;
+ }
+
int s1 = c1.size();
int s2 = c2.size();
int minSize = Math.min(s1, s2);