@Override public Optional<OExecutionPlan> getExecutionPlan() { return entity.getExecutionPlan(); }
@Override public Optional<OExecutionPlan> getExecutionPlan() { return finalResult == null ? Optional.empty() : finalResult.getExecutionPlan(); }
public Optional<OExecutionPlan> explain(OGraph graph) { return graph.querySql(String.format("EXPLAIN %s", query), params).getRawResultSet().getExecutionPlan(); }
public synchronized void queryStarted(String id, OResultSet rs) { if (this.activeQueries.size() > 1 && this.activeQueries.size() % 10 == 0) { StringBuilder msg = new StringBuilder(); msg.append("This database instance has "); msg.append(activeQueries.size()); msg.append(" open command/query result sets, please make sure you close them with OResultSet.close()"); OLogManager.instance().warn(this, msg.toString(), null); if (OLogManager.instance().isDebugEnabled()) { activeQueries.values().stream().map(pendingQuery -> pendingQuery.getExecutionPlan()).filter(plan -> plan != null) .forEach(plan -> OLogManager.instance().debug(this, plan.toString())); } } this.activeQueries.put(id, rs); }
@Override public OResultSet executeSimple(OCommandContext ctx) { Object result; if (expression != null) { result = expression.execute((OResult) null, ctx); } else { Map<Object, Object> params = ctx.getInputParameters(); if (statement.originalStatement == null) { statement.setOriginalStatement(statement.toString()); } result = statement.execute(ctx.getDatabase(), params, ctx); } if (result instanceof OResultSet) { OInternalResultSet rs = new OInternalResultSet(); ((OResultSet) result).stream().forEach(x -> rs.add(x)); rs.setPlan(((OResultSet) result).getExecutionPlan().orElse(null)); ((OResultSet) result).close(); result = rs; } if (ctx != null) { if (ctx.getParent() != null) { ctx.getParent().setVariable(name.getStringValue(), result); } else { ctx.setVariable(name.getStringValue(), result); } } return new OInternalResultSet(); }