Updated Branches: refs/heads/cassandra-1.2 512ea5a76 -> 159744f24
Fix json2sstable handling of range tombstones patch by Lyuben Todorov; reviewed by Aleksey Yeschenko for CASSANDRA-6316 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/159744f2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/159744f2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/159744f2 Branch: refs/heads/cassandra-1.2 Commit: 159744f244125af84f4e819f45d2e2ebef2b369a Parents: 512ea5a Author: Aleksey Yeschenko <[email protected]> Authored: Tue Nov 12 20:09:02 2013 +0300 Committer: Aleksey Yeschenko <[email protected]> Committed: Tue Nov 12 20:09:02 2013 +0300 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../org/apache/cassandra/tools/SSTableImport.java | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/159744f2/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index bc0d65b..e0a2320 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -14,6 +14,7 @@ * Fix potential socket leak in connectionpool creation (CASSANDRA-6308) * Allow LOCAL_ONE/LOCAL_QUORUM to work with SimpleStrategy (CASSANDRA-6238) * cqlsh: handle 'null' as session duration (CASSANDRA-6317) + * Fix json2sstable handling of range tombstones (CASSANDRA-6316) 1.2.11 http://git-wip-us.apache.org/repos/asf/cassandra/blob/159744f2/src/java/org/apache/cassandra/tools/SSTableImport.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java index 68d4397..80d1aad 100644 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@ -22,6 +22,7 @@ import static org.apache.cassandra.utils.ByteBufferUtil.hexToBytes; import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.SortedMap; @@ -50,6 +51,7 @@ import org.apache.cassandra.db.SuperColumn; import org.apache.cassandra.db.filter.QueryPath; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.BytesType; +import org.apache.cassandra.db.marshal.CompositeType; import org.apache.cassandra.db.marshal.MarshalException; import org.apache.cassandra.dht.IPartitioner; import org.apache.cassandra.io.sstable.SSTableWriter; @@ -155,8 +157,19 @@ public class SSTableImport } } - value = isDeleted() ? ByteBufferUtil.hexToBytes((String) fields.get(1)) - : stringAsType((String) fields.get(1), meta.getValueValidator(meta.getColumnDefinitionFromColumnName(name))); + if (isDeleted()) + { + value = ByteBufferUtil.hexToBytes((String) fields.get(1)); + } + else if (isRangeTombstone()) + { + AbstractType<?> type = CompositeType.getInstance(Arrays.asList(new AbstractType<?>[]{meta.getColumnDefinitionComparator(0)})); + value = type.fromString((String)fields.get(1)); + } + else + { + value = stringAsType((String) fields.get(1), meta.getValueValidator(meta.getColumnDefinitionFromColumnName(name))); + } } }
