Search in sources :

Example 26 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class NativeQueryTest method assertDontTraverseFor.

private void assertDontTraverseFor(String sql) throws ParseException {
    QueryImpl query = (QueryImpl) p.parse(sql);
    query.setExecutionContext(QUERY_ENGINE.getExecutionContext());
    Result result = query.executeQuery();
    Iterator<? extends ResultRow> it = result.getRows().iterator();
    assertFalse("Zero results expected", it.hasNext());
    query = (QueryImpl) p.parse("measure " + sql);
    query.setExecutionContext(QUERY_ENGINE.getExecutionContext());
    result = query.executeQuery();
    it = result.getRows().iterator();
    while (it.hasNext()) {
        ResultRow row = it.next();
        String selector = row.getValue("selector").getValue(Type.STRING);
        if ("nt:base".equals(selector)) {
            long scanCount = row.getValue("scanCount").getValue(Type.LONG);
            // we expect that no was scanned that's it
            // - no traversal of the whole respository
            assertEquals("Repository's scan count doesn't match", 0, scanCount);
        }
    }
}
Also used : ResultRow(org.apache.jackrabbit.oak.api.ResultRow) Result(org.apache.jackrabbit.oak.api.Result)

Example 27 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class UnionQueryTest method testOrderLimitOffset.

@Test
public void testOrderLimitOffset() throws Exception {
    String left = "SELECT [jcr:path] FROM [nt:base] AS a WHERE ISDESCENDANTNODE(a, '/UnionQueryTest')";
    String right = "SELECT [jcr:path] FROM [nt:base] AS a WHERE ISDESCENDANTNODE(a, '/UnionQueryTest')";
    String order = "ORDER BY [jcr:path]";
    String union = String.format("%s UNION %s %s", left, right, order);
    final int limit = 3;
    final int offset = 2;
    String[] expected = { "/UnionQueryTest/a/b/c", "/UnionQueryTest/a/b/c/d", "/UnionQueryTest/a/b/c/d/e" };
    Result result = qe.executeQuery(union, QueryEngineImpl.SQL2, limit, offset, QueryEngine.NO_BINDINGS, QueryEngine.NO_MAPPINGS);
    List<ResultRow> rows = Lists.newArrayList(result.getRows());
    assertEquals(expected.length, rows.size());
    int i = 0;
    for (ResultRow rr : result.getRows()) {
        assertEquals(rr.getPath(), expected[i++]);
    }
}
Also used : ResultRow(org.apache.jackrabbit.oak.api.ResultRow) Result(org.apache.jackrabbit.oak.api.Result) Test(org.junit.Test)

Example 28 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class QueryManagerImpl method executeQuery.

public QueryResult executeQuery(String statement, String language, long limit, long offset, HashMap<String, Value> bindVariableMap) throws RepositoryException {
    try {
        Map<String, PropertyValue> bindMap = convertMap(bindVariableMap);
        TimerStats.Context context = queryDuration.time();
        Result r = queryEngine.executeQuery(statement, language, limit, offset, bindMap, sessionContext.getSessionLocalMappings());
        queryCount.mark();
        long millis = TimeUnit.NANOSECONDS.toMillis(context.stop());
        queryOpsLogger.debug("Executed query [{}] in [{}] ms", statement, millis);
        sessionContext.getStatisticManager().logQueryEvaluationTime(language, statement, millis);
        return new QueryResultImpl(sessionContext, r);
    } catch (IllegalArgumentException e) {
        throw new InvalidQueryException(e);
    } catch (ParseException e) {
        throw new InvalidQueryException(e);
    }
}
Also used : PropertyValue(org.apache.jackrabbit.oak.api.PropertyValue) TimerStats(org.apache.jackrabbit.oak.stats.TimerStats) ParseException(java.text.ParseException) InvalidQueryException(javax.jcr.query.InvalidQueryException) QueryResult(javax.jcr.query.QueryResult) Result(org.apache.jackrabbit.oak.api.Result)

Example 29 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class PrefetchIteratorTest method testFastSize.

