You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2017/02/08 10:42:56 UTC

[4/6] cassandra git commit: Merge commit '7c2437e26bc289c0a4c40fca303310fb61f362b1' into cassandra-3.11

Merge commit '7c2437e26bc289c0a4c40fca303310fb61f362b1' into cassandra-3.11

* commit '7c2437e26bc289c0a4c40fca303310fb61f362b1':
  Duplicate rows after upgrading from 2.1.16 to 3.0.10/3.9


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6b7302b6
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6b7302b6
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6b7302b6

Branch: refs/heads/trunk
Commit: 6b7302b6594c9a248989a1b5b64308421d67bc9f
Parents: 3acdcaf 7c2437e
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Wed Feb 8 11:37:33 2017 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Wed Feb 8 11:41:33 2017 +0100

----------------------------------------------------------------------
 .../org/apache/cassandra/db/LegacyLayout.java   | 62 ++++++++++++++---
 .../apache/cassandra/db/LegacyLayoutTest.java   | 73 ++++++++++++++++++++
 2 files changed, 124 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b7302b6/src/java/org/apache/cassandra/db/LegacyLayout.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b7302b6/test/unit/org/apache/cassandra/db/LegacyLayoutTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/LegacyLayoutTest.java
index 0000000,09e9755..6103727
mode 000000,100644..100644
--- a/test/unit/org/apache/cassandra/db/LegacyLayoutTest.java
+++ b/test/unit/org/apache/cassandra/db/LegacyLayoutTest.java
@@@ -1,0 -1,71 +1,73 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one
+  * or more contributor license agreements.  See the NOTICE file
+  * distributed with this work for additional information
+  * regarding copyright ownership.  The ASF licenses this file
+  * to you under the Apache License, Version 2.0 (the
+  * "License"); you may not use this file except in compliance
+  * with the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.cassandra.db;
+ 
+ import java.nio.ByteBuffer;
+ 
+ import org.junit.Test;
+ 
+ import org.apache.cassandra.config.CFMetaData;
+ import org.apache.cassandra.config.ColumnDefinition;
+ import org.apache.cassandra.cql3.ColumnIdentifier;
+ import org.apache.cassandra.db.marshal.Int32Type;
+ import org.apache.cassandra.db.marshal.SetType;
+ import org.apache.cassandra.db.partitions.PartitionUpdate;
+ import org.apache.cassandra.db.rows.BTreeRow;
+ import org.apache.cassandra.db.rows.Row;
++import org.apache.cassandra.dht.Murmur3Partitioner;
+ import org.apache.cassandra.utils.ByteBufferUtil;
+ 
+ import static org.junit.Assert.*;
+ 
+ public class LegacyLayoutTest
+ {
+     @Test
+     public void testFromUnfilteredRowIterator() throws Throwable
+     {
+         CFMetaData table = CFMetaData.Builder.create("ks", "table")
++                                             .withPartitioner(Murmur3Partitioner.instance)
+                                              .addPartitionKey("k", Int32Type.instance)
+                                              .addRegularColumn("a", SetType.getInstance(Int32Type.instance, true))
+                                              .addRegularColumn("b", SetType.getInstance(Int32Type.instance, true))
+                                              .build();
+ 
+         ColumnDefinition a = table.getColumnDefinition(new ColumnIdentifier("a", false));
+         ColumnDefinition b = table.getColumnDefinition(new ColumnIdentifier("b", false));
+ 
+         Row.Builder builder = BTreeRow.unsortedBuilder(0);
+         builder.newRow(Clustering.EMPTY);
+         builder.addComplexDeletion(a, new DeletionTime(1L, 1));
+         builder.addComplexDeletion(b, new DeletionTime(1L, 1));
+         Row row = builder.build();
+ 
+         ByteBuffer key = ByteBufferUtil.bytes(1);
+         PartitionUpdate upd = PartitionUpdate.singleRowUpdate(table, key, row);
+ 
+         LegacyLayout.LegacyUnfilteredPartition p = LegacyLayout.fromUnfilteredRowIterator(null, upd.unfilteredIterator());
+         assertEquals(DeletionTime.LIVE, p.partitionDeletion);
+         assertEquals(0, p.cells.size());
+ 
+         LegacyLayout.LegacyRangeTombstoneList l = p.rangeTombstones;
+         assertEquals("a", l.starts[0].collectionName.name.toString());
+         assertEquals("a", l.ends[0].collectionName.name.toString());
+ 
+         assertEquals("b", l.starts[1].collectionName.name.toString());
+         assertEquals("b", l.ends[1].collectionName.name.toString());
+     }
+ }