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 ju...@apache.org on 2013/11/08 15:59:56 UTC
svn commit: r1540064 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query:
ExecutionContext.java QueryEngineImpl.java QueryImpl.java
Author: jukka
Date: Fri Nov 8 14:59:55 2013
New Revision: 1540064
URL: http://svn.apache.org/r1540064
Log:
OAK-1132: QueryEngine #executeQuery creates a new revision on each call
Rename getRootState() to getBaseState() to make the contract clearer
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java?rev=1540064&r1=1540063&r2=1540064&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ExecutionContext.java Fri Nov 8 14:59:55 2013
@@ -31,28 +31,33 @@ import org.apache.jackrabbit.oak.spi.sta
* the execution context was created.
*/
public class ExecutionContext {
- private final NodeState rootState;
+
+ /**
+ * Base state used for index lookups.
+ */
+ private final NodeState baseState;
+
private final Tree rootTree;
+
private final QueryIndexProvider indexProvider;
- public ExecutionContext(NodeState rootState, Tree rootTree,
+ public ExecutionContext(
+ NodeState baseState, Tree rootTree,
QueryIndexProvider indexProvider) {
-
- this.rootState = rootState;
+ this.baseState = baseState;
this.rootTree = rootTree;
this.indexProvider = indexProvider;
}
/**
- *
* Used to evaluate the query (ie. read the existing node types, index
* definitions), doesn't need to be a secured version of a node state
*
- * @return Root node state of the content tree against which the query runs.
+ * @return base state of the content tree against which the query runs.
*/
@Nonnull
- public NodeState getRootState() {
- return rootState;
+ public NodeState getBaseState() {
+ return baseState;
}
/**
@@ -69,7 +74,7 @@ public class ExecutionContext {
/**
* @return Index provider for indexes matching the state of the content tree as
- * returned from {@link #getRootState()}.
+ * returned from {@link #getBaseState()}.
*/
@Nonnull
public QueryIndexProvider getIndexProvider() {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java?rev=1540064&r1=1540063&r2=1540064&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineImpl.java Fri Nov 8 14:59:55 2013
@@ -89,9 +89,9 @@ public abstract class QueryEngineImpl im
private static Query parseQuery(String statement, String language,
ExecutionContext context, NamePathMapper namePathMapper) throws ParseException {
LOG.debug("Parsing {} statement: {}", language, statement);
- NodeState root = context.getRootState();
- NodeState system = root.getChildNode(JCR_SYSTEM);
- NodeState types = system.getChildNode(JCR_NODE_TYPES);
+ NodeState types = context.getBaseState()
+ .getChildNode(JCR_SYSTEM)
+ .getChildNode(JCR_NODE_TYPES);
SQL2Parser parser = new SQL2Parser(namePathMapper, types);
if (language.endsWith(NO_LITERALS)) {
language = language.substring(0, language.length() - NO_LITERALS.length());
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java?rev=1540064&r1=1540063&r2=1540064&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java Fri Nov 8 14:59:55 2013
@@ -381,7 +381,7 @@ public class QueryImpl implements Query
LOG.debug("query execute {} ", statement);
LOG.debug("query plan {}", getPlan());
}
- RowIterator rowIt = new RowIterator(context.getRootState());
+ RowIterator rowIt = new RowIterator(context.getBaseState());
Comparator<ResultRowImpl> orderBy = ResultRowImpl.getComparator(orderings);
Iterator<ResultRowImpl> it =
FilterIterators.newCombinedFilter(rowIt, distinct, limit, offset, orderBy);
@@ -420,7 +420,7 @@ public class QueryImpl implements Query
@Override
public String getPlan() {
- return source.getPlan(context.getRootState());
+ return source.getPlan(context.getBaseState());
}
@Override
@@ -593,7 +593,7 @@ public class QueryImpl implements Query
}
public QueryIndex getBestIndex(Filter filter) {
- return getBestIndex(context.getRootState(), filter,
+ return getBestIndex(context.getBaseState(), filter,
context.getIndexProvider(), traversalFallback);
}