You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2026/09/02 22:02:53 UTC

(cassandra) branch cassandra-6.0 updated (6e0549d53c -> 41e0c8c96b)

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

asf-gitbox-commits pushed a change to branch cassandra-6.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


    from 6e0549d53c Upgrade lz4-java to 1.11.2
     new 7ee239aac9 Unwrap LongType properly when calculating min/max terms in V1SSTableIndex
     new 41e0c8c96b Merge branch 'cassandra-5.0' into cassandra-6.0

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.txt                                        |  1 +
 .../index/sai/disk/v1/V1SSTableIndex.java          |  4 +--
 .../cassandra/index/sai/utils/IndexTermType.java   | 10 ------
 .../index/sai/cql/ClusteringKeyIndexTest.java      | 36 ++++++++++++++++++++++
 4 files changed, 39 insertions(+), 12 deletions(-)


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


(cassandra) 01/01: Merge branch 'cassandra-5.0' into cassandra-6.0

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 41e0c8c96b368955d2efddf986fc767558e76af0
Merge: 6e0549d53c 7ee239aac9
Author: Caleb Rackliffe <ca...@gmail.com>
AuthorDate: Wed Sep 2 16:53:06 2026 -0500

    Merge branch 'cassandra-5.0' into cassandra-6.0
    
    * cassandra-5.0:
      Unwrap LongType properly when calculating min/max terms in V1SSTableIndex

 CHANGES.txt                                        |  1 +
 .../index/sai/disk/v1/V1SSTableIndex.java          |  4 +--
 .../cassandra/index/sai/utils/IndexTermType.java   | 10 ------
 .../index/sai/cql/ClusteringKeyIndexTest.java      | 36 ++++++++++++++++++++++
 4 files changed, 39 insertions(+), 12 deletions(-)

diff --cc CHANGES.txt
index fb13a5cf7f,800547a91b..52a35e8fc8
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,24 -1,5 +1,25 @@@
 -5.0.10
 +6.0-alpha3
 + * Encode the CQL as raw bytes to avoid utf string serialization length limitation (CASSANDRA-21599)
 + * Add a guardrail to disallow reconfiguring CMS below a minimum size (CASSANDRA-19195)
 + * Node can report DECOMMISSION_FAILED while actively leaving after a rejected decommission attempt (CASSANDRA-21583)
 + * Make NoSpamLogger to use Caffeine cache instead of unbounded cache that could lead to memory exhaustion (CASSANDRA-21474)
 + * Reduce overheads of isOrdinaryUser check performed by Guardrail.enabled (CASSANDRA-21589)
 + * MultiStepOperations should not encode range movements using endpoints (CASSANDRA-21582)
 + * Avoid "During operation execution,... at ONE the ring has changed from epoch1 to epoch2 error" with counter writes (CASSANDRA-21585)
 + * Reject LIKE patterns with a wildcard (%) anywhere other than the start or end (CASSANDRA-21068)
 + * Stabilize cursor-based compaction (CASSANDRA-21462)
 + * Stop using Java streams in CIDRPermissions.SubsetPermissions#canAccessFrom hot method (CASSANDRA-21588)
 + * Enable trickle fsync by default (CASSANDRA-21572)
 + * Protect uncaught_exceptions virtual table against the crash path (CASSANDRA-21578)
 + * Optimize ServerConnection.requests for both reads and writes (CASSANDRA-21569)
 + * Ensure transferred_ranges reset on decommision re-attempt when pending ranges cannot be proven continous (CASSANDRA-16290)
 + * Add blob type support to SAI (CASSANDRA-20012)
 + * Fix deserialization of column masks in cluster metadata (CASSANDRA-21549)
 + * Caffeine caches in CompressionDictionaryCache and ZstdDictionaryCompressor should specify an executor explicitly (CASSANDRA-21557)
 + * Make cqlsh prompt to reset to no keyspace set by USE after dropping that keyspace (CASSANDRA-21548)
 + * Implement CMS rediscovery and recovery protocol (CASSANDRA-20476)
 +Merged from 5.0:
+  * Unwrap LongType properly when calculating min/max terms in V1SSTableIndex (CASSANDRA-21635)
   * Force repair should ignore min_repair_interval (CASSANDRA-21552)
   * Render SubnetGroups as JSON in system_views.settings (CASSANDRA-21579)
   * Avoid rebuilding per-SSTable SAI components unless missing or corrupted (CASSANDRA-21515)
diff --cc src/java/org/apache/cassandra/index/sai/utils/IndexTermType.java
index 79b1d10760,eeb7cdd1d2..c7318d9835
--- a/src/java/org/apache/cassandra/index/sai/utils/IndexTermType.java
+++ b/src/java/org/apache/cassandra/index/sai/utils/IndexTermType.java
@@@ -471,85 -452,6 +470,76 @@@ public class IndexTermTyp
          }
      }
  
 +    @Nullable
 +    public Iterator<ByteBuffer> valuesOfFrozenCollection(Row row, long nowInSecs)
 +    {
 +        if (row == null)
 +            return null;
 +
 +        ByteBuffer buffer;
 +
 +        if (columnMetadata.kind == ColumnMetadata.Kind.CLUSTERING)
 +             buffer = row.clustering().bufferAt(columnMetadata.position());
 +        else
 +        {
 +            Cell<?> cell = row.getCell(columnMetadata);
 +            if (cell == null || !cell.isLive(nowInSecs))
 +                return null;
 +            buffer = cell.buffer();
 +        }
 +
 +        if (buffer == null || buffer.remaining() == 0)
 +            return null;
 +
 +        CollectionType<?> collectionType = (CollectionType<?>) columnMetadata.type.unwrap();
 +        List<ByteBuffer> elements = collectionType.unpack(buffer);
 +
 +        switch (collectionType.kind)
 +        {
 +            case LIST:
 +            case SET:
 +                break;
 +            case MAP:
 +                elements = extractMapElements(elements);
 +                break;
 +            default:
 +                throw new IllegalArgumentException("Unsupported type of collection - " + collectionType.kind);
 +        }
 +
 +        if (isInetAddress())
 +            elements.sort((c1, c2) -> compareInet(encodeInetAddress(c1), encodeInetAddress(c2)));
 +
 +        return elements.iterator();
 +    }
 +
 +    private List<ByteBuffer> extractMapElements(List<ByteBuffer> elements)
 +    {
 +        List<ByteBuffer> result = new ArrayList<>(elements.size());
 +
 +        for (int i = 0; i < elements.size(); i += 2)
 +        {
 +            ByteBuffer key = elements.get(i);
 +            ByteBuffer value = i + 1 < elements.size() ? elements.get(i + 1) : null;
 +
 +            switch (indexTargetType)
 +            {
 +                case KEYS:
 +                    result.add(key);
 +                    break;
 +                case VALUES:
 +                    if (value != null)
 +                        result.add(value);
 +                    break;
 +                case KEYS_AND_VALUES:
 +                    if (value != null)
 +                        result.add(CompositeType.build(ByteBufferAccessor.instance, key, value));
 +                    break;
 +            }
 +        }
 +
 +        return result;
 +    }
 +
-     public Comparator<ByteBuffer> comparator()
-     {
-         // Override the comparator for BigInteger, BigDecimal and composite types
-         if (isBigInteger() || isBigDecimal() || isComposite())
-             return FastByteOperations::compareUnsigned;
- 
-         return indexType;
-     }
- 
      /**
       * Compare two terms based on their type. This is used in place of {@link AbstractType#compare(ByteBuffer, ByteBuffer)}
       * so that the default comparison can be overridden for specific types.


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