Updated Branches: refs/heads/trunk 0cec93c4f -> 54f41a9f5
Fix sstable2json for CQL3 tables patch by lyubent; reviewed by slebresne for CASSANDRA-5852 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a886e349 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a886e349 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a886e349 Branch: refs/heads/trunk Commit: a886e34909c313a1c3fa5dff48b77f1cee2c6847 Parents: eb390d0 Author: Sylvain Lebresne <sylv...@datastax.com> Authored: Thu Sep 19 11:56:17 2013 +0200 Committer: Sylvain Lebresne <sylv...@datastax.com> Committed: Thu Sep 19 11:56:17 2013 +0200 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++++++++++++++- .../org/apache/cassandra/tools/SSTableImport.java | 7 ++++++- 3 files changed, 21 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index c6e1169..f853cce 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -21,6 +21,7 @@ * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011) * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017) * Fix memory leak in snapshot repair (CASSANDRA-6047) + * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/config/CFMetaData.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 33e3f00..4355737 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -995,7 +995,18 @@ public final class CFMetaData ByteBuffer[] components = composite.split(columnName); for (ColumnDefinition def : column_metadata.values()) { - ByteBuffer toCompare = def.componentIndex == null ? columnName : components[def.componentIndex]; + ByteBuffer toCompare; + if (def.componentIndex == null) + { + toCompare = columnName; + } + else + { + if (def.componentIndex >= components.length) + break; + + toCompare = components[def.componentIndex]; + } if (def.name.equals(toCompare)) return def; } @@ -1007,6 +1018,8 @@ public final class CFMetaData } } + + public ColumnDefinition getColumnDefinitionForIndex(String indexName) { for (ColumnDefinition def : column_metadata.values()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/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 71b1b60..68d4397 100644 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@ -156,7 +156,7 @@ public class SSTableImport } value = isDeleted() ? ByteBufferUtil.hexToBytes((String) fields.get(1)) - : stringAsType((String) fields.get(1), meta.getValueValidator(name.duplicate())); + : stringAsType((String) fields.get(1), meta.getValueValidator(meta.getColumnDefinitionFromColumnName(name))); } } @@ -245,6 +245,11 @@ public class SSTableImport { cfamily.addAtom(new RangeTombstone(col.getName(), col.getValue(), col.timestamp, col.localExpirationTime)); } + // cql3 row marker, see CASSANDRA-5852 + else if (!path.columnName.hasRemaining()) + { + cfamily.addColumn(new QueryPath(cfm.cfName, superName, ByteBuffer.wrap(new byte[3])), col.getValue(), col.timestamp); + } else { cfamily.addColumn(path, col.getValue(), col.timestamp);