You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2012/08/30 14:17:51 UTC
svn commit: r1378903 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/query/index/TraversingCursor.java
test/resources/org/apache/jackrabbit/oak/query/sql2.txt
Author: thomasm
Date: Thu Aug 30 12:17:50 2012
New Revision: 1378903
URL: http://svn.apache.org/viewvc?rev=1378903&view=rev
Log:
OAK-237 Run Jackrabbit query tests - exclude hidden nodes (*/:data) from results
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/TraversingCursor.java
jackrabbit/oak/trunk/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2.txt
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/TraversingCursor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/TraversingCursor.java?rev=1378903&r1=1378902&r2=1378903&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/TraversingCursor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/TraversingCursor.java Thu Aug 30 12:17:50 2012
@@ -20,9 +20,11 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry;
import org.apache.jackrabbit.oak.spi.Cursor;
import org.apache.jackrabbit.oak.spi.Filter;
+import org.apache.jackrabbit.oak.spi.Filter.PathRestriction;
import org.apache.jackrabbit.oak.spi.IndexRow;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import com.google.common.collect.Iterators;
import com.google.common.collect.Queues;
@@ -33,7 +35,7 @@ public class TraversingCursor implements
private final Filter filter;
- private final Deque<Iterator<? extends ChildNodeEntry>> nodes =
+ private final Deque<Iterator<? extends ChildNodeEntry>> nodeIterators =
Queues.newArrayDeque();
private String parentPath;
@@ -62,25 +64,27 @@ public class TraversingCursor implements
}
}
}
-
- switch (filter.getPathRestriction()) {
+ PathRestriction restriciton = filter.getPathRestriction();
+ switch (restriciton) {
case EXACT:
case ALL_CHILDREN:
- nodes.add(Iterators.singletonIterator(
+ nodeIterators.add(Iterators.singletonIterator(
new MemoryChildNodeEntry(currentPath, node)));
parentPath = "";
break;
case PARENT:
if (parent != null) {
- nodes.add(Iterators.singletonIterator(
+ nodeIterators.add(Iterators.singletonIterator(
new MemoryChildNodeEntry(parentPath, parent)));
parentPath = "";
}
break;
case DIRECT_CHILDREN:
- nodes.add(node.getChildNodeEntries().iterator());
+ nodeIterators.add(node.getChildNodeEntries().iterator());
parentPath = currentPath;
break;
+ default:
+ throw new IllegalArgumentException("Unknown restriction: " + restriciton);
}
}
@@ -91,22 +95,25 @@ public class TraversingCursor implements
@Override
public boolean next() {
- while (!nodes.isEmpty()) {
- Iterator<? extends ChildNodeEntry> iterator = nodes.getLast();
+ while (!nodeIterators.isEmpty()) {
+ Iterator<? extends ChildNodeEntry> iterator = nodeIterators.getLast();
if (iterator.hasNext()) {
ChildNodeEntry entry = iterator.next();
NodeState node = entry.getNodeState();
String name = entry.getName();
+ if (NodeStateUtils.isHidden(name)) {
+ continue;
+ }
currentPath = PathUtils.concat(parentPath, name);
if (filter.getPathRestriction() == ALL_CHILDREN) {
- nodes.addLast(node.getChildNodeEntries().iterator());
+ nodeIterators.addLast(node.getChildNodeEntries().iterator());
parentPath = currentPath;
}
return true;
} else {
- nodes.removeLast();
+ nodeIterators.removeLast();
parentPath = PathUtils.getParentPath(parentPath);
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2.txt
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2.txt?rev=1378903&r1=1378902&r2=1378903&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2.txt (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/resources/org/apache/jackrabbit/oak/query/sql2.txt Thu Aug 30 12:17:50 2012
@@ -116,7 +116,6 @@ select * from [nt:base] as x where isdes
/jcr:system/rep:privileges
/oak-index
/oak-index/indexes
-/oak-index/indexes/:data
/test
/test/jcr:resource
/test/resource
@@ -198,7 +197,6 @@ select * from [nt:base]
/jcr:system/rep:privileges
/oak-index
/oak-index/indexes
-/oak-index/indexes/:data
/test
/test/hello
/test/world
@@ -223,7 +221,6 @@ select * from [nt:base] where not (id =
/jcr:system/rep:privileges
/oak-index
/oak-index/indexes
-/oak-index/indexes/:data
/test
/test/hello
@@ -236,7 +233,6 @@ select * from [nt:base] where x is null
/jcr:system/rep:privileges
/oak-index
/oak-index/indexes
-/oak-index/indexes/:data
/test
commit / - "test"
@@ -257,7 +253,6 @@ null
null
null
null
-null
10 percent
10%
Hallo