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 2014/08/06 19:07:40 UTC
[1/2] git commit: Fixes issue with incorrect page size hints causing
cursor pagination to fail
Repository: incubator-usergrid
Updated Branches:
refs/heads/master 9fc1ab408 -> 4a625c0ef
Fixes issue with incorrect page size hints causing cursor pagination to fail
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/35c71274
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/35c71274
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/35c71274
Branch: refs/heads/master
Commit: 35c7127403a50b659648113aa171712093670683
Parents: d61fba9
Author: Todd Nine <to...@apache.org>
Authored: Wed Aug 6 10:45:06 2014 -0600
Committer: Todd Nine <to...@apache.org>
Committed: Wed Aug 6 10:45:06 2014 -0600
----------------------------------------------------------------------
.../usergrid/persistence/cassandra/QueryProcessor.java | 2 +-
.../org/apache/usergrid/persistence/query/ir/AllNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/BooleanNode.java | 10 ++++++++++
.../persistence/query/ir/EmailIdentifierNode.java | 6 ++++++
.../usergrid/persistence/query/ir/NameIdentifierNode.java | 6 ++++++
.../org/apache/usergrid/persistence/query/ir/NotNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/OrderByNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/QueryNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/SliceNode.java | 6 ++++++
.../usergrid/persistence/query/ir/UuidIdentifierNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/WithinNode.java | 6 ++++++
11 files changed, 65 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/QueryProcessor.java b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/QueryProcessor.java
index 9ccf240..c2b65b7 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/QueryProcessor.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/cassandra/QueryProcessor.java
@@ -633,7 +633,7 @@ public class QueryProcessor {
//if it's a root node, and there's only 1 slice to check in the entire tree, then just select what we need
//so we short circuit on range scans faster. otherwise it's more efficient to make less trips with candidates we discard from cassandra
- if ( node == rootNode && sliceCount == 1 ) {
+ if ( node == rootNode && !node.ignoreHintSize()) {
return size;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/AllNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/AllNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/AllNode.java
index d870e49..11c39c9 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/AllNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/AllNode.java
@@ -58,6 +58,12 @@ public class AllNode extends QueryNode {
@Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
+ @Override
public String toString() {
return "AllNode";
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/BooleanNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/BooleanNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/BooleanNode.java
index ac3e42d..ee47946 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/BooleanNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/BooleanNode.java
@@ -49,7 +49,17 @@ public abstract class BooleanNode extends QueryNode {
@Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
+ @Override
public String toString() {
return "BooleanNode [left=" + left + ", right=" + right + "]";
}
+
+
+
+
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/EmailIdentifierNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/EmailIdentifierNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/EmailIdentifierNode.java
index 92dffee..1dc6d13 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/EmailIdentifierNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/EmailIdentifierNode.java
@@ -47,6 +47,12 @@ public class EmailIdentifierNode extends QueryNode {
}
+ @Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
public Identifier getIdentifier() {
return identifier;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NameIdentifierNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NameIdentifierNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NameIdentifierNode.java
index 2bd1b05..75ba111 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NameIdentifierNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NameIdentifierNode.java
@@ -44,6 +44,12 @@ public class NameIdentifierNode extends QueryNode {
}
+ @Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
public String getName() {
return name;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NotNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NotNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NotNode.java
index 06b8208..306eff3 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NotNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/NotNode.java
@@ -63,6 +63,12 @@ public class NotNode extends QueryNode {
@Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
+ @Override
public String toString() {
return "NotNode [child=" + subtractNode + "]";
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/OrderByNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/OrderByNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/OrderByNode.java
index ae3eb9e..df80aa7 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/OrderByNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/OrderByNode.java
@@ -89,6 +89,12 @@ public class OrderByNode extends QueryNode {
}
+ @Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/QueryNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/QueryNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/QueryNode.java
index 5d3f0aa..954c13f 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/QueryNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/QueryNode.java
@@ -32,4 +32,10 @@ public abstract class QueryNode {
* Get the count of the total number of slices in our tree from this node and it's children
*/
public abstract int getCount();
+
+ /**
+ * True if this node should not be used in it's context in the AST, and should ignore it's hint size and always select the max
+ * @return
+ */
+ public abstract boolean ignoreHintSize();
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/SliceNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/SliceNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/SliceNode.java
index 046b517..fc6f53b 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/SliceNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/SliceNode.java
@@ -65,6 +65,12 @@ public class SliceNode extends QueryNode {
}
+ @Override
+ public boolean ignoreHintSize() {
+ return pairs.size() > 1;
+ }
+
+
/**
* Set the start value. If the range pair doesn't exist, it's created
*
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/UuidIdentifierNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/UuidIdentifierNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/UuidIdentifierNode.java
index 42e2c08..79a6217 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/UuidIdentifierNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/UuidIdentifierNode.java
@@ -48,6 +48,12 @@ public class UuidIdentifierNode extends QueryNode {
}
+ @Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
public UUID getUuid() {
return uuid;
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/35c71274/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/WithinNode.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/WithinNode.java b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/WithinNode.java
index 6551aee..35afda6 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/WithinNode.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/query/ir/WithinNode.java
@@ -96,6 +96,12 @@ public class WithinNode extends QueryNode {
@Override
+ public boolean ignoreHintSize() {
+ return false;
+ }
+
+
+ @Override
public String toString() {
return "WithinNode [propertyName=" + propertyName + ", distance=" + distance + ", lattitude=" + lattitude
+ ", longitude=" + longitude + "]";
[2/2] git commit: Merge branch 'pr/39'
Posted by sn...@apache.org.
Merge branch 'pr/39'
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/4a625c0e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/4a625c0e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/4a625c0e
Branch: refs/heads/master
Commit: 4a625c0efd9c39b7c9a571dc0d9b210b969ad926
Parents: 9fc1ab4 35c7127
Author: Dave Johnson <sn...@apache.org>
Authored: Wed Aug 6 13:07:17 2014 -0400
Committer: Dave Johnson <sn...@apache.org>
Committed: Wed Aug 6 13:07:17 2014 -0400
----------------------------------------------------------------------
.../usergrid/persistence/cassandra/QueryProcessor.java | 2 +-
.../org/apache/usergrid/persistence/query/ir/AllNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/BooleanNode.java | 10 ++++++++++
.../persistence/query/ir/EmailIdentifierNode.java | 6 ++++++
.../usergrid/persistence/query/ir/NameIdentifierNode.java | 6 ++++++
.../org/apache/usergrid/persistence/query/ir/NotNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/OrderByNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/QueryNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/SliceNode.java | 6 ++++++
.../usergrid/persistence/query/ir/UuidIdentifierNode.java | 6 ++++++
.../apache/usergrid/persistence/query/ir/WithinNode.java | 6 ++++++
11 files changed, 65 insertions(+), 1 deletion(-)
----------------------------------------------------------------------