Merge branch 'cassandra-2.1' into trunk Conflicts: CHANGES.txt src/java/org/apache/cassandra/cql3/statements/SelectStatement.java src/java/org/apache/cassandra/thrift/CassandraServer.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d5b2fa20 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d5b2fa20 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d5b2fa20 Branch: refs/heads/trunk Commit: d5b2fa206fbbf308f65e153e865e2a36bccfda89 Parents: aa6233a 85ea373 Author: Sylvain Lebresne <sylv...@datastax.com> Authored: Thu Nov 6 16:41:20 2014 +0100 Committer: Sylvain Lebresne <sylv...@datastax.com> Committed: Thu Nov 6 16:41:20 2014 +0100 ---------------------------------------------------------------------- CHANGES.txt | 2 + .../cql3/statements/BatchStatement.java | 7 +- .../cql3/statements/ModificationStatement.java | 3 +- .../cql3/statements/SelectStatement.java | 8 +- .../apache/cassandra/service/ClientState.java | 36 +++++ .../apache/cassandra/service/QueryState.java | 5 +- .../apache/cassandra/service/StorageProxy.java | 139 ++++++++++++++----- .../service/pager/MultiPartitionPager.java | 13 +- .../service/pager/NamesQueryPager.java | 7 +- .../cassandra/service/pager/QueryPagers.java | 30 ++-- .../service/pager/SliceQueryPager.java | 11 +- .../cassandra/thrift/CassandraServer.java | 37 ++--- 12 files changed, 206 insertions(+), 92 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index b23f756,5348f2f..79318fc --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,37 @@@ +3.0 + * Mark sstables as repaired after full repair (CASSANDRA-7586) + * Extend Descriptor to include a format value and refactor reader/writer apis (CASSANDRA-7443) + * Integrate JMH for microbenchmarks (CASSANDRA-8151) + * Keep sstable levels when bootstrapping (CASSANDRA-7460) + * Add Sigar library and perform basic OS settings check on startup (CASSANDRA-7838) + * Support for aggregation functions (CASSANDRA-4914) + * Remove cassandra-cli (CASSANDRA-7920) + * Accept dollar quoted strings in CQL (CASSANDRA-7769) + * Make assassinate a first class command (CASSANDRA-7935) + * Support IN clause on any clustering column (CASSANDRA-4762) + * Improve compaction logging (CASSANDRA-7818) + * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917) + * Do anticompaction in groups (CASSANDRA-6851) + * Support pure user-defined functions (CASSANDRA-7395, 7526, 7562, 7740, 7781, 7929, + 7924, 7812, 8063) + * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416) + * Move sstable RandomAccessReader to nio2, which allows using the + FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050) + * Remove CQL2 (CASSANDRA-5918) + * Add Thrift get_multi_slice call (CASSANDRA-6757) + * Optimize fetching multiple cells by name (CASSANDRA-6933) + * Allow compilation in java 8 (CASSANDRA-7028) + * Make incremental repair default (CASSANDRA-7250) + * Enable code coverage thru JaCoCo (CASSANDRA-7226) + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) + * Shorten SSTable path (CASSANDRA-6962) + * Use unsafe mutations for most unit tests (CASSANDRA-6969) + * Fix race condition during calculation of pending ranges (CASSANDRA-7390) + * Fail on very large batch sizes (CASSANDRA-8011) + * improve concurrency of repair (CASSANDRA-6455) + + 2.1.3 + * Have paxos reuse the timestamp generation of normal queries (CASSANDRA-7801) 2.1.2 * (cqlsh) parse_for_table_meta errors out on queries with undefined http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 686f50f,84cbdc0..b6cbd30 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@@ -214,25 -212,27 +214,25 @@@ public class SelectStatement implement if (pageSize <= 0 || command == null || !QueryPagers.mayNeedPaging(command, pageSize)) { - return execute(command, options, limit, now); + return execute(command, options, limit, now, state); } - else - { - QueryPager pager = QueryPagers.pager(command, cl, state.getClientState(), options.getPagingState()); - if (parameters.isCount) - return pageCountQuery(pager, options, pageSize, now, limit); - QueryPager pager = QueryPagers.pager(command, cl, options.getPagingState()); - // We can't properly do post-query ordering if we page (see #6722) - if (needsPostQueryOrdering()) - throw new InvalidRequestException("Cannot page queries with both ORDER BY and a IN restriction on the partition key; you must either remove the " - + "ORDER BY or the IN and sort client side, or disable paging for this query"); ++ QueryPager pager = QueryPagers.pager(command, cl, state.getClientState(), options.getPagingState()); + if (selection.isAggregate()) + return pageAggregateQuery(pager, options, pageSize, now); - List<Row> page = pager.fetchPage(pageSize); - ResultMessage.Rows msg = processResults(page, options, limit, now); + // We can't properly do post-query ordering if we page (see #6722) + if (needsPostQueryOrdering()) + throw new InvalidRequestException("Cannot page queries with both ORDER BY and a IN restriction on the partition key; you must either remove the " + + "ORDER BY or the IN and sort client side, or disable paging for this query"); - if (!pager.isExhausted()) - msg.result.metadata.setHasMorePages(pager.state()); + List<Row> page = pager.fetchPage(pageSize); + ResultMessage.Rows msg = processResults(page, options, limit, now); - return msg; - } + if (!pager.isExhausted()) + msg.result.metadata.setHasMorePages(pager.state()); + + return msg; } private Pageable getPageableCommand(QueryOptions options, int limit, long now) throws RequestValidationException http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/src/java/org/apache/cassandra/service/ClientState.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/src/java/org/apache/cassandra/service/QueryState.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/src/java/org/apache/cassandra/service/StorageProxy.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d5b2fa20/src/java/org/apache/cassandra/thrift/CassandraServer.java ----------------------------------------------------------------------