merge from 1.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/19047b89 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/19047b89 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/19047b89 Branch: refs/heads/trunk Commit: 19047b8943ed4b4ea5925c7c8d94025d26f076f3 Parents: 66aadda 44c462c Author: Jonathan Ellis <[email protected]> Authored: Thu May 23 11:05:53 2013 -0500 Committer: Jonathan Ellis <[email protected]> Committed: Thu May 23 11:05:53 2013 -0500 ---------------------------------------------------------------------- src/java/org/apache/cassandra/db/RowMutation.java | 9 +++++++++ src/java/org/apache/cassandra/db/SystemTable.java | 2 +- 2 files changed, 10 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/19047b89/src/java/org/apache/cassandra/db/RowMutation.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/RowMutation.java index d78247b,b85cfcd..64069c8 --- a/src/java/org/apache/cassandra/db/RowMutation.java +++ b/src/java/org/apache/cassandra/db/RowMutation.java @@@ -238,23 -311,65 +238,32 @@@ public class RowMutation implements IMu return buff.append("])").toString(); } - public void addColumnOrSuperColumn(String cfName, ColumnOrSuperColumn cosc) - { - if (cosc.super_column != null) - { - for (org.apache.cassandra.thrift.Column column : cosc.super_column.columns) - { - add(new QueryPath(cfName, cosc.super_column.name, column.name), column.value, column.timestamp, column.ttl); - } - } - else if (cosc.column != null) - { - add(new QueryPath(cfName, null, cosc.column.name), cosc.column.value, cosc.column.timestamp, cosc.column.ttl); - } - else if (cosc.counter_super_column != null) - { - for (org.apache.cassandra.thrift.CounterColumn column : cosc.counter_super_column.columns) - { - addCounter(new QueryPath(cfName, cosc.counter_super_column.name, column.name), column.value); - } - } - else // cosc.counter_column != null - { - addCounter(new QueryPath(cfName, null, cosc.counter_column.name), cosc.counter_column.value); - } - } - - public void deleteColumnOrSuperColumn(String cfName, Deletion del) + public RowMutation without(UUID cfId) { - if (del.predicate != null && del.predicate.column_names != null) - { - for(ByteBuffer c : del.predicate.column_names) - { - if (del.super_column == null && Schema.instance.getColumnFamilyType(table, cfName) == ColumnFamilyType.Super) - delete(new QueryPath(cfName, c), del.timestamp); - else - delete(new QueryPath(cfName, del.super_column, c), del.timestamp); - } - } - else - { - delete(new QueryPath(cfName, del.super_column), del.timestamp); - } + RowMutation rm = new RowMutation(table, key); + for (Map.Entry<UUID, ColumnFamily> entry : modifications.entrySet()) + if (!entry.getKey().equals(cfId)) + rm.add(entry.getValue()); + return rm; } + public RowMutation without(UUID cfId) + { + RowMutation rm = new RowMutation(table, key); + for (Map.Entry<UUID, ColumnFamily> entry : modifications.entrySet()) + if (!entry.getKey().equals(cfId)) + rm.add(entry.getValue()); + return rm; + } + public static class RowMutationSerializer implements IVersionedSerializer<RowMutation> { - public void serialize(RowMutation rm, DataOutput dos, int version) throws IOException + public void serialize(RowMutation rm, DataOutput out, int version) throws IOException { - dos.writeUTF(rm.getTable()); - ByteBufferUtil.writeWithShortLength(rm.key(), dos); + if (version < MessagingService.VERSION_20) + out.writeUTF(rm.getTable()); + + ByteBufferUtil.writeWithShortLength(rm.key(), out); /* serialize the modifications in the mutation */ int size = rm.modifications.size(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/19047b89/src/java/org/apache/cassandra/db/SystemTable.java ----------------------------------------------------------------------
