diff --git a/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java b/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java index 2bcd1f25c2f6..1a3b08355fe4 100644 --- a/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java +++ b/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java @@ -513,8 +513,10 @@ public boolean areRequestedBoundsInclusive(Bound bound) */ public boolean isColumnRange() { + // For static compact tables we need to ignore the fake clustering column. + int numberOfClusteringColumns = cfm.isStaticCompactTable() ? 0 : cfm.clusteringColumns().size(); // it is a range query if it has at least one the column alias for which no relation is defined or is not EQ. - return clusteringColumnsRestrictions.size() < cfm.clusteringColumns().size() + return clusteringColumnsRestrictions.size() < numberOfClusteringColumns || (!clusteringColumnsRestrictions.isEQ() && !clusteringColumnsRestrictions.isIN()); } diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 9ac76d6a44df..d08c56f41f8c 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -337,7 +337,12 @@ else if (restrictions.keyIsInRelation()) try (PartitionIterator iter = pager.fetchPage(pageSize)) { while (iter.hasNext()) - processPartition(iter.next(), options, result, nowInSec); + { + try (RowIterator partition = iter.next()) + { + processPartition(partition, options, result, nowInSec); + } + } } } return new ResultMessage.Rows(result.build(options.getProtocolVersion()));