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()