@Override public String[] getSelectorNames() { List<String> selectorNames = results.getColumns().getSelectorNames(); return selectorNames.toArray(new String[selectorNames.size()]); // make a defensive copy ... }
@Override public String[] getSelectorNames() { List<String> selectorNames = results.getColumns().getSelectorNames(); return selectorNames.toArray(new String[selectorNames.size()]); // make a defensive copy ... }
protected List<String> getColumnNameList() { return results.getColumns().getColumnNames(); }
protected List<String> getColumnTypeList() { return results.getColumns().getColumnTypes(); }
protected List<String> getColumnNameList() { return results.getColumns().getColumnNames(); }
protected List<String> getColumnTypeList() { return results.getColumns().getColumnTypes(); }
public JcrSqlQueryResult( JcrQueryContext context, String query, QueryResults results, boolean restartable, int numRowsInMemory ) { super(context, query, results, restartable, numRowsInMemory); Columns resultColumns = results.getColumns(); List<String> columnNames = new LinkedList<String>(resultColumns.getColumnNames()); List<String> columnTypes = new LinkedList<String>(resultColumns.getColumnTypes()); if (!columnNames.contains(JCR_SCORE_COLUMN_NAME)) { columnNames.add(0, JCR_SCORE_COLUMN_NAME); columnTypes.add(0, JCR_SCORE_COLUMN_TYPE); } if (!columnNames.contains(JCR_PATH_COLUMN_NAME)) { columnNames.add(0, JCR_PATH_COLUMN_NAME); columnTypes.add(0, JCR_PATH_COLUMN_TYPE); } this.columnNames = Collections.unmodifiableList(columnNames); this.columnTypes = Collections.unmodifiableList(columnTypes); }
public JcrSqlQueryResult( JcrQueryContext context, String query, QueryResults results, boolean restartable, int numRowsInMemory ) { super(context, query, results, restartable, numRowsInMemory); Columns resultColumns = results.getColumns(); List<String> columnNames = new LinkedList<String>(resultColumns.getColumnNames()); List<String> columnTypes = new LinkedList<String>(resultColumns.getColumnTypes()); if (!columnNames.contains(JCR_SCORE_COLUMN_NAME)) { columnNames.add(0, JCR_SCORE_COLUMN_NAME); columnTypes.add(0, JCR_SCORE_COLUMN_TYPE); } if (!columnNames.contains(JCR_PATH_COLUMN_NAME)) { columnNames.add(0, JCR_PATH_COLUMN_NAME); columnTypes.add(0, JCR_PATH_COLUMN_TYPE); } this.columnNames = Collections.unmodifiableList(columnNames); this.columnTypes = Collections.unmodifiableList(columnTypes); }
@Override public RowIterator getRows() { return new SingleSelectorQueryResultRowIterator(context, queryStatement, sequence(), results.getColumns()); } }
@Override public RowIterator getRows() { return new SingleSelectorQueryResultRowIterator(context, queryStatement, sequence(), results.getColumns()); } }
@Override public RowIterator getRows() { return new SingleSelectorQueryResultRowIterator(context, queryStatement, sequence(), results.getColumns()); } }
@Override public RowIterator getRows() { return new SingleSelectorQueryResultRowIterator(context, queryStatement, sequence(), results.getColumns()); } }
public XPathQueryResult( JcrQueryContext context, String query, QueryResults results, boolean restartable, int numRowsInMemory ) { super(context, query, results, restartable, numRowsInMemory); Columns resultColumns = results.getColumns(); List<String> columnNames = new LinkedList<String>(resultColumns.getColumnNames()); List<String> columnTypes = new LinkedList<String>(resultColumns.getColumnTypes()); if (resultColumns.hasFullTextSearchScores() && !columnNames.contains(JCR_SCORE_COLUMN_NAME)) { columnNames.add(0, JCR_SCORE_COLUMN_NAME); columnTypes.add(0, JCR_SCORE_COLUMN_TYPE); } if (!resultColumns.getColumnNames().contains(JCR_PATH_COLUMN_NAME)) { columnNames.add(0, JCR_PATH_COLUMN_NAME); columnTypes.add(0, JCR_PATH_COLUMN_TYPE); } this.columnNames = Collections.unmodifiableList(columnNames); this.columnTypes = Collections.unmodifiableList(columnTypes); }
public XPathQueryResult( JcrQueryContext context, String query, QueryResults results, boolean restartable, int numRowsInMemory ) { super(context, query, results, restartable, numRowsInMemory); Columns resultColumns = results.getColumns(); List<String> columnNames = new LinkedList<String>(resultColumns.getColumnNames()); List<String> columnTypes = new LinkedList<String>(resultColumns.getColumnTypes()); if (resultColumns.hasFullTextSearchScores() && !columnNames.contains(JCR_SCORE_COLUMN_NAME)) { columnNames.add(0, JCR_SCORE_COLUMN_NAME); columnTypes.add(0, JCR_SCORE_COLUMN_TYPE); } if (!resultColumns.getColumnNames().contains(JCR_PATH_COLUMN_NAME)) { columnNames.add(0, JCR_PATH_COLUMN_NAME); columnTypes.add(0, JCR_PATH_COLUMN_TYPE); } this.columnNames = Collections.unmodifiableList(columnNames); this.columnTypes = Collections.unmodifiableList(columnTypes); }
protected int computeDefaultSelectorIndex() { Columns columns = results.getColumns(); List<String> selectorNames = columns.getSelectorNames(); int selectorIndex = 0; if (selectorNames.size() == 1) { selectorIndex = columns.getSelectorIndex(selectorNames.get(0)); } if (selectorIndex >= sequence.width()) { // The columns were built on top of other columns that expose multiple selectors, but this sequenc only has // one selector ... selectorIndex = 0; } return selectorIndex; }
protected int computeDefaultSelectorIndex() { Columns columns = results.getColumns(); List<String> selectorNames = columns.getSelectorNames(); int selectorIndex = 0; if (selectorNames.size() == 1) { selectorIndex = columns.getSelectorIndex(selectorNames.get(0)); } if (selectorIndex >= sequence.width()) { // The columns were built on top of other columns that expose multiple selectors, but this sequenc only has // one selector ... selectorIndex = 0; } return selectorIndex; }
@Override public RowIterator getRows() throws RepositoryException { if (accessed) { if (restartable) { if (sequence instanceof Restartable) { ((Restartable)sequence).restart(); } else { assert sequence.isEmpty(); } } else if (!sequence.isEmpty()) { throw new RepositoryException(JcrI18n.multipleCallsToGetRowsOrNodesIsNotAllowed.text(queryStatement)); } } accessed = true; final Columns columns = results.getColumns(); if (columns.getSelectorNames().size() == 1) { // Then we know that there is only one selector in the results ... return new SingleSelectorQueryResultRowIterator(context, queryStatement, sequence, columns); } // There may be 1 or more selectors in the columns, but the results definitely have more than one selector ... return new QueryResultRowIterator(context, queryStatement, sequence, results.getColumns()); }
@Override public RowIterator getRows() throws RepositoryException { if (accessed) { if (restartable) { if (sequence instanceof Restartable) { ((Restartable)sequence).restart(); } else { assert sequence.isEmpty(); } } else if (!sequence.isEmpty()) { throw new RepositoryException(JcrI18n.multipleCallsToGetRowsOrNodesIsNotAllowed.text(queryStatement)); } } accessed = true; final Columns columns = results.getColumns(); if (columns.getSelectorNames().size() == 1) { // Then we know that there is only one selector in the results ... return new SingleSelectorQueryResultRowIterator(context, queryStatement, sequence, columns); } // There may be 1 or more selectors in the columns, but the results definitely have more than one selector ... return new QueryResultRowIterator(context, queryStatement, sequence, results.getColumns()); }
@Before public void beforeEach() { context = mock(JcrQueryContext.class); query = "SELECT jcr:primaryType, foo:bar FROM nt:unstructured"; graphResult = mock(QueryResults.class); columnTypes = Arrays.asList("STRING", "LONG"); columnNames = Arrays.asList("jcr:primaryType", "foo:bar"); SelectorName tableName = new SelectorName("nt:unstructured"); columns = Arrays.asList(new Column(tableName, columnNames.get(0), columnNames.get(0)), new Column(tableName, columnNames.get(1), columnNames.get(1))); resultColumns = new ScanningQueryEngine.ResultColumns(columns, columnTypes, true, null); when(graphResult.getColumns()).thenReturn(resultColumns); when(graphResult.getRows()).thenReturn(NodeSequence.emptySequence(1)); PlanHints hints = new PlanHints(); result = new XPathQueryResult(context, query, graphResult, hints.restartable, hints.rowsKeptInMemory); }