From e181fdc4e0db71ec4abfb5bfa2b59a69b8c9ce5b Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Wed, 29 Apr 2009 02:01:49 +0000 Subject: [PATCH] fix propagating SuperColumn tombstones from Memtable to caller. patch by jbellis; reviewed by Eric Evans for #101 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@769628 13f79535-47bb-0310-9956-ffa450edef68 --- src/org/apache/cassandra/db/Memtable.java | 5 ++++- src/org/apache/cassandra/db/SuperColumn.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/org/apache/cassandra/db/Memtable.java b/src/org/apache/cassandra/db/Memtable.java index bc05293f15..c2e5fb48cc 100644 --- a/src/org/apache/cassandra/db/Memtable.java +++ b/src/org/apache/cassandra/db/Memtable.java @@ -329,7 +329,10 @@ public class Memtable implements Comparable if (subColumn != null) { columnFamily = cFamily.cloneMeShallow(); - columnFamily.addColumn(values[1] + ":" + values[2], subColumn.value(), subColumn.timestamp(), subColumn.isMarkedForDelete()); + SuperColumn container = new SuperColumn(superColumn.name()); + container.markForDeleteAt(superColumn.getLocalDeletionTime(), superColumn.getMarkedForDeleteAt()); + container.addColumn(subColumn.name(), subColumn); + columnFamily.addColumn(container); } } } diff --git a/src/org/apache/cassandra/db/SuperColumn.java b/src/org/apache/cassandra/db/SuperColumn.java index 4c45a32608..09b7cf727f 100644 --- a/src/org/apache/cassandra/db/SuperColumn.java +++ b/src/org/apache/cassandra/db/SuperColumn.java @@ -213,7 +213,10 @@ public final class SuperColumn implements IColumn, Serializable { addColumn(subColumn.name(), subColumn); } - markedForDeleteAt = Math.max(markedForDeleteAt, column.getMarkedForDeleteAt()); + if (column.getMarkedForDeleteAt() > markedForDeleteAt) + { + markForDeleteAt(column.getLocalDeletionTime(), column.getMarkedForDeleteAt()); + } } public int getObjectCount()