Author: slebresne
Date: Thu Oct 13 16:19:07 2011
New Revision: 1182950

URL: http://svn.apache.org/viewvc?rev=1182950&view=rev
Log:
Fix handling of tombstone by SSTableExport/Import when validation != BytesType
patch by slebresne; reviewed by jbellis for CASSANDRA-3357

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableImport.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1182950&r1=1182949&r2=1182950&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Oct 13 16:19:07 2011
@@ -5,6 +5,7 @@
    (CASSANDRA-3349)
  * (CQL) allow numeric keyspace names in USE statement (CASSANDRA-3350)
  * (Hadoop) skip empty rows when slicing the entire row (CASSANDRA-2855)
+ * Fix handling of tombstone by SSTableExport/Import (CASSANDRA-3357)
 
 
 0.8.7

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java?rev=1182950&r1=1182949&r2=1182950&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableExport.java
 Thu Oct 13 16:19:07 2011
@@ -128,7 +128,10 @@ public class SSTableExport
         AbstractType validator = cfMetaData.getValueValidator(name);
 
         serializedColumn.add(comparator.getString(name));
-        serializedColumn.add(validator.getString(value));
+        if (column instanceof DeletedColumn)
+            serializedColumn.add(ByteBufferUtil.bytesToHex(value));
+        else
+            serializedColumn.add(validator.getString(value));
         serializedColumn.add(column.timestamp());
 
         if (column instanceof DeletedColumn)

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableImport.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableImport.java?rev=1182950&r1=1182949&r2=1182950&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableImport.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/SSTableImport.java
 Thu Oct 13 16:19:07 2011
@@ -26,6 +26,7 @@ import java.util.*;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.db.marshal.BytesType;
 import org.apache.cassandra.db.marshal.MarshalException;
+import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.commons.cli.*;
 
 import org.apache.cassandra.config.CFMetaData;
@@ -103,7 +104,6 @@ public class SSTableImport
                 assert fields.size() >= 3 : "Column definition should have at 
least 3";
 
                 name  = stringAsType((String) fields.get(0), comparator);
-                value = stringAsType((String) fields.get(1), 
meta.getValueValidator(name.duplicate()));
                 timestamp = (Long) fields.get(2);
                 kind = "";
 
@@ -137,6 +137,9 @@ public class SSTableImport
                         }
                     }
                 }
+
+                value = isDeleted() ? ByteBufferUtil.hexToBytes((String) 
fields.get(1))
+                                    : stringAsType((String) fields.get(1), 
meta.getValueValidator(name.duplicate()));
             }
         }
 


Reply via email to