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