remove the index entry on oldColumn when new column is a tombstone patch by jbellis; reviewed by Sam Tunnicliffe for CASSANDRA-5395
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0ab3d60f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0ab3d60f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0ab3d60f Branch: refs/heads/trunk Commit: 0ab3d60fb78194ab2d7dd04ae590f871a9286c31 Parents: ed3215d Author: Jonathan Ellis <jbel...@apache.org> Authored: Wed Mar 27 14:33:53 2013 -0500 Committer: Jonathan Ellis <jbel...@apache.org> Committed: Fri Mar 29 12:04:07 2013 -0500 ---------------------------------------------------------------------- .../cassandra/db/index/SecondaryIndexManager.java | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ab3d60f/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java index 1be04dd..83374d9 100644 --- a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java +++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java @@ -610,15 +610,13 @@ public class SecondaryIndexManager public void update(IColumn oldColumn, IColumn column) { - if (column.isMarkedForDelete()) - return; - SecondaryIndex index = indexFor(column.name()); if (index == null) return; ((PerColumnSecondaryIndex) index).delete(key.key, oldColumn); - ((PerColumnSecondaryIndex) index).insert(key.key, column); + if (!column.isMarkedForDelete()) + ((PerColumnSecondaryIndex) index).insert(key.key, column); } public void remove(IColumn column) @@ -666,9 +664,6 @@ public class SecondaryIndexManager public void update(IColumn oldColumn, IColumn column) { - if (column.isMarkedForDelete()) - return; - SecondaryIndex index = indexFor(column.name()); if (index == null) return; @@ -676,7 +671,8 @@ public class SecondaryIndexManager if (index instanceof PerColumnSecondaryIndex) { ((PerColumnSecondaryIndex) index).delete(key.key, oldColumn); - ((PerColumnSecondaryIndex) index).insert(key.key, column); + if (!column.isMarkedForDelete()) + ((PerColumnSecondaryIndex) index).insert(key.key, column); } else {