merge from 1.2
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b9de5de2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b9de5de2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b9de5de2 Branch: refs/heads/trunk Commit: b9de5de235267154f6a6fea5f2ca6710c5efefc5 Parents: 5151169 8d17ccb Author: Jonathan Ellis <[email protected]> Authored: Thu Jun 20 13:56:04 2013 -0500 Committer: Jonathan Ellis <[email protected]> Committed: Thu Jun 20 13:56:04 2013 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + NEWS.txt | 71 +++--- bin/sstableupgrade | 55 +++++ debian/cassandra.install | 1 + doc/cql3/CQL.textile | 5 +- .../cql3/statements/SelectStatement.java | 11 +- .../cassandra/db/compaction/Upgrader.java | 167 ++++++++++++++ .../cassandra/tools/StandaloneUpgrader.java | 223 +++++++++++++++++++ 8 files changed, 494 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9de5de2/CHANGES.txt ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9de5de2/NEWS.txt ---------------------------------------------------------------------- diff --cc NEWS.txt index 7e06aa7,dbc9aab..c838d48 --- a/NEWS.txt +++ b/NEWS.txt @@@ -8,64 -8,11 +8,73 @@@ upgrade, just in case you need to roll (Cassandra version X + 1 will always be able to read data files created by version X, but the inverse is not necessarily the case.) ++<<<<<<< HEAD +2.0.0 +===== + +Upgrading +--------- + - CAS and new features in CQL such as DROP COLUMN assume that cell + timestamps are microseconds-since-epoch. Do not use these + features if you are using client-specified timestamps with some + other source. + - Upgrading is ONLY supported from Cassandra 1.2.5 or later. This + goes for sstable compatibility as well as network. When + upgrading from an earlier release, upgrade to 1.2.5 first and + run upgradesstables before proceeding to 2.0. + - Replication and strategy options do not accept unknown options anymore. + This was already the case for CQL3 in 1.2 but this is now the case for + thrift too. + - auto_bootstrap of a single-token node with no initial_token will + now pick a random token instead of bisecting an existing token + range. We recommend upgrading to vnodes; failing that, we + recommend specifying initial_token. + - reduce_cache_sizes_at, reduce_cache_capacity_to, and + flush_largest_memtables_at options have been removed from cassandra.yaml. + - CacheServiceMBean.reduceCacheSizes() has been removed. + Use CacheServiceMBean.set{Key,Row}CacheCapacityInMB() instead. + - authority option in cassandra.yaml has been deprecated since 1.2.0, + but it has been completely removed in 2.0. Please use 'authorizer' option. + - ASSUME command has been removed from cqlsh. Use CQL3 blobAsType() and + typeAsBlob() conversion functions instead. + See https://cassandra.apache.org/doc/cql3/CQL.html#blobFun for details. + - Inputing blobs as string constants is now fully deprecated in + favor of blob constants. Make sure to update your applications to use + the new syntax while you are still on 1.2 (which supports both string + and blob constants for blob input) before upgrading to 2.0. + +Operations +---------- + - Major compactions, cleanup, scrub, and upgradesstables will interrupt + any in-progress compactions (but not repair validations) when invoked. + - Disabling autocompactions by setting min/max compaction threshold to 0 + has been deprecated, instead, use the nodetool commands 'disableautocompaction' + and 'enableautocompaction' or set the compaction strategy option enabled = false + - ALTER TABLE DROP has been reenabled for CQL3 tables and has new semantics now. + See https://cassandra.apache.org/doc/cql3/CQL.html#alterTableStmt and + https://issues.apache.org/jira/browse/CASSANDRA-3919 for details. + - CAS uses gc_grace_seconds to determine how long to keep unused paxos + state around for, or a minimum of three hours. + +Features +-------- + - Alias support has been added to CQL3 SELECT statement. Refer to + CQL3 documentation (http://cassandra.apache.org/doc/cql3/CQL.html) for details. + - JEMalloc support (see memory_allocator in cassandra.yaml) + - Experimental triggers support. See examples/ for how to use. "Experimental" + means "tied closely to internal data structures; we plan to decouple this in + the future, which will probably break triggers written against this initial + API." + + ++||||||| merged common ancestors ++======= + When upgrading major versions of Cassandra, you will be unable to + restore snapshots created with the previous major version using the + 'sstableloader' tool. You can upgrade the file format of your snapshots + using the provided 'sstableupgrade' tool. + ++>>>>>>> cassandra-1.2 1.2.6 ===== http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9de5de2/debian/cassandra.install ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9de5de2/doc/cql3/CQL.textile ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b9de5de2/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index fd47ba8,03f222b..3815a9d --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@@ -1019,19 -1046,7 +1019,16 @@@ public class SelectStatement implement } else { - if (!partitioner.preservesOrder()) - throw new InvalidRequestException("Only EQ and IN relation are supported on the partition key (you will need to use the token() function for non equality based relation)"); ++ if (hasQueriableIndex) + { - if (hasQueriableIndex) - { - stmt.usesSecondaryIndexing = true; - break; - } - throw new InvalidRequestException("Only EQ and IN relation are supported on the partition key for random partitioners (unless you use the token() function)"); ++ stmt.usesSecondaryIndexing = true; ++ break; + } ++ throw new InvalidRequestException("Only EQ and IN relation are supported on the partition key for random partitioners (unless you use the token() function)"); + + stmt.isKeyRange = true; + lastRestrictedPartitionKey = i; + shouldBeDone = true; } previous = cname; }
