Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4a531c27 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4a531c27 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4a531c27 Branch: refs/heads/trunk Commit: 4a531c27ce04e880f72feb49879d1cf6c2ee4b1d Parents: 64d828b f7630e4 Author: Blake Eggleston <bdeggles...@gmail.com> Authored: Wed Nov 28 09:13:56 2018 -0800 Committer: Blake Eggleston <bdeggles...@gmail.com> Committed: Wed Nov 28 09:13:56 2018 -0800 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../db/rows/RowAndDeletionMergeIterator.java | 40 +++++++++++++++- .../rows/RowAndDeletionMergeIteratorTest.java | 48 ++++++++++++++++---- 3 files changed, 80 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4a531c27/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 5fbd53e,6e18de1..ebcf1b2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,6 -1,5 +1,7 @@@ -3.0.18 +3.11.4 + * Correct sstable sorting for garbagecollect and levelled compaction (CASSANDRA-14870) +Merged from 3.0: + * RangeTombstoneList doesn't properly clean up mergeable or superseded rts in some cases (CASSANDRA-14894) * Fix handling of collection tombstones for dropped columns from legacy sstables (CASSANDRA-14912) * Fix missing rows when reading 2.1 SSTables with static columns in 3.0 (CASSANDRA-14873) * Move TWCS message 'No compaction necessary for bucket size' to Trace level (CASSANDRA-14884) http://git-wip-us.apache.org/repos/asf/cassandra/blob/4a531c27/src/java/org/apache/cassandra/db/rows/RowAndDeletionMergeIterator.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4a531c27/test/unit/org/apache/cassandra/db/rows/RowAndDeletionMergeIteratorTest.java ---------------------------------------------------------------------- diff --cc test/unit/org/apache/cassandra/db/rows/RowAndDeletionMergeIteratorTest.java index e4c04fb,dd88704..2f48000 --- a/test/unit/org/apache/cassandra/db/rows/RowAndDeletionMergeIteratorTest.java +++ b/test/unit/org/apache/cassandra/db/rows/RowAndDeletionMergeIteratorTest.java @@@ -342,8 -349,31 +347,30 @@@ public class RowAndDeletionMergeIterato assertFalse(iterator.hasNext()); } - + /** + * RTL doesn't correctly merge range tombstones in some situations (see CASSANDRA-14894) + */ + @Test + public void testWithNoopBoundaryMarkers() + { + PartitionUpdate update = new PartitionUpdate(cfm, dk, cfm.partitionColumns(), 1); + RangeTombstoneList rtl = new RangeTombstoneList(cfm.comparator, 10); + rtl.add(rt(1, 2, 5, 5)); + rtl.add(rt(3, 4, 5, 5)); + rtl.add(rt(5, 6, 5, 5)); + rtl.add(rt(0, 8, 6, 6)); // <- supersedes all other tombstones + + Assert.assertEquals(3, rtl.size()); + + try (UnfilteredRowIterator partition = createMergeIterator(update.iterator(), rtl.iterator(), false)) + { + assertRtMarker(partition.next(), ClusteringPrefix.Kind.INCL_START_BOUND, 0); + assertRtMarker(partition.next(), ClusteringPrefix.Kind.INCL_END_BOUND, 8); + assertFalse(partition.hasNext()); + } + } - private void assertRtMarker(Unfiltered unfiltered, Bound bound) + private void assertRtMarker(Unfiltered unfiltered, ClusteringBoundOrBoundary bound) { assertEquals(Unfiltered.Kind.RANGE_TOMBSTONE_MARKER, unfiltered.kind()); assertEquals(bound, unfiltered.clustering()); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org