[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a9f65bcf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a9f65bcf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a9f65bcf Branch: refs/heads/trunk Commit: a9f65bcf28e7abc2f30130ae2e8fb34cf5ee7a55 Parents: cea00e9 65f7990 Author: Jonathan Ellis Authored: Wed Nov 5 16:45:10 2014 -0600 Committer: Jonathan Ellis Committed: Wed Nov 5 16:45:10 2014 -0600 -- --
[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java src/java/org/apache/cassandra/db/index/PerColumnSecondaryIndex.java src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/76478043 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/76478043 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/76478043 Branch: refs/heads/trunk Commit: 7647804308de4870e27b0e421ed8ccf1f4cb Parents: 5117a5d c345f81 Author: Sylvain Lebresne Authored: Tue Nov 4 18:42:53 2014 +0100 Committer: Sylvain Lebresne Committed: Tue Nov 4 18:42:53 2014 +0100 -- CHANGES.txt | 1 + .../db/index/AbstractSimplePerColumnSecondaryIndex.java | 5 + .../apache/cassandra/db/index/PerColumnSecondaryIndex.java | 7 ++- src/java/org/apache/cassandra/db/index/SecondaryIndex.java | 7 +++ .../apache/cassandra/db/index/SecondaryIndexManager.java| 4 ++-- .../db/index/composites/CompositesIndexOnClusteringKey.java | 9 + .../db/index/composites/CompositesIndexOnPartitionKey.java | 9 + 7 files changed, 39 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/76478043/CHANGES.txt -- diff --cc CHANGES.txt index 7fb32fe,2fe3a39..9dbb66b --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,22 -1,5 +1,23 @@@ -2.0.12: +2.1.2 + * Fix issues with CONTAINS (KEY) queries on secondary indexes + (CASSANDRA-8147) + * Fix read-rate tracking of sstables for some queries (CASSANDRA-8239) + * Fix default timestamp in QueryOptions (CASSANDRA-8246) + * Set socket timeout when reading remote version (CASSANDRA-8188) + * Refactor how we track live size (CASSANDRA-7852) + * Make sure unfinished compaction files are removed (CASSANDRA-8124) + * Fix shutdown when run as Windows service (CASSANDRA-8136) + * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) + * Fix race in RecoveryManagerTest (CASSANDRA-8176) + * Avoid IllegalArgumentException while sorting sstables in + IndexSummaryManager (CASSANDRA-8182) + * Shutdown JVM on file descriptor exhaustion (CASSANDRA-7579) + * Add 'die' policy for commit log and disk failure (CASSANDRA-7927) + * Fix installing as service on Windows (CASSANDRA-8115) + * Fix CREATE TABLE for CQL2 (CASSANDRA-8144) + * Avoid boxing in ColumnStats min/max trackers (CASSANDRA-8109) +Merged from 2.0: + * Fix deletion for indexes on primary key columns (CASSANDRA-8206) * Add 'nodetool statusgossip' (CASSANDRA-8125) * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) http://git-wip-us.apache.org/repos/asf/cassandra/blob/76478043/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java -- diff --cc src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java index d8c03fb,553b9d4..4c398c4 --- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java +++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java @@@ -87,21 -71,28 +87,26 @@@ public abstract class AbstractSimplePer { return String.format("'%s.%s %s %s'", baseCfs.name, - getExpressionComparator().getString(expr.column_name), - expr.op, - baseCfs.metadata.getColumnDefinition(expr.column_name).getValidator().getString(expr.value)); + getExpressionComparator().getString(expr.column), + expr.operator, + baseCfs.metadata.getColumnDefinition(expr.column).type.getString(expr.value)); } -public void delete(ByteBuffer rowKey, Column column) +public void delete(ByteBuffer rowKey, Cell cell, OpOrder.Group opGroup) { -deleteForCleanup(rowKey, column); ++deleteForCleanup(rowKey, cell, opGroup); + } + -public void deleteForCleanup(ByteBuffer rowKey, Column column) ++public void deleteForCleanup(ByteBuffer rowKey, Cell cell, OpOrder.Group opGroup) + { -if (column.isMarkedForDelete(System.currentTimeMillis())) +if (!cell.isLive()) return; -DecoratedKey valueKey = getIndexKeyFor(getIndexedValue(rowKey, column)); +DecoratedKey valueKey = getIndexKeyFor(getIndexedValue(rowKey,
[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b9826f5f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b9826f5f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b9826f5f Branch: refs/heads/trunk Commit: b9826f5f052c5c17ad967f608cc17f8b52d291e5 Parents: e961ac9 cf60d1e Author: Jonathan Ellis Authored: Wed Oct 1 12:44:51 2014 -0500 Committer: Jonathan Ellis Committed: Wed Oct 1 12:44:51 2014 -0500 -- --
[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: build.xml Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8d692141 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8d692141 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8d692141 Branch: refs/heads/trunk Commit: 8d692141970aeef5d0566b336fa7f14c1e54bcef Parents: 037963c e6f307f Author: Jason Brown Authored: Fri Sep 5 16:45:20 2014 -0700 Committer: Jason Brown Committed: Fri Sep 5 16:45:20 2014 -0700 -- build.xml | 4 ++-- lib/thrift-server-0.3.6.jar | Bin 39588 -> 0 bytes lib/thrift-server-0.3.7.jar | Bin 0 -> 39988 bytes 3 files changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8d692141/build.xml -- diff --cc build.xml index 0880975,829c873..5f2b568 --- a/build.xml +++ b/build.xml @@@ -366,11 -359,9 +366,11 @@@ - - - + + - ++ + + @@@ -495,12 -466,13 +495,12 @@@ - + + - - - + +
[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ce747d73 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ce747d73 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ce747d73 Branch: refs/heads/trunk Commit: ce747d736a2dcd40971d7237d17d3ebb32abeb63 Parents: ab45a78 fe39eb7 Author: Aleksey Yeschenko Authored: Wed Aug 20 20:42:26 2014 +0300 Committer: Aleksey Yeschenko Committed: Wed Aug 20 20:42:26 2014 +0300 -- CHANGES.txt | 1 + .../cassandra/hadoop/cql3/CqlConfigHelper.java | 89 + .../cassandra/hadoop/cql3/CqlRecordReader.java | 19 +- ...mitedLocalNodeFirstLocalBalancingPolicy.java | 185 +++ 4 files changed, 198 insertions(+), 96 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ce747d73/CHANGES.txt -- diff --cc CHANGES.txt index 8866cf6,71cfca0..5103d83 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,45 -1,5 +1,46 @@@ -2.0.10 +2.1.1 + * (cqlsh) COPY TO/FROM improvements (CASSANDRA-7405) + * Support list index operations with conditions (CASSANDRA-7499) + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731) + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680) + * (cqlsh) Error when tracing query (CASSANDRA-7613) + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569) + * SSTableExport uses correct validator to create string representation of partition + keys (CASSANDRA-7498) + * Avoid NPEs when receiving type changes for an unknown keyspace (CASSANDRA-7689) + * Add support for custom 2i validation (CASSANDRA-7575) + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Add listen_interface and rpc_interface options (CASSANDRA-7417) + * Improve schema merge performance (CASSANDRA-7444) + * Adjust MT depth based on # of partition validating (CASSANDRA-5263) + * Optimise NativeCell comparisons (CASSANDRA-6755) + * Configurable client timeout for cqlsh (CASSANDRA-7516) + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) +Merged from 2.0: + * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774) + * Throw InvalidRequestException when queries contain relations on entire + collection columns (CASSANDRA-7506) + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577) + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252) + * (cqlsh) cqlsh should automatically disable tracing when selecting + from system_traces (CASSANDRA-7641) + * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927) + * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508) + * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703) + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229) + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635) + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Catch errors when the JVM pulls the rug out from GCInspector (CASSANDRA-5345) + * cqlsh fails when version number parts are not int (CASSANDRA-7524) +Merged from 1.2: + * Improve PasswordAuthenticator default super user setup (CASSANDRA-7788) + + +2.1.0 + * (cqlsh) Fix COPY FROM handling of null/empty primary key + values (CASSANDRA-7792) + * Fix ordering of static cells (CASSANDRA-7763) +Merged from 2.0: * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753) * Fix ALTER clustering column type from DateType to TimestampType when using DESC clustering order (CASSANRDA-7797) http://git-wip-us.apache.org/repos/asf/cassandra/blob/ce747d73/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java --
[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bc165174 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bc165174 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bc165174 Branch: refs/heads/trunk Commit: bc165174b0920b7c494345dc988c3a4b9984ed77 Parents: 77f6c25 36382e5 Author: Aleksey Yeschenko Authored: Mon Aug 18 21:59:31 2014 +0300 Committer: Aleksey Yeschenko Committed: Mon Aug 18 21:59:31 2014 +0300 -- CHANGES.txt | 2 ++ bin/cqlsh | 1 + 2 files changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bc165174/CHANGES.txt -- diff --cc CHANGES.txt index 9ab4109,6c2ba2c..6160b04 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,63 -1,15 +1,65 @@@ -2.0.10 +2.1.1 + * Support list index operations with conditions (CASSANDRA-7499) + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731) + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680) + * (cqlsh) Error when tracing query (CASSANDRA-7613) + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569) + * SSTableExport uses correct validator to create string representation of partition + keys (CASSANDRA-7498) + * Avoid NPEs when receiving type changes for an unknown keyspace (CASSANDRA-7689) + * Add support for custom 2i validation (CASSANDRA-7575) + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Add listen_interface and rpc_interface options (CASSANDRA-7417) + * Improve schema merge performance (CASSANDRA-7444) + * Adjust MT depth based on # of partition validating (CASSANDRA-5263) + * Optimise NativeCell comparisons (CASSANDRA-6755) + * Configurable client timeout for cqlsh (CASSANDRA-7516) + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) +Merged from 2.0: + * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577) - * Fix dropping collection when it's the last regular column (CASSANDRA-7744) - * Properly reject operations on list index with conditions (CASSANDRA-7499) * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252) - * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222) - * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756) * (cqlsh) cqlsh should automatically disable tracing when selecting from system_traces (CASSANDRA-7641) * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927) * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508) * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703) + * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229) + * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635) + * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS (CASSANDRA-7611) + * Catch errors when the JVM pulls the rug out from GCInspector (CASSANDRA-5345) + * cqlsh fails when version number parts are not int (CASSANDRA-7524) + ++ +2.1.0 + * Fix ordering of static cells (CASSANDRA-7763) +Merged from 2.0: + * Fix dropping collection when it's the last regular column (CASSANDRA-7744) + * Properly reject operations on list index with conditions (CASSANDRA-7499) + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252) + + +2.1.0-rc6 + * Fix OOM issue from netty caching over time (CASSANDRA-7743) + * json2sstable couldn't import JSON for CQL table (CASSANDRA-7477) + * Invalidate all caches on table drop (CASSANDRA-7561) + * Skip strict endpoint selection for ranges if RF == nodes (CASSANRA-7765) + * Fix Thrift range filtering without 2ary index lookups (CASSANDRA-7741) + * Add tracing entries about concurrent range requests (CASSANDRA-7599) + * (cqlsh) Fix DESCRIBE for NTS keyspaces (CASSANDRA-7729) + * Remove netty buffer ref-counting (CASSANDRA-7735) + * Pass mutated cf to index updater for use by PRSI (CASSANDRA-7742) + * Include stress yaml example in release and deb (CASSANDRA-7717) + * workaround for netty issue causing corrupted data off the wire (CASSANDRA-7695) + * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687) + * Fix binding null values inside UDT (CASSANDRA-7685) + * Fix UDT field selection with empty fields (CASSANDRA-7670) + * Bogus deserialization of static cells from sstable (CASSANDRA-7684) + * Fix NPE on compaction leftover cleanup for dropped table (CASSANDRA-7770) +Merged from 2.0: + * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222) + * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756) + * Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478) + * Clone token map outside of hot gossip loops (CASSAN
[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt src/java/org/apache/cassandra/client/RingCache.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/35999b3c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/35999b3c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/35999b3c Branch: refs/heads/trunk Commit: 35999b3c835f4eb36180595593d0def7c7dae084 Parents: ff9c631 b87741c Author: Aleksey Yeschenko Authored: Sun Aug 17 20:47:58 2014 +0300 Committer: Aleksey Yeschenko Committed: Sun Aug 17 20:47:58 2014 +0300 -- CHANGES.txt | 1 + .../org/apache/cassandra/client/RingCache.java | 58 ++-- .../apache/cassandra/hadoop/ConfigHelper.java | 11 3 files changed, 40 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/35999b3c/CHANGES.txt -- diff --cc CHANGES.txt index 113de3e,94169c1..b8132ba --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,20 -1,7 +1,21 @@@ -2.0.10 +2.1.1 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731) + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680) + * (cqlsh) Error when tracing query (CASSANDRA-7613) + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569) + * SSTableExport uses correct validator to create string representation of partition + keys (CASSANDRA-7498) + * Avoid NPEs when receiving type changes for an unknown keyspace (CASSANDRA-7689) + * Add support for custom 2i validation (CASSANDRA-7575) + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454) + * Add listen_interface and rpc_interface options (CASSANDRA-7417) + * Improve schema merge performance (CASSANDRA-7444) + * Adjust MT depth based on # of partition validating (CASSANDRA-5263) + * Optimise NativeCell comparisons (CASSANDRA-6755) + * Configurable client timeout for cqlsh (CASSANDRA-7516) + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) +Merged from 2.0: + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252) - * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222) - * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756) * (cqlsh) cqlsh should automatically disable tracing when selecting from system_traces (CASSANDRA-7641) * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927) http://git-wip-us.apache.org/repos/asf/cassandra/blob/35999b3c/src/java/org/apache/cassandra/client/RingCache.java -- diff --cc src/java/org/apache/cassandra/client/RingCache.java index 9b04518,cc9b1b2..c3dbda5 --- a/src/java/org/apache/cassandra/client/RingCache.java +++ b/src/java/org/apache/cassandra/client/RingCache.java @@@ -61,44 -61,47 +61,42 @@@ public class RingCach public void refreshEndpointMap() { - try { + try + { + Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf); - Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf); + String keyspace = ConfigHelper.getOutputKeyspace(conf); + List ring = ConfigHelper.getOutputLocalDCOnly(conf) + ? client.describe_local_ring(keyspace) + : client.describe_ring(keyspace); + rangeMap = ArrayListMultimap.create(); - List ring = client.describe_ring(ConfigHelper.getOutputKeyspace(conf)); - rangeMap = ArrayListMultimap.create(); - - for (TokenRange range : ring) + for (TokenRange range : ring) + { + Token left = partitioner.getTokenFactory().fromString(range.start_token); + Token right = partitioner.getTokenFactory().fromString(range.end_token); + Range r = new Range(left, right, partitioner); + for (String host : range.endpoints) { - Token left = partitioner.getTokenFactory().fromString(range.start_token); - Token right = partitioner.getTokenFactory().fromString(range.end_token); - Range r = new Range(left, right, partitioner); - for (String host : range.endpoints) + try + { + rangeMap.put(r, InetAddress.getByName(host)); -} -catch (UnknownHostException e) ++} catch (UnknownHostException e) { - try -
[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: src/java/org/apache/cassandra/db/filter/ColumnCounter.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6776136a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6776136a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6776136a Branch: refs/heads/trunk Commit: 6776136a66a08636b2ddde7e75b39651460fb0ae Parents: 26191ca abc6565 Author: Sylvain Lebresne Authored: Tue Apr 1 11:09:25 2014 +0200 Committer: Sylvain Lebresne Committed: Tue Apr 1 11:09:25 2014 +0200 -- CHANGES.txt | 1 + .../cassandra/db/filter/ColumnCounter.java | 28 ++-- 2 files changed, 21 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6776136a/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6776136a/src/java/org/apache/cassandra/db/filter/ColumnCounter.java -- diff --cc src/java/org/apache/cassandra/db/filter/ColumnCounter.java index 982cd62,83b138c..b8a9563 --- a/src/java/org/apache/cassandra/db/filter/ColumnCounter.java +++ b/src/java/org/apache/cassandra/db/filter/ColumnCounter.java @@@ -73,9 -75,10 +73,9 @@@ public class ColumnCounte public static class GroupByPrefix extends ColumnCounter { -private final CompositeType type; +private final CellNameType type; private final int toGroup; - private CellName last; -private ByteBuffer[] previous; -private boolean previousGroupIsStatic; ++private CellName previous; /** * A column counter that count only 1 for all the columns sharing a @@@ -110,23 -113,37 +110,35 @@@ return; } -ByteBuffer[] current = type.split(column.name()); -assert current.length >= toGroup; +CellName current = cell.name(); +assert current.size() >= toGroup; - if (last != null) -if (previous == null) -{ -// Only the first group can be static -previousGroupIsStatic = type.isStaticName(column.name()); -} -else ++if (previous != null) { --boolean isSameGroup = true; --for (int i = 0; i < toGroup; i++) ++boolean isSameGroup = previous.isStatic() == current.isStatic(); ++if (isSameGroup) { - if (type.subtype(i).compare(last.get(i), current.get(i)) != 0) -if (ByteBufferUtil.compareUnsigned(previous[i], current[i]) != 0) ++for (int i = 0; i < toGroup; i++) { --isSameGroup = false; --break; ++if (type.subtype(i).compare(previous.get(i), current.get(i)) != 0) ++{ ++isSameGroup = false; ++break; ++} } } if (isSameGroup) return; + + // We want to count the static group as 1 (CQL) row only if it's the only + // group in the partition. So, since we have already counted it at this point, + // just don't count the 2nd group if there is one and the first one was static -if (previousGroupIsStatic) ++if (previous.isStatic()) + { -previousGroupIsStatic = false; ++previous = current; + return; + } } live++;