Search in sources :

Example 6 with Plan

use of org.neo4j.driver.summary.Plan in project neo4j by neo4j.

the class TablePlanFormatterTest method withNoDetails.

@Test
public void withNoDetails() {
    Plan plan = mock(Plan.class);
    Map<String, Value> args = Collections.singletonMap("EstimatedRows", new FloatValue(55));
    when(plan.arguments()).thenReturn(args);
    when(plan.operatorType()).thenReturn("Projection");
    assertThat(tablePlanFormatter.formatPlan(plan), is(String.join(NEWLINE, "+-------------+----------------+", "| Operator    | Estimated Rows |", "+-------------+----------------+", "| +Projection |             55 |", "+-------------+----------------+", "")));
}
Also used : StringValue(org.neo4j.driver.internal.value.StringValue) Value(org.neo4j.driver.Value) FloatValue(org.neo4j.driver.internal.value.FloatValue) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) FloatValue(org.neo4j.driver.internal.value.FloatValue) Plan(org.neo4j.driver.summary.Plan) Test(org.junit.Test)

Example 7 with Plan

use of org.neo4j.driver.summary.Plan in project neo4j by neo4j.

the class OutputFormatter method info.

@Nonnull
static Map<String, Value> info(@Nonnull ResultSummary summary) {
    Map<String, Value> result = new LinkedHashMap<>();
    if (!summary.hasPlan()) {
        return result;
    }
    Plan plan = summary.plan();
    result.put("Plan", Values.value(summary.hasProfile() ? "PROFILE" : "EXPLAIN"));
    result.put("Statement", Values.value(summary.queryType().name()));
    Map<String, Value> arguments = plan.arguments();
    Value emptyString = Values.value("");
    Value questionMark = Values.value("?");
    for (String key : INFO_SUMMARY) {
        Value value = arguments.getOrDefault(key, arguments.getOrDefault(key.toLowerCase(), emptyString));
        result.put(key, value);
    }
    result.put("Time", Values.value(summary.resultAvailableAfter(MILLISECONDS) + summary.resultConsumedAfter(MILLISECONDS)));
    if (summary.hasProfile()) {
        result.put("DbHits", Values.value(collectHits(summary.profile())));
    }
    if (summary.hasProfile()) {
        result.put("Rows", Values.value(summary.profile().records()));
    }
    if (summary.hasProfile()) {
        result.put("Memory (Bytes)", arguments.getOrDefault("GlobalMemory", questionMark));
    }
    return result;
}
Also used : DurationValue(org.neo4j.values.storable.DurationValue) Value(org.neo4j.driver.Value) Plan(org.neo4j.driver.summary.Plan) ProfiledPlan(org.neo4j.driver.summary.ProfiledPlan) LinkedHashMap(java.util.LinkedHashMap) Nonnull(javax.annotation.Nonnull)

Aggregations

Value (org.neo4j.driver.Value)7 Plan (org.neo4j.driver.summary.Plan)7 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)5 Test (org.junit.Test)5 FloatValue (org.neo4j.driver.internal.value.FloatValue)5 StringValue (org.neo4j.driver.internal.value.StringValue)5 HashMap (java.util.HashMap)2 Nonnull (javax.annotation.Nonnull)2 ArrayList (java.util.ArrayList)1 Arrays.asList (java.util.Arrays.asList)1 Collection (java.util.Collection)1 LinkedHashMap (java.util.LinkedHashMap)1 LinkedHashSet (java.util.LinkedHashSet)1 List (java.util.List)1 Map (java.util.Map)1 Optional (java.util.Optional)1 Set (java.util.Set)1 Function (java.util.function.Function)1 Matcher (java.util.regex.Matcher)1 Pattern (java.util.regex.Pattern)1