You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/07/30 19:19:42 UTC

[04/25] incubator-usergrid git commit: Pushed comparator down into each column implementation.

Pushed comparator down into each column implementation.


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/bb2837ca
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/bb2837ca
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/bb2837ca

Branch: refs/heads/master
Commit: bb2837caaa52d5e2b4977aa5b76533ed5240c3ca
Parents: 1fe6906
Author: Todd Nine <tn...@apigee.com>
Authored: Wed Jun 17 17:36:16 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Wed Jun 17 17:36:16 2015 -0600

----------------------------------------------------------------------
 .../cassandra/index/ConnectedIndexScanner.java  |  6 ++++
 .../cassandra/index/IndexBucketScanner.java     |  6 ++++
 .../cassandra/index/IndexScanner.java           | 15 +++++++--
 .../cassandra/index/NoOpIndexScanner.java       |  6 ++++
 .../query/ir/result/AbstractScanColumn.java     | 34 +++++++++-----------
 .../ir/result/ConnectionIndexSliceParser.java   | 19 ++++++++---
 .../ir/result/SearchCollectionVisitor.java      |  2 +-
 .../ir/result/SecondaryIndexSliceParser.java    | 34 +++++++++++++-------
 .../query/ir/result/SliceIterator.java          |  5 ++-
 .../query/ir/result/SliceParser.java            |  2 +-
 .../query/ir/result/StaticIdIterator.java       |  3 +-
 .../persistence/query/ir/result/UUIDColumn.java | 10 ++++--
 .../query/ir/result/UUIDIndexSliceParser.java   | 14 +++-----
 .../query/ir/result/UnionIterator.java          |  4 +--
 .../query/ir/result/AbstractScanColumnTest.java |  8 ++++-
 .../query/ir/result/InOrderIterator.java        |  2 +-
 .../query/ir/result/IteratorHelper.java         |  2 +-
 17 files changed, 115 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/ConnectedIndexScanner.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/ConnectedIndexScanner.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/ConnectedIndexScanner.java
