diff --git a/community/data-collector/src/main/java/org/neo4j/internal/collector/QueryCollector.java b/community/data-collector/src/main/java/org/neo4j/internal/collector/QueryCollector.java index 16f96e9e7e605..c1e49d584affb 100644 --- a/community/data-collector/src/main/java/org/neo4j/internal/collector/QueryCollector.java +++ b/community/data-collector/src/main/java/org/neo4j/internal/collector/QueryCollector.java @@ -114,7 +114,7 @@ public void endSuccess( ExecutingQuery query ) QuerySnapshot snapshot = query.snapshot(); queries.produce( new TruncatedQuerySnapshot( snapshot.queryText(), - snapshot.queryPlan(), + snapshot.queryPlanSupplier(), snapshot.queryParameters(), snapshot.elapsedTimeMicros(), snapshot.compilationTimeMicros(), diff --git a/community/data-collector/src/main/java/org/neo4j/internal/collector/TruncatedQuerySnapshot.java b/community/data-collector/src/main/java/org/neo4j/internal/collector/TruncatedQuerySnapshot.java index 7cb0c85795e96..434a0a0e35c60 100644 --- a/community/data-collector/src/main/java/org/neo4j/internal/collector/TruncatedQuerySnapshot.java +++ b/community/data-collector/src/main/java/org/neo4j/internal/collector/TruncatedQuerySnapshot.java @@ -19,6 +19,8 @@ */ package org.neo4j.internal.collector; +import java.util.function.Supplier; + import org.neo4j.graphdb.ExecutionPlanDescription; import org.neo4j.values.AnyValue; import org.neo4j.values.SequenceValue; @@ -51,14 +53,14 @@ class TruncatedQuerySnapshot { final int fullQueryTextHash; final String queryText; - final ExecutionPlanDescription queryPlan; + final Supplier queryPlanSupplier; final MapValue queryParameters; final Long elapsedTimeMicros; final Long compilationTimeMicros; final Long startTimestampMillis; TruncatedQuerySnapshot( String fullQueryText, - ExecutionPlanDescription queryPlan, + Supplier queryPlanSupplier, MapValue queryParameters, Long elapsedTimeMicros, Long compilationTimeMicros, @@ -67,7 +69,7 @@ class TruncatedQuerySnapshot { this.fullQueryTextHash = fullQueryText.hashCode(); this.queryText = truncateQueryText( fullQueryText, maxQueryTextLength ); - this.queryPlan = queryPlan; + this.queryPlanSupplier = queryPlanSupplier; this.queryParameters = truncateParameters( queryParameters ); this.elapsedTimeMicros = elapsedTimeMicros; this.compilationTimeMicros = compilationTimeMicros; diff --git a/community/data-collector/src/main/scala/org/neo4j/internal/collector/QueriesSection.scala b/community/data-collector/src/main/scala/org/neo4j/internal/collector/QueriesSection.scala index 19ada683a3aab..bf5bac9d2e29a 100644 --- a/community/data-collector/src/main/scala/org/neo4j/internal/collector/QueriesSection.scala +++ b/community/data-collector/src/main/scala/org/neo4j/internal/collector/QueriesSection.scala @@ -60,7 +60,8 @@ object QueriesSection { val snapshot = querySnapshots.next() val queryString = snapshot.queryText if (QUERY_FILTER.findFirstMatchIn(queryString).isEmpty) { - val snapshotList = queries.getOrElseUpdate(QueryKey(queryString, snapshot.fullQueryTextHash, snapshot.queryPlan), new QueryData()) + val queryKey = QueryKey(queryString, snapshot.fullQueryTextHash, snapshot.queryPlanSupplier.get()) + val snapshotList = queries.getOrElseUpdate(queryKey, new QueryData()) snapshotList.invocations += SingleInvocation(snapshot.queryParameters, snapshot.elapsedTimeMicros, snapshot.compilationTimeMicros, diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/query/ExecutingQuery.java b/community/kernel/src/main/java/org/neo4j/kernel/api/query/ExecutingQuery.java index f9f0bc7ad37ce..66437458f6c90 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/query/ExecutingQuery.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/query/ExecutingQuery.java @@ -252,9 +252,9 @@ public String queryText() return queryText; } - public ExecutionPlanDescription planDescription() + public Supplier planDescriptionSupplier() { - return planDescriptionSupplier.get(); + return planDescriptionSupplier; } public MapValue queryParameters() diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/query/QuerySnapshot.java b/community/kernel/src/main/java/org/neo4j/kernel/api/query/QuerySnapshot.java index 7a01da48ecc65..98de24950e798 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/query/QuerySnapshot.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/query/QuerySnapshot.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.function.Supplier; import java.util.stream.Collectors; import org.neo4j.graphdb.ExecutionPlanDescription; @@ -72,9 +73,9 @@ public String queryText() return query.queryText(); } - public ExecutionPlanDescription queryPlan() + public Supplier queryPlanSupplier() { - return query.planDescription(); + return query.planDescriptionSupplier(); } public MapValue queryParameters()