You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2014/03/20 10:13:05 UTC
[1/2] git commit: Add proper compare function for CollectionType (for
UDT sake)
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 6e366e3b2 -> e62238e08
Add proper compare function for CollectionType (for UDT sake)
patch by slebresne; reviewed by thobbs for CASSANDRA-6783
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f4b9f161
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f4b9f161
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f4b9f161
Branch: refs/heads/cassandra-2.1
Commit: f4b9f16114947e708331899bdb15f8daf5100a3a
Parents: e23e57f
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Mar 20 10:10:45 2014 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Mar 20 10:10:45 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/db/marshal/CollectionType.java | 5 -
.../apache/cassandra/db/marshal/ListType.java | 33 ++++++
.../apache/cassandra/db/marshal/MapType.java | 34 ++++++
.../apache/cassandra/db/marshal/SetType.java | 6 +
.../db/marshal/CollectionTypeTest.java | 116 +++++++++++++++++++
6 files changed, 190 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f4b9f161/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 159d242..856ec23 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -23,6 +23,7 @@
* Add logging levels (minimal, normal or verbose) to stress tool (CASSANDRA-6849)
* Fix race condition in Batch CLE (CASSANDRA-6860)
* Improve cleanup/scrub/upgradesstables failure handling (CASSANDRA-6774)
+ * Proper compare function for CollectionType (CASSANDRA-6783)
Merged from 2.0:
* Omit tombstones from schema digests (CASSANDRA-6862)
* Include correct consistencyLevel in LWT timeout (CASSANDRA-6884)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f4b9f161/src/java/org/apache/cassandra/db/marshal/CollectionType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/CollectionType.java b/src/java/org/apache/cassandra/db/marshal/CollectionType.java
index 02d01ff..5db4ba0 100644
--- a/src/java/org/apache/cassandra/db/marshal/CollectionType.java
+++ b/src/java/org/apache/cassandra/db/marshal/CollectionType.java
@@ -67,11 +67,6 @@ public abstract class CollectionType<T> extends AbstractType<T>
return sb.toString();
}
- public int compare(ByteBuffer o1, ByteBuffer o2)
- {
- throw new UnsupportedOperationException("CollectionType should not be use directly as a comparator");
- }
-
public String getString(ByteBuffer bytes)
{
return BytesType.instance.getString(bytes);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f4b9f161/src/java/org/apache/cassandra/db/marshal/ListType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/ListType.java b/src/java/org/apache/cassandra/db/marshal/ListType.java
index eabda0b..1cc0425 100644
--- a/src/java/org/apache/cassandra/db/marshal/ListType.java
+++ b/src/java/org/apache/cassandra/db/marshal/ListType.java
@@ -25,6 +25,7 @@ import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.exceptions.SyntaxException;
import org.apache.cassandra.serializers.TypeSerializer;
import org.apache.cassandra.serializers.ListSerializer;
+import org.apache.cassandra.utils.ByteBufferUtil;
public class ListType<T> extends CollectionType<List<T>>
{
@@ -76,6 +77,38 @@ public class ListType<T> extends CollectionType<List<T>>
return serializer;
}
+ @Override
+ public int compare(ByteBuffer o1, ByteBuffer o2)
+ {
+ return compareListOrSet(elements, o1, o2);
+ }
+
+ static int compareListOrSet(AbstractType<?> elementsComparator, ByteBuffer o1, ByteBuffer o2)
+ {
+ // Note that this is only used if the collection is inside an UDT
+ if (o1 == null || !o1.hasRemaining())
+ return o2 == null || !o2.hasRemaining() ? 0 : -1;
+ if (o2 == null || !o2.hasRemaining())
+ return 1;
+
+ ByteBuffer bb1 = o1.duplicate();
+ ByteBuffer bb2 = o2.duplicate();
+
+ int size1 = ByteBufferUtil.readShortLength(bb1);
+ int size2 = ByteBufferUtil.readShortLength(bb2);
+
+ for (int i = 0; i < Math.min(size1, size2); i++)
+ {
+ ByteBuffer v1 = ByteBufferUtil.readBytesWithShortLength(bb1);
+ ByteBuffer v2 = ByteBufferUtil.readBytesWithShortLength(bb2);
+ int cmp = elementsComparator.compare(v1, v2);
+ if (cmp != 0)
+ return cmp;
+ }
+
+ return size1 == size2 ? 0 : (size1 < size2 ? -1 : 1);
+ }
+
protected void appendToStringBuilder(StringBuilder sb)
{
sb.append(getClass().getName()).append(TypeParser.stringifyTypeParameters(Collections.<AbstractType<?>>singletonList(elements)));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f4b9f161/src/java/org/apache/cassandra/db/marshal/MapType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/MapType.java b/src/java/org/apache/cassandra/db/marshal/MapType.java
index 4d834e7..2e693d6 100644
--- a/src/java/org/apache/cassandra/db/marshal/MapType.java
+++ b/src/java/org/apache/cassandra/db/marshal/MapType.java
@@ -26,6 +26,7 @@ import org.apache.cassandra.exceptions.SyntaxException;
import org.apache.cassandra.serializers.TypeSerializer;
import org.apache.cassandra.serializers.MapSerializer;
import org.apache.cassandra.utils.Pair;
+import org.apache.cassandra.utils.ByteBufferUtil;
public class MapType<K, V> extends CollectionType<Map<K, V>>
{
@@ -76,6 +77,39 @@ public class MapType<K, V> extends CollectionType<Map<K, V>>
}
@Override
+ public int compare(ByteBuffer o1, ByteBuffer o2)
+ {
+ // Note that this is only used if the collection is inside an UDT
+ if (o1 == null || !o1.hasRemaining())
+ return o2 == null || !o2.hasRemaining() ? 0 : -1;
+ if (o2 == null || !o2.hasRemaining())
+ return 1;
+
+ ByteBuffer bb1 = o1.duplicate();
+ ByteBuffer bb2 = o2.duplicate();
+
+ int size1 = ByteBufferUtil.readShortLength(bb1);
+ int size2 = ByteBufferUtil.readShortLength(bb2);
+
+ for (int i = 0; i < Math.min(size1, size2); i++)
+ {
+ ByteBuffer k1 = ByteBufferUtil.readBytesWithShortLength(bb1);
+ ByteBuffer k2 = ByteBufferUtil.readBytesWithShortLength(bb2);
+ int cmp = keys.compare(k1, k2);
+ if (cmp != 0)
+ return cmp;
+
+ ByteBuffer v1 = ByteBufferUtil.readBytesWithShortLength(bb1);
+ ByteBuffer v2 = ByteBufferUtil.readBytesWithShortLength(bb2);
+ cmp = values.compare(v1, v2);
+ if (cmp != 0)
+ return cmp;
+ }
+
+ return size1 == size2 ? 0 : (size1 < size2 ? -1 : 1);
+ }
+
+ @Override
public TypeSerializer<Map<K, V>> getSerializer()
{
return serializer;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f4b9f161/src/java/org/apache/cassandra/db/marshal/SetType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/SetType.java b/src/java/org/apache/cassandra/db/marshal/SetType.java
index 292b832..5c13c2e 100644
--- a/src/java/org/apache/cassandra/db/marshal/SetType.java
+++ b/src/java/org/apache/cassandra/db/marshal/SetType.java
@@ -71,6 +71,12 @@ public class SetType<T> extends CollectionType<Set<T>>
return EmptyType.instance;
}
+ @Override
+ public int compare(ByteBuffer o1, ByteBuffer o2)
+ {
+ return ListType.compareListOrSet(elements, o1, o2);
+ }
+
public TypeSerializer<Set<T>> getSerializer()
{
return serializer;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f4b9f161/test/unit/org/apache/cassandra/db/marshal/CollectionTypeTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/marshal/CollectionTypeTest.java b/test/unit/org/apache/cassandra/db/marshal/CollectionTypeTest.java
new file mode 100644
index 0000000..fba4742
--- /dev/null
+++ b/test/unit/org/apache/cassandra/db/marshal/CollectionTypeTest.java
@@ -0,0 +1,116 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cassandra.db.marshal;
+
+import java.nio.ByteBuffer;
+import java.util.*;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+import org.apache.cassandra.utils.ByteBufferUtil;
+
+public class CollectionTypeTest
+{
+ @Test
+ public void testListComparison()
+ {
+ ListType<String> lt = ListType.getInstance(UTF8Type.instance);
+
+ ByteBuffer[] lists = new ByteBuffer[] {
+ ByteBufferUtil.EMPTY_BYTE_BUFFER,
+ lt.decompose(ImmutableList.<String>of()),
+ lt.decompose(ImmutableList.of("aa")),
+ lt.decompose(ImmutableList.of("bb")),
+ lt.decompose(ImmutableList.of("bb", "cc")),
+ lt.decompose(ImmutableList.of("bb", "dd"))
+ };
+
+ for (int i = 0; i < lists.length; i++)
+ assertEquals(lt.compare(lists[i], lists[i]), 0);
+
+ for (int i = 0; i < lists.length-1; i++)
+ {
+ for (int j = i+1; j < lists.length; j++)
+ {
+ assertEquals(lt.compare(lists[i], lists[j]), -1);
+ assertEquals(lt.compare(lists[j], lists[i]), 1);
+ }
+ }
+ }
+
+ @Test
+ public void testSetComparison()
+ {
+ SetType<String> st = SetType.getInstance(UTF8Type.instance);
+
+ ByteBuffer[] sets = new ByteBuffer[] {
+ ByteBufferUtil.EMPTY_BYTE_BUFFER,
+ st.decompose(ImmutableSet.<String>of()),
+ st.decompose(ImmutableSet.of("aa")),
+ st.decompose(ImmutableSet.of("bb")),
+ st.decompose(ImmutableSet.of("bb", "cc")),
+ st.decompose(ImmutableSet.of("bb", "dd"))
+ };
+
+ for (int i = 0; i < sets.length; i++)
+ assertEquals(st.compare(sets[i], sets[i]), 0);
+
+ for (int i = 0; i < sets.length-1; i++)
+ {
+ for (int j = i+1; j < sets.length; j++)
+ {
+ assertEquals(st.compare(sets[i], sets[j]), -1);
+ assertEquals(st.compare(sets[j], sets[i]), 1);
+ }
+ }
+ }
+
+ @Test
+ public void testMapComparison()
+ {
+ MapType<String, String> mt = MapType.getInstance(UTF8Type.instance, UTF8Type.instance);
+
+ ByteBuffer[] maps = new ByteBuffer[] {
+ ByteBufferUtil.EMPTY_BYTE_BUFFER,
+ mt.decompose(ImmutableMap.<String, String>of()),
+ mt.decompose(ImmutableMap.of("aa", "val1")),
+ mt.decompose(ImmutableMap.of("aa", "val2")),
+ mt.decompose(ImmutableMap.of("bb", "val1")),
+ mt.decompose(ImmutableMap.of("bb", "val1", "cc", "val3")),
+ mt.decompose(ImmutableMap.of("bb", "val1", "dd", "val3")),
+ mt.decompose(ImmutableMap.of("bb", "val1", "dd", "val4"))
+ };
+
+ for (int i = 0; i < maps.length; i++)
+ assertEquals(mt.compare(maps[i], maps[i]), 0);
+
+ for (int i = 0; i < maps.length-1; i++)
+ {
+ for (int j = i+1; j < maps.length; j++)
+ {
+ assertEquals(mt.compare(maps[i], maps[j]), -1);
+ assertEquals(mt.compare(maps[j], maps[i]), 1);
+ }
+ }
+ }
+}
[2/2] git commit: Merge branch 'cassandra-2.1' of
https://git-wip-us.apache.org/repos/asf/cassandra into cassandra-2.1
Posted by sl...@apache.org.
Merge branch 'cassandra-2.1' of https://git-wip-us.apache.org/repos/asf/cassandra 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/e62238e0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e62238e0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e62238e0
Branch: refs/heads/cassandra-2.1
Commit: e62238e08cc6a916daf85e77cfa79ea0fa0da0dd
Parents: f4b9f16 6e366e3
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Mar 20 10:11:59 2014 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Mar 20 10:11:59 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 6 +-
debian/cassandra.conf | 2 +
doc/cql3/CQL.textile | 23 +-
interface/cassandra.thrift | 9 +-
.../apache/cassandra/cache/AutoSavingCache.java | 3 +-
.../cache/SerializingCacheProvider.java | 4 +-
.../cassandra/cql3/functions/Functions.java | 1 +
.../cassandra/cql3/functions/UuidFcts.java | 42 ++
.../apache/cassandra/db/BatchlogManager.java | 12 +-
.../cassandra/db/ColumnFamilySerializer.java | 7 +-
.../org/apache/cassandra/db/ColumnIndex.java | 6 +-
.../apache/cassandra/db/ColumnSerializer.java | 4 +-
.../apache/cassandra/db/CounterMutation.java | 3 +-
.../org/apache/cassandra/db/DeletionInfo.java | 4 +-
.../org/apache/cassandra/db/DeletionTime.java | 4 +-
src/java/org/apache/cassandra/db/Mutation.java | 4 +-
.../org/apache/cassandra/db/OnDiskAtom.java | 3 +-
.../apache/cassandra/db/PagedRangeCommand.java | 4 +-
.../apache/cassandra/db/RangeSliceCommand.java | 4 +-
.../apache/cassandra/db/RangeSliceReply.java | 4 +-
.../org/apache/cassandra/db/RangeTombstone.java | 5 +-
.../apache/cassandra/db/RangeTombstoneList.java | 4 +-
.../org/apache/cassandra/db/ReadCommand.java | 4 +-
.../org/apache/cassandra/db/ReadResponse.java | 5 +-
src/java/org/apache/cassandra/db/Row.java | 3 +-
.../org/apache/cassandra/db/RowIndexEntry.java | 4 +-
.../org/apache/cassandra/db/RowPosition.java | 4 +-
.../cassandra/db/SliceByNamesReadCommand.java | 3 +-
.../cassandra/db/SliceFromReadCommand.java | 4 +-
.../apache/cassandra/db/SnapshotCommand.java | 4 +-
.../apache/cassandra/db/TruncateResponse.java | 4 +-
.../org/apache/cassandra/db/Truncation.java | 4 +-
.../org/apache/cassandra/db/WriteResponse.java | 4 +-
.../cassandra/db/commitlog/CommitLog.java | 8 +-
.../cassandra/db/commitlog/ReplayPosition.java | 4 +-
.../db/compaction/AbstractCompactedRow.java | 3 +-
.../db/compaction/LazilyCompactedRow.java | 3 +-
.../cassandra/db/composites/AbstractCType.java | 4 +-
.../db/composites/AbstractCellNameType.java | 4 +-
.../apache/cassandra/db/filter/ColumnSlice.java | 4 +-
.../cassandra/db/filter/IDiskAtomFilter.java | 5 +-
.../cassandra/db/filter/NamesQueryFilter.java | 4 +-
.../cassandra/db/filter/SliceQueryFilter.java | 4 +-
.../apache/cassandra/dht/AbstractBounds.java | 3 +-
.../org/apache/cassandra/dht/BootStrapper.java | 4 +-
src/java/org/apache/cassandra/dht/Token.java | 4 +-
.../org/apache/cassandra/gms/EchoMessage.java | 4 +-
.../org/apache/cassandra/gms/EndpointState.java | 3 +-
.../org/apache/cassandra/gms/GossipDigest.java | 3 +-
.../apache/cassandra/gms/GossipDigestAck.java | 4 +-
.../apache/cassandra/gms/GossipDigestAck2.java | 3 +-
.../apache/cassandra/gms/GossipDigestSyn.java | 5 +-
.../apache/cassandra/gms/HeartBeatState.java | 3 +-
.../apache/cassandra/gms/VersionedValue.java | 3 +-
.../apache/cassandra/io/ISSTableSerializer.java | 5 +-
.../org/apache/cassandra/io/ISerializer.java | 6 +-
.../cassandra/io/IVersionedSerializer.java | 6 +-
.../io/compress/CompressionMetadata.java | 3 +-
.../io/compress/CompressionParameters.java | 4 +-
.../cassandra/io/sstable/IndexHelper.java | 3 +-
.../cassandra/io/sstable/IndexSummary.java | 7 +-
.../cassandra/io/sstable/SSTableReader.java | 4 +-
.../cassandra/io/sstable/SSTableWriter.java | 4 +-
.../io/sstable/metadata/CompactionMetadata.java | 4 +-
.../metadata/IMetadataComponentSerializer.java | 5 +-
.../sstable/metadata/IMetadataSerializer.java | 6 +-
.../metadata/LegacyMetadataSerializer.java | 3 +-
.../io/sstable/metadata/MetadataSerializer.java | 6 +-
.../io/sstable/metadata/StatsMetadata.java | 4 +-
.../io/sstable/metadata/ValidationMetadata.java | 4 +-
.../cassandra/io/util/AbstractDataOutput.java | 43 +-
.../io/util/ByteBufferOutputStream.java | 46 --
.../io/util/ChecksummedOutputStream.java | 56 ---
.../cassandra/io/util/DataOutputBuffer.java | 23 +-
.../cassandra/io/util/DataOutputByteBuffer.java | 59 +++
.../cassandra/io/util/DataOutputPlus.java | 32 ++
.../io/util/DataOutputStreamAndChannel.java | 55 +++
.../cassandra/io/util/DataOutputStreamPlus.java | 57 +++
.../io/util/FastByteArrayOutputStream.java | 11 +
.../org/apache/cassandra/io/util/Memory.java | 21 +-
.../cassandra/io/util/SequentialWriter.java | 63 ++-
.../org/apache/cassandra/net/MessageOut.java | 3 +-
.../apache/cassandra/net/MessagingService.java | 3 +-
.../cassandra/net/OutboundTcpConnection.java | 15 +-
.../org/apache/cassandra/repair/NodePair.java | 4 +-
.../apache/cassandra/repair/RepairJobDesc.java | 5 +-
.../repair/messages/AnticompactionRequest.java | 12 +-
.../repair/messages/PrepareMessage.java | 4 +-
.../repair/messages/RepairMessage.java | 4 +-
.../cassandra/repair/messages/SyncComplete.java | 4 +-
.../cassandra/repair/messages/SyncRequest.java | 4 +-
.../repair/messages/ValidationComplete.java | 4 +-
.../repair/messages/ValidationRequest.java | 4 +-
.../apache/cassandra/service/CacheService.java | 10 +-
.../cassandra/service/MigrationManager.java | 4 +-
.../cassandra/service/pager/PagingState.java | 10 +-
.../apache/cassandra/service/paxos/Commit.java | 4 +-
.../service/paxos/PrepareResponse.java | 4 +-
.../cassandra/streaming/ConnectionHandler.java | 16 +-
.../cassandra/streaming/StreamRequest.java | 5 +-
.../cassandra/streaming/StreamSummary.java | 4 +-
.../streaming/compress/CompressionInfo.java | 3 +-
.../streaming/messages/CompleteMessage.java | 4 +-
.../streaming/messages/FileMessageHeader.java | 4 +-
.../streaming/messages/IncomingFileMessage.java | 4 +-
.../streaming/messages/OutgoingFileMessage.java | 13 +-
.../streaming/messages/PrepareMessage.java | 14 +-
.../streaming/messages/ReceivedMessage.java | 10 +-
.../streaming/messages/RetryMessage.java | 10 +-
.../messages/SessionFailedMessage.java | 4 +-
.../streaming/messages/StreamInitMessage.java | 4 +-
.../streaming/messages/StreamMessage.java | 8 +-
.../cassandra/thrift/CassandraServer.java | 2 +-
.../apache/cassandra/thrift/TServerFactory.java | 1 -
.../apache/cassandra/thrift/ThriftServer.java | 4 +-
.../apache/cassandra/tools/SSTableExport.java | 3 +-
.../cassandra/utils/AtomicLongArrayUpdater.java | 2 +-
.../cassandra/utils/BloomFilterSerializer.java | 6 +-
.../cassandra/utils/BooleanSerializer.java | 3 +-
.../apache/cassandra/utils/ByteBufferUtil.java | 77 +---
.../cassandra/utils/EstimatedHistogram.java | 5 +-
.../org/apache/cassandra/utils/FBUtilities.java | 2 +-
.../cassandra/utils/FastByteComparisons.java | 240 ----------
.../cassandra/utils/FastByteOperations.java | 461 +++++++++++++++++++
.../apache/cassandra/utils/FilterFactory.java | 4 +-
.../apache/cassandra/utils/IntervalTree.java | 6 +-
.../org/apache/cassandra/utils/MerkleTree.java | 10 +-
.../apache/cassandra/utils/PureJavaCrc32.java | 50 +-
.../cassandra/utils/StreamingHistogram.java | 4 +-
.../apache/cassandra/utils/UUIDSerializer.java | 4 +-
.../cassandra/AbstractSerializationsTester.java | 13 +-
test/unit/org/apache/cassandra/Util.java | 6 +-
.../apache/cassandra/db/SerializationsTest.java | 15 +-
.../cassandra/gms/SerializationsTest.java | 5 +-
.../cassandra/io/sstable/IndexSummaryTest.java | 11 +-
.../metadata/MetadataSerializerTest.java | 3 +-
.../cassandra/io/util/DataOutputTest.java | 251 ++++++++++
.../apache/cassandra/repair/ValidatorTest.java | 4 +-
.../cassandra/service/SerializationsTest.java | 3 +-
.../apache/cassandra/utils/BloomFilterTest.java | 3 +-
.../cassandra/utils/ByteBufferUtilTest.java | 8 +-
.../cassandra/utils/FastByteOperationsTest.java | 162 +++++++
.../cassandra/utils/IntervalTreeTest.java | 14 +-
.../apache/cassandra/utils/MerkleTreeTest.java | 3 +-
.../cassandra/utils/SerializationsTest.java | 5 +-
.../cassandra/utils/StreamingHistogramTest.java | 6 +-
146 files changed, 1695 insertions(+), 725 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e62238e0/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 856ec23,037b1b6..69c8cc2
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -23,8 -23,9 +23,10 @@@
* Add logging levels (minimal, normal or verbose) to stress tool (CASSANDRA-6849)
* Fix race condition in Batch CLE (CASSANDRA-6860)
* Improve cleanup/scrub/upgradesstables failure handling (CASSANDRA-6774)
+ * ByteBuffer write() methods for serializing sstables (CASSANDRA-6781)
+ * Proper compare function for CollectionType (CASSANDRA-6783)
Merged from 2.0:
+ * Add uuid() function (CASSANDRA-6473)
* Omit tombstones from schema digests (CASSANDRA-6862)
* Include correct consistencyLevel in LWT timeout (CASSANDRA-6884)
* Lower chances for losing new SSTables during nodetool refresh and