public static String explainPlain(Session session, String queryExpression) throws RepositoryException { Query query = session.getWorkspace().getQueryManager().createQuery(queryExpression, "JCR-SQL2"); org.modeshape.jcr.api.query.Query msQuery = (org.modeshape.jcr.api.query.Query)query; // Get the query plan without executing it ... org.modeshape.jcr.api.query.QueryResult result = msQuery.explain(); String plan = result.getPlan(); return plan; }
public List<T> findWithExplainPlan(String queryExpression) { try { org.modeshape.jcr.api.query.Query query = (org.modeshape.jcr.api.query.Query) getSession().getWorkspace().getQueryManager().createQuery(queryExpression, "JCR-SQL2"); org.modeshape.jcr.api.query.QueryResult result = query.explain(); String plan = result.getPlan(); log.info(plan); return find(queryExpression); } catch (RepositoryException e) { throw new MetadataRepositoryException("Failure while finding entity ", e); } }
@Override public String explain( String query, String language ) throws RepositoryException { logger.trace("Explaining query: {0}", query); // Create the query ... final org.modeshape.jcr.api.query.Query jcrQuery = (org.modeshape.jcr.api.query.Query)getLocalSession().getSession().getWorkspace().getQueryManager().createQuery(query, language); return jcrQuery.explain().getPlan(); }
@Override public String explain( String query, String language ) throws RepositoryException { logger.trace("Explaining query: {0}", query); // Create the query ... final org.modeshape.jcr.api.query.Query jcrQuery = (org.modeshape.jcr.api.query.Query)getLocalSession().getSession().getWorkspace().getQueryManager().createQuery(query, language); return jcrQuery.explain().getPlan(); }
bindExtraVariables(uriInfo, session.getValueFactory(), query); org.modeshape.jcr.api.query.QueryResult result = query.explain(); String plan = result.getPlan(); return new RestQueryPlanResult(plan, statement, language, query.getAbstractQueryModelRepresentation());
@FixFor( "MODE-1901" ) @Test public void shouldExplainQueryWithoutExecutingQuery() throws RepositoryException { String sql = "SELECT * FROM [nt:file]"; org.modeshape.jcr.api.query.Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); org.modeshape.jcr.api.query.QueryResult result = query.explain(); validateQuery().rowCount(0).warnings(0).onlyQueryPlan().validate(query, result); }