index 27689ce..87726cb 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/ConnectedIndexScanner.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/ConnectedIndexScanner.java
@@ -259,4 +259,10 @@ public class ConnectedIndexScanner implements IndexScanner {
     public int getPageSize() {
         return pageSize;
     }
+
+
+    @Override
+    public boolean isReversed() {
+        return this.reversed;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexBucketScanner.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexBucketScanner.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexBucketScanner.java
index 668ab02..e568575 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexBucketScanner.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexBucketScanner.java
@@ -229,4 +229,10 @@ public class IndexBucketScanner implements IndexScanner {
     public int getPageSize() {
         return pageSize;
     }
+
+
+    @Override
+    public boolean isReversed() {
+        return this.reversed;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexScanner.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexScanner.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexScanner.java
index 1307361..e5e9adb 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexScanner.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/IndexScanner.java
@@ -33,8 +33,19 @@ public interface IndexScanner
         extends Iterable<List<HColumn<ByteBuffer, ByteBuffer>>>, Iterator<List<HColumn<ByteBuffer, ByteBuffer>>> {
 
     /** Reset the scanner back to the start */
-    public void reset();
+    void reset();
+
+    /**
+     * Return the page size of the index
+     * @return
+     */
+    int getPageSize();
+
+    /**
+     * Return true if this iterator iterates in reverse
+     * @return
+     */
+    boolean isReversed();
 
-    public int getPageSize();
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/NoOpIndexScanner.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/NoOpIndexScanner.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/NoOpIndexScanner.java
index 01002d6..d6fb113 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/NoOpIndexScanner.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/index/NoOpIndexScanner.java
@@ -91,4 +91,10 @@ public class NoOpIndexScanner implements IndexScanner {
     public int getPageSize() {
         return 0;
     }
+
+
+    @Override
+    public boolean isReversed() {
+        return false;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumn.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumn.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumn.java
index e4515fb..383ead7 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumn.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumn.java
@@ -19,9 +19,8 @@ package org.apache.usergrid.persistence.query.ir.result;
 
 import java.nio.ByteBuffer;
 import java.util.UUID;
-import org.apache.cassandra.utils.ByteBufferUtil;
 
-import org.apache.usergrid.persistence.cassandra.index.DynamicCompositeComparator;
+import org.apache.cassandra.utils.ByteBufferUtil;
 
 
 /**
@@ -33,14 +32,12 @@ public abstract class AbstractScanColumn implements ScanColumn {
 
     private final UUID uuid;
     private final ByteBuffer buffer;
-    private final DynamicCompositeComparator cfComparator;
     private ScanColumn child;
 
 
-    protected AbstractScanColumn( final UUID uuid, final ByteBuffer columnNameBuffer, final DynamicCompositeComparator cfComparator ) {
+    protected AbstractScanColumn( final UUID uuid, final ByteBuffer columnNameBuffer ) {
         this.uuid = uuid;
         this.buffer = columnNameBuffer;
-        this.cfComparator = cfComparator;
     }
 
 
@@ -52,7 +49,7 @@ public abstract class AbstractScanColumn implements ScanColumn {
 
     @Override
     public ByteBuffer getCursorValue() {
-        return buffer == null ? null :buffer.duplicate();
+        return buffer == null ? null : buffer.duplicate();
     }
 
 
@@ -67,8 +64,7 @@ public abstract class AbstractScanColumn implements ScanColumn {
 
         AbstractScanColumn that = ( AbstractScanColumn ) o;
 
-        return uuid.equals(that.uuid);
-
+        return uuid.equals( that.uuid );
     }
 
 
@@ -89,7 +85,7 @@ public abstract class AbstractScanColumn implements ScanColumn {
 
     @Override
     public void setChild( final ScanColumn childColumn ) {
-      this.child = childColumn;
+        this.child = childColumn;
     }
 
 
@@ -99,23 +95,23 @@ public abstract class AbstractScanColumn implements ScanColumn {
     }
 
 
-    @Override
-    public int compareTo( final ScanColumn otherScanColumn ) {
+    /**
+     * Comparator for comparing children.  A null safe call
+     * @param otherScanColumn
+     * @return
+     */
+    protected int compareChildren( final ScanColumn otherScanColumn ) {
 
-        if(otherScanColumn == null){
+        if ( otherScanColumn == null ) {
             return 1;
         }
 
+        final ScanColumn otherChild = otherScanColumn.getChild();
 
-        final int compare = cfComparator.compare( buffer, otherScanColumn.getCursorValue() );
-
-        //equal, recurse.  otherScanColumn is implicitly not null from above check
-        if(compare == 0 && child != null){
-            return child.compareTo( otherScanColumn.getChild() );
+        if ( child != null && otherChild != null ) {
+            return child.compareTo( otherChild );
         }
 
-
         return 0;
-
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/ConnectionIndexSliceParser.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/ConnectionIndexSliceParser.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/ConnectionIndexSliceParser.java
index ae3b0b5..2bb83b4 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/ConnectionIndexSliceParser.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/ConnectionIndexSliceParser.java
@@ -46,7 +46,7 @@ public class ConnectionIndexSliceParser implements SliceParser {
      * @see org.apache.usergrid.persistence.query.ir.result.SliceParser#parse(java.nio.ByteBuffer)
      */
     @Override
-    public ScanColumn parse( ByteBuffer buff, final DynamicCompositeComparator cfComparator ) {
+    public ScanColumn parse( ByteBuffer buff, final boolean isReversed ) {
         DynamicComposite composite = DynamicComposite.fromByteBuffer( buff.duplicate() );
 
         String connectedType = ( String ) composite.get( 1 );
@@ -63,20 +63,21 @@ public class ConnectionIndexSliceParser implements SliceParser {
             return null;
         }
 
-        return new ConnectionColumn( ( UUID ) composite.get( 0 ), connectedType, buff , cfComparator);
+        return new ConnectionColumn( ( UUID ) composite.get( 0 ), connectedType, buff );
         //    return composite;
         //    return null;
     }
 
 
 
+
     public static class ConnectionColumn extends AbstractScanColumn {
 
         private final String connectedType;
 
 
-        public ConnectionColumn( UUID uuid, String connectedType, ByteBuffer column, final DynamicCompositeComparator cfComparator ) {
-            super( uuid, column, cfComparator );
+        public ConnectionColumn( UUID uuid, String connectedType, ByteBuffer column) {
+            super( uuid, column );
             this.connectedType = connectedType;
         }
 
@@ -85,5 +86,15 @@ public class ConnectionIndexSliceParser implements SliceParser {
         public String getTargetType() {
             return connectedType;
         }
+
+
+        @Override
+        public int compareTo( final ScanColumn o ) {
+            if(o == null){
+                return 1;
+            }
+
+            return connectedType.compareTo( ((ConnectionColumn)o).connectedType );
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SearchCollectionVisitor.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SearchCollectionVisitor.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SearchCollectionVisitor.java
index 20d303c..78abbca 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SearchCollectionVisitor.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SearchCollectionVisitor.java
@@ -95,7 +95,7 @@ public class SearchCollectionVisitor extends SearchVisitor {
         UUID startId = null;
 
         if ( slice.hasCursor() ) {
-            startId = UUID_PARSER.parse( slice.getCursor(), null ).getUUID();
+            startId = UUID_PARSER.parse( slice.getCursor(), false ).getUUID();
         }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SecondaryIndexSliceParser.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SecondaryIndexSliceParser.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SecondaryIndexSliceParser.java
index c13ac0d..e27d99c 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SecondaryIndexSliceParser.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SecondaryIndexSliceParser.java
@@ -18,10 +18,9 @@ package org.apache.usergrid.persistence.query.ir.result;
 
 
 import java.nio.ByteBuffer;
+import java.util.Comparator;
 import java.util.UUID;
 
-import org.apache.usergrid.persistence.cassandra.index.DynamicCompositeComparator;
-
 import me.prettyprint.hector.api.beans.DynamicComposite;
 
 
@@ -37,23 +36,34 @@ public class SecondaryIndexSliceParser implements SliceParser {
      * @see org.apache.usergrid.persistence.query.ir.result.SliceParser#parse(java.nio.ByteBuffer)
      */
     @Override
-    public ScanColumn parse( ByteBuffer buff, final DynamicCompositeComparator cfComparator ) {
+    public ScanColumn parse( ByteBuffer buff, final boolean isReversed) {
         DynamicComposite composite = DynamicComposite.fromByteBuffer( buff.duplicate() );
 
-        return new SecondaryIndexColumn( ( UUID ) composite.get( 2 ), composite.get( 1 ), buff, cfComparator );
-    }
+        throw new UnsupportedOperationException( "Implement me with static comparators" );
 
+//        return new SecondaryIndexColumn( ( UUID ) composite.get( 2 ), composite.get( 1 ), buff, null );
+    }
 
 
 
     public static class SecondaryIndexColumn extends AbstractScanColumn {
 
         private final Object value;
-
-
-        public SecondaryIndexColumn( final UUID uuid, final Object value, final ByteBuffer columnNameBuffer, final DynamicCompositeComparator cfComparator  ) {
-            super( uuid, columnNameBuffer, cfComparator );
+        private final Comparator<Object> valueComparator;
+
+
+        /**
+         * Create the secondary index column
+         * @param uuid
+         * @param value
+         * @param columnNameBuffer
+         * @param valueComparator The comparator for the values
+         */
+        public SecondaryIndexColumn( final UUID uuid, final Object value, final ByteBuffer columnNameBuffer,
+                                  final Comparator<Object> valueComparator ) {
+            super( uuid, columnNameBuffer );
             this.value = value;
+            this.valueComparator = valueComparator;
         }
 
 
@@ -63,7 +73,9 @@ public class SecondaryIndexSliceParser implements SliceParser {
         }
 
 
-
-
+        @Override
+        public int compareTo( final ScanColumn o ) {
+            throw new UnsupportedOperationException( "Impelment me" );
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceIterator.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceIterator.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceIterator.java
index 2a4c3cf..3f052da 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceIterator.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceIterator.java
@@ -48,6 +48,8 @@ public class SliceIterator implements ResultIterator {
     private final SliceParser parser;
     private final IndexScanner scanner;
     private final int pageSize;
+    private final boolean isReversed;
+
 
     /**
      * Pointer to the uuid set until it's returned
@@ -82,6 +84,7 @@ public class SliceIterator implements ResultIterator {
         this.pageSize = scanner.getPageSize();
         this.cols = new LinkedHashMap<UUID, ScanColumn>( this.pageSize );
         this.parsedCols = new LinkedHashSet<ScanColumn>( this.pageSize );
+        this.isReversed = scanner.isReversed();
     }
 
 
@@ -126,7 +129,7 @@ public class SliceIterator implements ResultIterator {
 
             ByteBuffer colName = results.next().getName().duplicate();
 
-            ScanColumn parsed = parser.parse( colName );
+            ScanColumn parsed = parser.parse( colName, isReversed );
 
             //skip this value, the parser has discarded it
             if ( parsed == null ) {

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceParser.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceParser.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceParser.java
index 8e5bc53..d0f9c7d 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceParser.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/SliceParser.java
@@ -30,5 +30,5 @@ import org.apache.usergrid.persistence.cassandra.index.DynamicCompositeComparato
 public interface SliceParser {
 
     /** Parse the slice and return it's parse type.  If null is returned, the column should be considered discarded */
-    public ScanColumn parse(final  ByteBuffer columnNameBytes, final DynamicCompositeComparator cfComparator  );
+    ScanColumn parse( final ByteBuffer columnNameBytes, final boolean isReversed );
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/StaticIdIterator.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/StaticIdIterator.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/StaticIdIterator.java
index 055839e..1ed6949 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/StaticIdIterator.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/StaticIdIterator.java
@@ -17,7 +17,6 @@
 package org.apache.usergrid.persistence.query.ir.result;
 
 
-import java.nio.ByteBuffer;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Set;
@@ -38,7 +37,7 @@ public class StaticIdIterator implements ResultIterator {
      *
      */
     public StaticIdIterator( UUID id ) {
-        final ScanColumn col = new UUIDColumn( id );
+        final ScanColumn col = new UUIDColumn( id, 1 );
 
         ids = Collections.singleton( col );
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDColumn.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDColumn.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDColumn.java
index ff05fe5..a5e09c1 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDColumn.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDColumn.java
@@ -13,10 +13,14 @@ import org.apache.usergrid.utils.UUIDUtils;
 class UUIDColumn implements  ScanColumn{
 
     private final UUID uuid;
+    private final int compareReversed;
     private ScanColumn child;
 
 
-    UUIDColumn( final UUID uuid ) {this.uuid = uuid;}
+    UUIDColumn( final UUID uuid, final int compareReversed ) {
+        this.uuid = uuid;
+        this.compareReversed = compareReversed;
+    }
 
 
     @Override
@@ -45,6 +49,8 @@ class UUIDColumn implements  ScanColumn{
 
     @Override
     public int compareTo( final ScanColumn other ) {
-        return UUIDUtils.compare( uuid, other.getUUID() );
+
+        return  UUIDUtils.compare( uuid, other.getUUID() ) * compareReversed;
+
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDIndexSliceParser.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDIndexSliceParser.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDIndexSliceParser.java
index d966cc8..91644ce 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDIndexSliceParser.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UUIDIndexSliceParser.java
@@ -18,9 +18,6 @@ package org.apache.usergrid.persistence.query.ir.result;
 
 
 import java.nio.ByteBuffer;
-import java.util.UUID;
-
-import org.apache.usergrid.persistence.cassandra.index.DynamicCompositeComparator;
 
 import static org.apache.usergrid.persistence.cassandra.Serializers.*;
 
@@ -31,12 +28,11 @@ import static org.apache.usergrid.persistence.cassandra.Serializers.*;
  */
 public class UUIDIndexSliceParser implements SliceParser {
 
-    /* (non-Javadoc)
-     * @see org.apache.usergrid.persistence.query.ir.result.SliceParser#parse(java.nio.ByteBuffer)
-     */
+
+
     @Override
-    public ScanColumn parse( ByteBuffer buff, final DynamicCompositeComparator cfComparator ) {
-        return new UUIDColumn( ue.fromByteBuffer( buff.duplicate() ) );
+    public ScanColumn parse( final ByteBuffer columnNameBytes, final boolean isReversed ) {
+        final int compare = isReversed? -1: 1;
+        return new UUIDColumn( ue.fromByteBuffer( columnNameBytes.duplicate() ), compare );
     }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UnionIterator.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UnionIterator.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UnionIterator.java
index 916091c..635ca97 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UnionIterator.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/result/UnionIterator.java
@@ -142,7 +142,7 @@ public class UnionIterator extends MultiIterator {
             this.maxSize = maxSize;
 
             if ( minUuid != null ) {
-                min = new UUIDColumn( minUuid) ;
+                min = new UUIDColumn( minUuid, 1 ) ;
             }
         }
 
@@ -215,7 +215,7 @@ public class UnionIterator extends MultiIterator {
             }
 
             final UUID oldMin = this.list.get( size - 1 ).getUUID();
-            min = new UUIDColumn( oldMin );
+            min = new UUIDColumn( oldMin, 1 );
         }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumnTest.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumnTest.java b/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumnTest.java
index 45e7f50..de46836 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumnTest.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/AbstractScanColumnTest.java
@@ -94,7 +94,13 @@ public class AbstractScanColumnTest {
     private class TestScanColumn extends AbstractScanColumn {
 
         protected TestScanColumn( final UUID uuid, final ByteBuffer buffer ) {
-            super( uuid, buffer, cfComparator );
+            super( uuid, buffer );
+        }
+
+
+        @Override
+        public int compareTo( final ScanColumn o ) {
+            return 0;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/InOrderIterator.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/InOrderIterator.java b/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/InOrderIterator.java
index e937162..b4cd906 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/InOrderIterator.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/InOrderIterator.java
@@ -51,7 +51,7 @@ public class InOrderIterator implements ResultIterator {
     /** Add a uuid to the list */
     public void add( UUID... ids ) {
         for ( UUID current : ids ) {
-            uuids.add( new UUIDIndexSliceParser.UUIDColumn( current, ByteBuffer.allocate( 0 ) ) );
+            uuids.add( new UUIDColumn( current, 1 ) );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bb2837ca/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/IteratorHelper.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/IteratorHelper.java b/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/IteratorHelper.java
index 049296e..13ad542 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/IteratorHelper.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/query/ir/result/IteratorHelper.java
@@ -29,6 +29,6 @@ import java.util.UUID;
 public class IteratorHelper {
 
     public static ScanColumn uuidColumn( UUID value ) {
-        return new UUIDIndexSliceParser.UUIDColumn( value, ByteBuffer.allocate( 0 ) );
+        return new UUIDColumn( value, 1 );
     }
 }