This is an automated email from the ASF dual-hosted git repository.

marcuse pushed a commit to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit ca2b2814717ec5248cc5228d5d46633236a320e6
Merge: 9b165c9 ab6a87b
Author: Marcus Eriksson <marc...@apache.org>
AuthorDate: Thu Jul 9 16:19:41 2020 +0200

    Merge branch 'cassandra-3.0' into cassandra-3.11

 CHANGES.txt                                        |  1 +
 .../apache/cassandra/db/RangeTombstoneList.java    |  4 +
 .../db/rows/RowAndDeletionMergeIterator.java       |  3 +-
 .../cassandra/distributed/test/ReadRepairTest.java | 87 ++++++++++++++++++++++
 4 files changed, 94 insertions(+), 1 deletion(-)

diff --cc CHANGES.txt
index 72c05ff,631b329..10234d8
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,10 -1,7 +1,11 @@@
 -3.0.21
 +3.11.7
 + * Fix cqlsh output when fetching all rows in batch mode (CASSANDRA-15905)
 + * Upgrade Jackson to 2.9.10 (CASSANDRA-15867)
 + * Fix CQL formatting of read command restrictions for slow query log 
(CASSANDRA-15503)
 + * Allow sstableloader to use SSL on the native port (CASSANDRA-14904)
 +Merged from 3.0:
+  * Avoid emitting empty range tombstones from RangeTombstoneList 
(CASSANDRA-15924)
   * Avoid thread starvation, and improve compare-and-swap performance, in the 
slab allocators (CASSANDRA-15922)
 - * Fix broken KEYS 2i queries after DROP COMPACT STORAGE (CASSANDRA-15906)
   * Add token to tombstone warning and error messages (CASSANDRA-15890)
   * Fixed range read concurrency factor computation and capped as 10 times tpc 
cores (CASSANDRA-15752)
   * Catch exception on bootstrap resume and init native transport 
(CASSANDRA-15863)
diff --cc src/java/org/apache/cassandra/db/RangeTombstoneList.java
index 716213d,ad91e72..1aa20c1
--- a/src/java/org/apache/cassandra/db/RangeTombstoneList.java
+++ b/src/java/org/apache/cassandra/db/RangeTombstoneList.java
@@@ -397,8 -397,10 +397,10 @@@ public class RangeTombstoneList impleme
          {
              // We want to make sure the range are stricly included within the 
queried slice as this
              // make it easier to combine things when iterating over 
successive slices.
 -            Slice.Bound s = comparator.compare(starts[start], slice.start()) 
< 0 ? slice.start() : starts[start];
 -            Slice.Bound e = comparator.compare(slice.end(), ends[start]) < 0 
? slice.end() : ends[start];
 +            ClusteringBound s = comparator.compare(starts[start], 
slice.start()) < 0 ? slice.start() : starts[start];
 +            ClusteringBound e = comparator.compare(slice.end(), ends[start]) 
< 0 ? slice.end() : ends[start];
+             if (Slice.isEmpty(comparator, s, e))
+                 return Collections.emptyIterator();
              return 
Iterators.<RangeTombstone>singletonIterator(rangeTombstoneWithNewBounds(start, 
s, e));
          }
  
@@@ -443,8 -445,10 +445,10 @@@
          {
              // We want to make sure the range are stricly included within the 
queried slice as this
              // make it easier to combine things when iterator over successive 
slices.
 -            Slice.Bound s = comparator.compare(starts[start], slice.start()) 
< 0 ? slice.start() : starts[start];
 -            Slice.Bound e = comparator.compare(slice.end(), ends[start]) < 0 
? slice.end() : ends[start];
 +            ClusteringBound s = comparator.compare(starts[start], 
slice.start()) < 0 ? slice.start() : starts[start];
 +            ClusteringBound e = comparator.compare(slice.end(), ends[start]) 
< 0 ? slice.end() : ends[start];
+             if (Slice.isEmpty(comparator, s, e))
+                 return Collections.emptyIterator();
              return 
Iterators.<RangeTombstone>singletonIterator(rangeTombstoneWithNewBounds(start, 
s, e));
          }
  


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to