Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
In 2.x, if a table has clustering columns in DESC order, any SSTable that doesn’t have any static rows in it will be skipped altogether when iterated in reverse.
This occurs due to the logic in ColumnSlice.compare() errorneusly sorting any empty ByteBuffer after non-empty values due to the way ReversedType operates. In case that empty ByteBuffer is coming from a static Composite, however, the logic breaks down. Static Composite components must always sort before any non-empty value, no matter the table’s comparator.
2.0, 2.1, and 2.2 are all affected. 3.0 isn’t, but only because we skip slice intersection logic entirely if static rows are present in the filter.
Introduced by CASSANDRA-8502.