merge from 1.1
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a1b601e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a1b601e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a1b601e4 Branch: refs/heads/cassandra-1.2 Commit: a1b601e435a3dc97b46bad32cb4060ba063c5718 Parents: 1b41d6f ccdb632 Author: Jonathan Ellis <jbel...@apache.org> Authored: Thu Jan 10 12:52:01 2013 -0600 Committer: Jonathan Ellis <jbel...@apache.org> Committed: Thu Jan 10 12:52:01 2013 -0600 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../apache/cassandra/thrift/ThriftValidation.java | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1b601e4/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 5100c1a,58dbc7b..63c0b1d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,39 -1,11 +1,40 @@@ -1.1.9 +1.2.1 ++ * re-allow wrapping ranges for start_token/end_token range pairing (CASSANDRA-5106) + * fix validation compaction of empty rows (CASSADRA-5136) + * nodetool methods to enable/disable hint storage/delivery (CASSANDRA-4750) + * disallow bloom filter false positive chance of 0 (CASSANDRA-5013) + * add threadpool size adjustment methods to JMXEnabledThreadPoolExecutor and + CompactionManagerMBean (CASSANDRA-5044) + * fix hinting for dropped local writes (CASSANDRA-4753) + * off-heap cache doesn't need mutable column container (CASSANDRA-5057) + * apply disk_failure_policy to bad disks on initial directory creation + (CASSANDRA-4847) + * Optimize name-based queries to use ArrayBackedSortedColumns (CASSANDRA-5043) + * Fall back to old manifest if most recent is unparseable (CASSANDRA-5041) + * pool [Compressed]RandomAccessReader objects on the partitioned read path + (CASSANDRA-4942) + * Add debug logging to list filenames processed by Directories.migrateFile + method (CASSANDRA-4939) + * Expose black-listed directories via JMX (CASSANDRA-4848) + * Log compaction merge counts (CASSANDRA-4894) + * Minimize byte array allocation by AbstractData{Input,Output} (CASSANDRA-5090) + * Add SSL support for the binary protocol (CASSANDRA-5031) + * Allow non-schema system ks modification for shuffle to work (CASSANDRA-5097) + * cqlsh: Add default limit to SELECT statements (CASSANDRA-4972) + * cqlsh: fix DESCRIBE for 1.1 cfs in CQL3 (CASSANDRA-5101) + * Correctly gossip with nodes >= 1.1.7 (CASSANDRA-5102) + * Ensure CL guarantees on digest mismatch (CASSANDRA-5113) + * Validate correctly selects on composite partition key (CASSANDRA-5122) + * Fix exception when adding collection (CASSANDRA-5117) + * Handle states for non-vnode clusters correctly (CASSANDRA-5127) + * Refuse unrecognized replication strategy options (CASSANDRA-4795) + * Pick the correct value validator in sstable2json for cql3 tables (CASSANDRA-5134) +Merged from 1.1: * Simplify CompressedRandomAccessReader to work around JDK FD bug (CASSANDRA-5088) * Improve handling a changing target throttle rate mid-compaction (CASSANDRA-5087) - * fix multithreaded compaction deadlock (CASSANDRA-4492) - * fix specifying and altering crc_check_chance (CASSANDRA-5053) - * Don't expire columns sooner than they should in 2ndary indexes (CASSANDRA-5079) * Pig: correctly decode row keys in widerow mode (CASSANDRA-5098) * nodetool repair command now prints progress (CASSANDRA-4767) + * Ensure Jackson dependency matches lib (CASSANDRA-5126) * fix user defined compaction to run against 1.1 data directory (CASSANDRA-5118) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1b601e4/src/java/org/apache/cassandra/thrift/ThriftValidation.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/thrift/ThriftValidation.java index c0702b2,bc64018..eebc378 --- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java +++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java @@@ -476,18 -502,17 +476,17 @@@ public class ThriftValidatio if (startToken.compareTo(endToken) > 0 && !endToken.isMinimum(p)) { if (p.preservesOrder()) - throw new InvalidRequestException("start key must sort before (or equal to) finish key in your partitioner!"); + throw new org.apache.cassandra.exceptions.InvalidRequestException("start key must sort before (or equal to) finish key in your partitioner!"); else - throw new InvalidRequestException("start key's md5 sorts after end key's md5. this is not allowed; you probably should not specify end key at all, under RandomPartitioner"); + throw new org.apache.cassandra.exceptions.InvalidRequestException("start key's token sorts after end key's token. this is not allowed; you probably should not specify end key at all except with an ordered partitioner"); } } - else if (range.end_token != null) + else if (range.start_key != null && range.end_token != null) { + // start_token/end_token can wrap, but key/token should not RowPosition stop = p.getTokenFactory().fromString(range.end_token).maxKeyBound(p); - if (range.start_key != null && RowPosition.forKey(range.start_key, p).compareTo(stop) > 0) + if (RowPosition.forKey(range.start_key, p).compareTo(stop) > 0) - throw new InvalidRequestException("Start key's token sorts after end token"); + throw new org.apache.cassandra.exceptions.InvalidRequestException("Start key's token sorts after end token"); - if (range.start_token != null && p.getTokenFactory().fromString(range.start_token).maxKeyBound(p).compareTo(stop) > 0) - throw new org.apache.cassandra.exceptions.InvalidRequestException("Start token sorts after end token"); } validateFilterClauses(metadata, range.row_filter);