Merge branch 'cassandra-2.1' into trunk
Conflicts:
src/java/org/apache/cassandra/utils/btree/Path.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64e46285
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64e46285
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64e46285
Branch: refs/heads/trunk
Commit: 64e46285f6bf3a058fefad73d2a605c6dfe68031
Parents: 7d7610f acf1b18
Author: Sylvain Lebresne <[email protected]>
Authored: Tue Apr 29 14:50:51 2014 +0200
Committer: Sylvain Lebresne <[email protected]>
Committed: Tue Apr 29 14:50:51 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 3 +-
.../cassandra/db/composites/AbstractCType.java | 71 +++++++++-----------
.../db/composites/AbstractCellNameType.java | 3 +-
.../AbstractCompoundCellNameType.java | 1 +
.../composites/AbstractSimpleCellNameType.java | 26 +++++++
.../cassandra/db/composites/Composite.java | 21 +++---
.../cassandra/db/composites/Composites.java | 9 +++
.../cassandra/db/composites/CompoundCType.java | 1 +
.../composites/CompoundSparseCellNameType.java | 28 ++++++++
.../cassandra/db/composites/SimpleCType.java | 27 ++++++++
.../apache/cassandra/db/filter/ColumnSlice.java | 7 +-
.../db/marshal/AbstractCompositeType.java | 6 +-
.../cassandra/db/marshal/AbstractType.java | 9 +++
.../apache/cassandra/db/marshal/AsciiType.java | 8 ++-
.../cassandra/db/marshal/BooleanType.java | 6 +-
.../apache/cassandra/db/marshal/BytesType.java | 13 ++--
.../cassandra/db/marshal/CounterColumnType.java | 8 ++-
.../apache/cassandra/db/marshal/DateType.java | 15 ++---
.../cassandra/db/marshal/DecimalType.java | 14 ++--
.../apache/cassandra/db/marshal/DoubleType.java | 10 +--
.../db/marshal/DynamicCompositeType.java | 5 ++
.../apache/cassandra/db/marshal/FloatType.java | 10 +--
.../cassandra/db/marshal/InetAddressType.java | 5 ++
.../apache/cassandra/db/marshal/Int32Type.java | 12 +---
.../cassandra/db/marshal/LexicalUUIDType.java | 10 +--
.../apache/cassandra/db/marshal/ListType.java | 6 +-
.../apache/cassandra/db/marshal/LongType.java | 11 +--
.../apache/cassandra/db/marshal/MapType.java | 11 +--
.../apache/cassandra/db/marshal/SetType.java | 5 ++
.../cassandra/db/marshal/TimeUUIDType.java | 11 +--
.../apache/cassandra/db/marshal/UTF8Type.java | 8 ++-
.../apache/cassandra/db/marshal/UUIDType.java | 1 +
.../cassandra/hadoop/cql3/CqlRecordReader.java | 4 +-
.../apache/cassandra/utils/ByteBufferUtil.java | 2 -
.../org/apache/cassandra/utils/btree/BTree.java | 25 +------
.../apache/cassandra/utils/btree/Builder.java | 2 +-
.../cassandra/utils/btree/NodeBuilder.java | 54 ++++++++++++---
.../org/apache/cassandra/utils/btree/Path.java | 31 ++++++++-
38 files changed, 310 insertions(+), 189 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e46285/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e46285/src/java/org/apache/cassandra/db/marshal/AbstractType.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e46285/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e46285/src/java/org/apache/cassandra/db/marshal/UUIDType.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e46285/src/java/org/apache/cassandra/utils/ByteBufferUtil.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/64e46285/src/java/org/apache/cassandra/utils/btree/Path.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/utils/btree/Path.java
index 49e2d4b,51207ba..db6d64e
--- a/src/java/org/apache/cassandra/utils/btree/Path.java
+++ b/src/java/org/apache/cassandra/utils/btree/Path.java
@@@ -68,9 -69,22 +70,23 @@@ public class Path<V
path = new Object[depth][];
indexes = new byte[depth];
}
+ path[0] = btree;
}
+ void moveEnd(Object[] node, boolean forwards)
+ {
+ push(node, getKeyEnd(node));
+ if (!forwards)
+ predecessor();
+ }
+
+ void moveStart(Object[] node, boolean forwards)
+ {
+ push(node, -1);
+ if (forwards)
+ successor();
+ }
+
/**
* Find the provided key in the tree rooted at node, and store the root
to it in the path
*
@@@ -87,10 -102,18 +103,22 @@@
// on which direction you're moving in. Prerequisite for making Path
public and using to implement general
// search
- depth = -1;
+ Object[] node = path[depth];
+ int lb = indexes[depth];
+ assert lb == 0 || forwards;
+ pop();
++
+ if (target instanceof BTree.Special)
+ {
+ if (target == POSITIVE_INFINITY)
+ moveEnd(node, forwards);
+ else if (target == NEGATIVE_INFINITY)
+ moveStart(node, forwards);
+ else
+ throw new AssertionError();
- return;
++ return false;
+ }
+
while (true)
{
int keyEnd = getKeyEnd(node);
@@@ -110,8 -132,9 +138,9 @@@
case LOWER:
predecessor();
}
- return;
+ return true;
}
+ i = -i - 1;
// traverse into the appropriate child
if (!isLeaf(node))