@SuppressWarnings( "synthetic-access" ) @Override public String explain( String query, String language ) { return ((org.modeshape.jcr.api.query.QueryResult)queryResult).getPlan(); }
private JcrType getJcrType( int column ) { JcrType typeInfo = null; if (results instanceof org.modeshape.jcr.api.query.QueryResult) { final String typeName = ((org.modeshape.jcr.api.query.QueryResult)results).getColumnTypes()[column - 1]; typeInfo = JcrType.typeInfo(typeName); } /** * If no type is matched, then default to STRING */ return (typeInfo != null ? typeInfo : JcrType.typeInfo(DefaultDataTypes.STRING)); }
@Before public void beforeEach() throws Exception { MockitoAnnotations.initMocks(this); when(results.getColumnNames()).thenReturn(columnNames); when(results.getSelectorNames()).thenReturn(tableNames); when(extendedResults.getColumnNames()).thenReturn(columnNames); when(extendedResults.getSelectorNames()).thenReturn(tableNames); when(extendedResults.getColumnTypes()).thenReturn(typeNames); // Set up the node types ... addPropDefn("typeA", "propA", true); addPropDefn("typeA", "propC", false); addPropDefn("typeB", "propB", false); addPropDefn("typeA", "propE", false); // Set up the connection information ... when(info.getWorkspaceName()).thenReturn("workspaceName"); when(info.getRepositoryName()).thenReturn("repositoryName"); // Set up the mock connection ... when(connection.info()).thenReturn(info); // Set up the metadata objects ... metadata = new JcrResultSetMetaData(connection, results); extMetadata = new JcrResultSetMetaData(connection, extendedResults); }
@Ignore @Test public void shouldFailIfGetNodesOrGetRowsIsCalledAfterGetNodesCalledOncePerQueryResult() throws RepositoryException { String sql = "SELECT * FROM [nt:unstructured]"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); org.modeshape.jcr.api.query.QueryResult result = (org.modeshape.jcr.api.query.QueryResult)query.execute(); assertNotNull(result.getNodes()); try { result.getRows(); fail(); } catch (RepositoryException e) { // expected } try { result.getNodes(); fail(); } catch (RepositoryException e) { // expected } }
final QueryResult result = query.execute(); nodeIterator = result.getNodes(); assertEquals(batchSize + 1, nodeIterator.getSize()); nodeIterator.skip(positionToSkip);
@Ignore @Test public void shouldFailIfGetNodesOrGetRowsIsCalledAfterGetRowsCalledOncePerQueryResult() throws RepositoryException { String sql = "SELECT * FROM [nt:unstructured]"; Query query = session.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2); org.modeshape.jcr.api.query.QueryResult result = (org.modeshape.jcr.api.query.QueryResult)query.execute(); assertNotNull(result.getRows()); try { result.getRows(); fail(); } catch (RepositoryException e) { // expected } try { result.getNodes(); fail(); } catch (RepositoryException e) { // expected } }
protected void print( Query query, QueryResult result ) { System.out.println(); System.out.println(query); System.out.println(" plan -> " + ((org.modeshape.jcr.api.query.QueryResult)result).getPlan()); System.out.println(result); }
private JcrType getJcrType( int column ) { JcrType typeInfo = null; if (results instanceof org.modeshape.jcr.api.query.QueryResult) { final String typeName = ((org.modeshape.jcr.api.query.QueryResult)results).getColumnTypes()[column - 1]; typeInfo = JcrType.typeInfo(typeName); } /** * If no type is matched, then default to STRING */ return (typeInfo != null ? typeInfo : JcrType.typeInfo(DefaultDataTypes.STRING)); }
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; }
private void setColumns( QueryResult result, RestQueryResult restQueryResult, String[] columnNames ) { if (result instanceof org.modeshape.jcr.api.query.QueryResult) { org.modeshape.jcr.api.query.QueryResult modeShapeQueryResult = (org.modeshape.jcr.api.query.QueryResult)result; String[] columnTypes = modeShapeQueryResult.getColumnTypes(); for (int i = 0; i < columnNames.length; i++) { restQueryResult.addColumn(columnNames[i], columnTypes[i]); } } else { for (String columnName : columnNames) { restQueryResult.addColumn(columnName, UNKNOWN_TYPE); } } }
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(); }
protected void validateQueryPlan( QueryResult result ) { if (checkForQueryPlan) { String plan = ((org.modeshape.jcr.api.query.QueryResult)result).getPlan(); assertNotNull(plan); assertTrue(plan.trim().length() > 0);
String plan = result.getPlan(); return new RestQueryPlanResult(plan, statement, language, query.getAbstractQueryModelRepresentation());
System.out.println(); System.out.println(query); System.out.println(((org.modeshape.jcr.api.query.QueryResult)result).getPlan()); System.out.println(result);
System.out.println(); System.out.println(query); System.out.println(" plan -> " + ((org.modeshape.jcr.api.query.QueryResult)result).getPlan()); System.out.println(result);