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:

Reply via email to