Merge branch 'cassandra-2.1' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/51cdeed4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/51cdeed4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/51cdeed4 Branch: refs/heads/trunk Commit: 51cdeed483d4b00f6cc35d260745019da4c0d113 Parents: 2472701 e77ea12 Author: Benedict Elliott Smith <bened...@apache.org> Authored: Mon Jun 30 14:31:52 2014 +0100 Committer: Benedict Elliott Smith <bened...@apache.org> Committed: Mon Jun 30 14:31:52 2014 +0100 ---------------------------------------------------------------------- build.xml | 4 +- conf/cassandra-env.sh | 4 + conf/cassandra.yaml | 2 +- .../apache/cassandra/db/AbstractNativeCell.java | 55 ++++- .../cassandra/db/ArrayBackedSortedColumns.java | 4 +- .../apache/cassandra/db/AtomicBTreeColumns.java | 13 +- .../apache/cassandra/db/BufferDecoratedKey.java | 2 + .../cassandra/db/CollationController.java | 2 + .../apache/cassandra/db/ConsistencyLevel.java | 2 + .../org/apache/cassandra/db/DecoratedKey.java | 3 + .../apache/cassandra/db/NativeDecoratedKey.java | 3 +- .../cassandra/db/composites/AbstractCType.java | 93 ++++++-- .../db/composites/AbstractCellNameType.java | 23 +- .../AbstractCompoundCellNameType.java | 2 + .../composites/AbstractSimpleCellNameType.java | 80 +++++-- .../apache/cassandra/db/composites/CType.java | 2 + .../cassandra/db/composites/CellNameType.java | 3 +- .../cassandra/db/composites/Composites.java | 5 +- .../composites/CompoundSparseCellNameType.java | 2 - .../cassandra/db/composites/SimpleCType.java | 22 +- .../apache/cassandra/db/filter/ColumnSlice.java | 52 +++-- .../cassandra/db/filter/NamesQueryFilter.java | 2 +- .../cassandra/db/filter/SliceQueryFilter.java | 2 +- .../cassandra/io/sstable/IndexHelper.java | 4 +- .../org/apache/cassandra/io/util/Memory.java | 3 +- .../apache/cassandra/service/StorageProxy.java | 3 + .../cassandra/thrift/CassandraServer.java | 15 +- .../apache/cassandra/utils/ByteBufferUtil.java | 4 + .../cassandra/utils/FastByteOperations.java | 226 +++++++++---------- .../org/apache/cassandra/utils/MurmurHash.java | 3 + .../cassandra/utils/btree/NodeBuilder.java | 4 +- .../cassandra/utils/memory/MemoryUtil.java | 1 + .../org/apache/cassandra/db/NativeCellTest.java | 80 +++++++ .../cassandra/db/composites/CTypeTest.java | 9 - .../cassandra/db/filter/ColumnSliceTest.java | 4 +- 35 files changed, 501 insertions(+), 237 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/build.xml ---------------------------------------------------------------------- diff --cc build.xml index 27ac9c5,bc2bbfd..6ea57bc --- a/build.xml +++ b/build.xml @@@ -423,8 -432,8 +423,9 @@@ <dependency groupId="org.apache.hadoop" artifactId="hadoop-minicluster"/> <dependency groupId="org.apache.pig" artifactId="pig"/> <dependency groupId="com.google.code.findbugs" artifactId="jsr305"/> + <dependency groupId="org.antlr" artifactId="antlr"/> <dependency groupId="com.datastax.cassandra" artifactId="cassandra-driver-core"/> + <dependency groupId="net.ju-n.compile-command-annotations" artifactId="compile-command-annotations"/> </artifact:pom> <artifact:pom id="coverage-deps-pom" http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/db/AtomicBTreeColumns.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/db/CollationController.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/db/ConsistencyLevel.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/db/composites/CType.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/db/composites/CellNameType.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/db/filter/NamesQueryFilter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/io/util/Memory.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/io/util/Memory.java index b908a9d,5306433..5b90d39 --- a/src/java/org/apache/cassandra/io/util/Memory.java +++ b/src/java/org/apache/cassandra/io/util/Memory.java @@@ -20,7 -20,9 +20,8 @@@ package org.apache.cassandra.io.util import java.nio.ByteBuffer; import java.nio.ByteOrder; -import com.sun.jna.Native; import org.apache.cassandra.config.DatabaseDescriptor; + import org.apache.cassandra.utils.FastByteOperations; import org.apache.cassandra.utils.memory.MemoryUtil; import sun.misc.Unsafe; import sun.nio.ch.DirectBuffer; http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/thrift/CassandraServer.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/thrift/CassandraServer.java index 9a8ef8a,0621db9..343b811 --- a/src/java/org/apache/cassandra/thrift/CassandraServer.java +++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java @@@ -2037,13 -2071,17 +2037,16 @@@ public class CassandraServer implement fixOptionalSliceParameters(request.getColumn_slices().get(i)); Composite start = metadata.comparator.fromByteBuffer(request.getColumn_slices().get(i).start); Composite finish = metadata.comparator.fromByteBuffer(request.getColumn_slices().get(i).finish); - int compare = metadata.comparator.compare(start, finish); - if (!request.reversed && compare > 0) - throw new InvalidRequestException(String.format("Column slice at index %d had start greater than finish", i)); - else if (request.reversed && compare < 0) - throw new InvalidRequestException(String.format("Reversed column slice at index %d had start less than finish", i)); + if (!start.isEmpty() && !finish.isEmpty()) + { + int compare = metadata.comparator.compare(start, finish); + if (!request.reversed && compare > 0) + throw new InvalidRequestException(String.format("Column slice at index %d had start greater than finish", i)); + else if (request.reversed && compare < 0) + throw new InvalidRequestException(String.format("Reversed column slice at index %d had start less than finish", i)); + } slices[i] = new ColumnSlice(start, finish); } - ColumnSlice[] deoverlapped = ColumnSlice.deoverlapSlices(slices, request.reversed ? metadata.comparator.reverseComparator() : metadata.comparator); SliceQueryFilter filter = new SliceQueryFilter(deoverlapped, request.reversed, request.count); ThriftValidation.validateKey(metadata, request.key); http://git-wip-us.apache.org/repos/asf/cassandra/blob/51cdeed4/src/java/org/apache/cassandra/utils/ByteBufferUtil.java ----------------------------------------------------------------------