@Test
public void testFastSize() {
    Iterable<Integer> s;
    PrefetchIterator<Integer> it;
    s = seq(0, 21);
    it = new PrefetchIterator<Integer>(s.iterator(), new PrefetchOptions() {

        {
            size = -1;
            fastSize = true;
            fastSizeCallback = new Result() {

                @Override
                public String[] getColumnNames() {
                    return null;
                }

                @Override
                public String[] getColumnSelectorNames() {
                    return null;
                }

                @Override
                public Iterable<? extends ResultRow> getRows() {
                    return null;
                }

                @Override
                public String[] getSelectorNames() {
                    return null;
                }

                @Override
                public long getSize() {
                    return 100;
                }

                @Override
                public long getSize(SizePrecision precision, long max) {
                    return 100;
                }
            };
        }
    });
    assertEquals(21, it.size());
}
Also used : ResultRow(org.apache.jackrabbit.oak.api.ResultRow) PrefetchOptions(org.apache.jackrabbit.oak.jcr.query.PrefetchIterator.PrefetchOptions) Result(org.apache.jackrabbit.oak.api.Result) Test(org.junit.Test)

Example 30 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class LuceneIndexAggregation2Test method excerpt.

@Ignore("OAK-6597")
@Test
public void excerpt() throws Exception {
    setTraversalEnabled(false);
    final String statement = "select [rep:excerpt] from [test:Page] as page where contains(*, '%s*')";
    Tree content = root.getTree("/").addChild("content");
    Tree pageContent = createPageStructure(content, "foo");
    // contains 'aliq' but not 'tinc'
    pageContent.setProperty("bar", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque aliquet odio varius odio " + "imperdiet, non egestas ex consectetur. Fusce congue ac augue quis finibus. Sed vulputate sollicitudin neque, nec " + "lobortis nisl varius eget.");
    // doesn't contain 'aliq' but 'tinc'
    pageContent.getParent().setProperty("bar", "Donec lacinia luctus leo, sed rutrum nulla. Sed sed hendrerit turpis. Donec ex quam, " + "bibendum et metus at, tristique tincidunt leo. Nam at elit ligula. Etiam ullamcorper, elit sit amet varius molestie, " + "nisl ex egestas libero, quis elementum enim mi a quam.");
    root.commit();
    for (String term : new String[] { "tinc", "aliq" }) {
        Result result = executeQuery(String.format(statement, term), "JCR-SQL2", NO_BINDINGS);
        Iterator<? extends ResultRow> rows = result.getRows().iterator();
        assertTrue(rows.hasNext());
        ResultRow firstHit = rows.next();
        // assert that there is only a single hit
        assertFalse(rows.hasNext());
        PropertyValue excerptValue = firstHit.getValue("rep:excerpt");
        assertNotNull(excerptValue);
        assertFalse("Excerpt for '" + term + "' is not supposed to be empty.", "".equals(excerptValue.getValue(STRING)));
    }
}
Also used : ResultRow(org.apache.jackrabbit.oak.api.ResultRow) Tree(org.apache.jackrabbit.oak.api.Tree) PropertyValue(org.apache.jackrabbit.oak.api.PropertyValue) Result(org.apache.jackrabbit.oak.api.Result) Ignore(org.junit.Ignore) Test(org.junit.Test) AbstractQueryTest(org.apache.jackrabbit.oak.query.AbstractQueryTest)

Aggregations

Result (org.apache.jackrabbit.oak.api.Result)36 ResultRow (org.apache.jackrabbit.oak.api.ResultRow)23 Test (org.junit.Test)20 PropertyValue (org.apache.jackrabbit.oak.api.PropertyValue)15 Tree (org.apache.jackrabbit.oak.api.Tree)15 AbstractQueryTest (org.apache.jackrabbit.oak.query.AbstractQueryTest)13 ParseException (java.text.ParseException)10 Root (org.apache.jackrabbit.oak.api.Root)5 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)5 Nonnull (javax.annotation.Nonnull)4 ExtractionResult (org.apache.jackrabbit.oak.plugins.index.fulltext.ExtractedText.ExtractionResult)3 ArrayList (java.util.ArrayList)2 ContentSession (org.apache.jackrabbit.oak.api.ContentSession)2 QueryEngine (org.apache.jackrabbit.oak.api.QueryEngine)2 Lists.newArrayList (com.google.common.collect.Lists.newArrayList)1 Sets.newHashSet (com.google.common.collect.Sets.newHashSet)1 Closer (com.google.common.io.Closer)1 IOException (java.io.IOException)1 Principal (java.security.Principal)1 Collections (java.util.Collections)1