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))

Reply via email to