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)));
+                }
             }
         }
 

Reply via email to