This is an automated email from the ASF dual-hosted git repository.
baedke pushed a commit to branch OAK-11697
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/OAK-11697 by this push:
new f38fee9805 OAK-11697: Indexing / query limit / traversal error:
improve diagnostics
f38fee9805 is described below
commit f38fee980567e060686cf3636b7791604fff0f5d
Author: Manfred Baedke <[email protected]>
AuthorDate: Wed Nov 26 16:12:27 2025 +0100
OAK-11697: Indexing / query limit / traversal error: improve diagnostics
Minor optimization.
---
.../main/java/org/apache/jackrabbit/oak/query/QueryImpl.java | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git
a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
index 7a9fdb7739..b2056519f2 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
@@ -190,6 +190,8 @@ public class QueryImpl implements Query {
private boolean potentiallySlowTraversalQuery;
+ private List<? extends QueryIndex> queryIndexes;
+
QueryImpl(String statement, SourceImpl source, ConstraintImpl constraint,
ColumnImpl[] columns, NamePathMapper mapper, QueryEngineSettings
settings,
QueryExecutionStats stats) {
@@ -1085,7 +1087,7 @@ public class QueryImpl implements Query {
// Sort the indexes according to their minimum cost to be able to skip
the remaining indexes if the cost of the
// current index is below the minimum cost of the next index.
- List<? extends QueryIndex> queryIndexes =
indexProvider.getQueryIndexes(rootState).stream()
+ queryIndexes = indexProvider.getQueryIndexes(rootState).stream()
.sorted(MINIMAL_COST_ORDERING).collect(Collectors.toList());
List<OrderEntry> sortOrder = getSortOrder(filter);
for (int i = 0; i < queryIndexes.size(); i++) {
@@ -1268,12 +1270,7 @@ public class QueryImpl implements Query {
String caller =
IndexUtils.getCaller(settings.getIgnoredClassNamesInCallTrace());
String message = "Traversal query (query without index): " +
statement + "; called by " + caller + "; consider creating an index";
if (traversal == Traversal.FAIL || traversal == Traversal.WARN &&
!potentiallySlowTraversalQueryLogged) {
- String plan = getPlan();
- List<QueryIndex> indexList =
context.getIndexProvider().getQueryIndexes(context.getBaseState())
- .stream()
- .sorted(MINIMAL_COST_ORDERING)
- .collect(Collectors.toList());
- message += "\n" + plan + "\n" + "Available indexes at the time
of query execution:" + "\n" + indexList;
+ message += "\n" + getPlan() + "\n" + "Available indexes at the
time of query execution:" + "\n" + queryIndexes;
}
switch (traversal) {
case DEFAULT: