/** * Applies the {@link Bigdata2ASTSPARQLParser}. */ public QueryRoot parse(final String queryStr, final String baseURI) throws MalformedQueryException { final Bigdata2ASTSPARQLParser parser = new Bigdata2ASTSPARQLParser(); final ASTContainer astContainer = parser.parseQuery2(queryStr, baseURI); ASTDeferredIVResolution.resolveQuery(tripleStore, astContainer); final QueryRoot ast = astContainer.getOriginalAST(); final Collection<ValueExpressionNode> nodes = new LinkedList<ValueExpressionNode>(); final Iterator<ValueExpressionNode> itr = BOpUtility.visitAll( ast, ValueExpressionNode.class); while (itr.hasNext()) { final ValueExpressionNode node = itr.next(); nodes.add(node); } for (ValueExpressionNode node : nodes) { node.invalidate(); } return ast; }
/** * Applies the {@link Bigdata2ASTSPARQLParser}. */ public QueryRoot parse(final String queryStr, final String baseURI) throws MalformedQueryException { final Bigdata2ASTSPARQLParser parser = new Bigdata2ASTSPARQLParser(); final ASTContainer astContainer = parser.parseQuery2(queryStr, baseURI); ASTDeferredIVResolution.resolveQuery(tripleStore, astContainer); final QueryRoot ast = astContainer.getOriginalAST(); final Collection<ValueExpressionNode> nodes = new LinkedList<ValueExpressionNode>(); final Iterator<ValueExpressionNode> itr = BOpUtility.visitAll( ast, ValueExpressionNode.class); while (itr.hasNext()) { final ValueExpressionNode node = itr.next(); nodes.add(node); } for (ValueExpressionNode node : nodes) { node.invalidate(); } return ast; }
/** * Return the {@link IDescribeCache} iff it is enabled. * * @return The {@link IDescribeCache} iff enabled and otherwise * <code>null</code>. */ protected IDescribeCache getDescribeCache(final ASTContainer astContainer, final AbstractTripleStore store) { final IDescribeCache describeCache; final AST2BOpContext context = new AST2BOpContext(astContainer, store); if (context.describeCache != null && astContainer.getOriginalAST().getQueryType() == QueryType.DESCRIBE) { /* * The DESCRIBE cache is enabled. */ describeCache = context.getDescribeCache(); } else { // DESCRIBE cache is not enabled. describeCache = null; } return describeCache; }
/** * Applies the {@link Bigdata2ASTSPARQLParser}. */ public QueryRoot parse(final String queryStr, final String baseURI) throws MalformedQueryException { final Bigdata2ASTSPARQLParser parser = new Bigdata2ASTSPARQLParser(); final ASTContainer astContainer = parser.parseQuery2(queryStr, baseURI); ASTDeferredIVResolution.resolveQuery(tripleStore, astContainer); final QueryRoot ast = astContainer.getOriginalAST(); final Collection<ValueExpressionNode> nodes = new LinkedList<ValueExpressionNode>(); final Iterator<ValueExpressionNode> itr = BOpUtility.visitAll( ast, ValueExpressionNode.class); while (itr.hasNext()) { final ValueExpressionNode node = itr.next(); nodes.add(node); } for (ValueExpressionNode node : nodes) { node.invalidate(); } return ast; }
private CloseableIteration<? extends BindingSet, QueryEvaluationException> evaluate(final String query, final SailConnection con, final BindingSet bs) throws Exception { // new pattern ((BigdataSailConnection) con).flush(); final AbstractTripleStore db = ((BigdataSailConnection) con).getTripleStore(); final ASTContainer astContainer = new Bigdata2ASTSPARQLParser().parseQuery2(query, null); final QueryRoot originalQuery = astContainer.getOriginalAST(); originalQuery.setIncludeInferred(false); final TupleQueryResult queryResult = ASTEvalHelper.evaluateTupleQuery( db, astContainer, new QueryBindingSet( bs), null /* dataset */); return queryResult; }
public GraphQueryResult evaluate(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final GraphQueryResult queryResult = ASTEvalHelper.evaluateGraphQuery( getTripleStore(), astContainer, new QueryBindingSet( getBindings()), getDataset()); return queryResult; }
public TupleQueryResult evaluate(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final TupleQueryResult queryResult = ASTEvalHelper.evaluateTupleQuery( getTripleStore(), astContainer, new QueryBindingSet( getBindings()), getDataset()); return queryResult; }
public GraphQueryResult evaluate(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final GraphQueryResult queryResult = ASTEvalHelper.evaluateGraphQuery( getTripleStore(), astContainer, new QueryBindingSet( getBindings()), getDataset()); return queryResult; }
public boolean evaluate(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final boolean queryResult = ASTEvalHelper.evaluateBooleanQuery( getTripleStore(), astContainer, new QueryBindingSet( getBindings()), getDataset()); return queryResult; }
public TupleQueryResult evaluate(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final TupleQueryResult queryResult = ASTEvalHelper.evaluateTupleQuery( getTripleStore(), astContainer, new QueryBindingSet( getBindings()), getDataset()); return queryResult; }
public boolean evaluate(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final boolean queryResult = ASTEvalHelper.evaluateBooleanQuery( getTripleStore(), astContainer, new QueryBindingSet( getBindings()), getDataset()); return queryResult; }
public QueryRoot optimize(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final QueryRoot optimized = ASTEvalHelper.optimizeQuery( astContainer, new AST2BOpContext(astContainer, getTripleStore()), new QueryBindingSet(getBindings()), getDataset()); return optimized; }
public QueryRoot optimize(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final QueryRoot optimized = ASTEvalHelper.optimizeQuery( astContainer, new AST2BOpContext(astContainer, getTripleStore()), new QueryBindingSet(getBindings()), getDataset()); return optimized; }
public QueryRoot optimize(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final QueryRoot optimized = ASTEvalHelper.optimizeQuery( astContainer, new AST2BOpContext(astContainer, getTripleStore()), new QueryBindingSet(getBindings()), getDataset()); return optimized; }
public QueryRoot optimize(final BindingsClause bc) throws QueryEvaluationException { final QueryRoot originalQuery = astContainer.getOriginalAST(); if (bc != null) originalQuery.setBindingsClause(bc); if (getMaxQueryTime() > 0) originalQuery.setTimeout(TimeUnit.SECONDS .toMillis(getMaxQueryTime())); originalQuery.setIncludeInferred(getIncludeInferred()); final QueryRoot optimized = ASTEvalHelper.optimizeQuery( astContainer, new AST2BOpContext(astContainer, getTripleStore()), new QueryBindingSet(getBindings()), getDataset()); return optimized; }
/** * Return the {@link IDescribeCache} iff it is enabled. * * @return The {@link IDescribeCache} iff enabled and otherwise * <code>null</code>. */ protected IDescribeCache getDescribeCache(final ASTContainer astContainer, final AbstractTripleStore store) { final IDescribeCache describeCache; final AST2BOpContext context = new AST2BOpContext(astContainer, store); if (context.describeCache != null && astContainer.getOriginalAST().getQueryType() == QueryType.DESCRIBE) { /* * The DESCRIBE cache is enabled. */ describeCache = context.getDescribeCache(); } else { // DESCRIBE cache is not enabled. describeCache = null; } return describeCache; }
@SuppressWarnings("unchecked") private void testQuery(final BigdataSailRepositoryConnection conn, final String query, final int expectedIVs) throws MalformedQueryException, RepositoryException, QueryEvaluationException { TupleQuery tq = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); TupleQueryResult tqr = tq.evaluate(); try { int cnt = 0; while (tqr.hasNext()) { tqr.next(); cnt++; } // assertEquals("Expected 1 row in resultset", 1, cnt); QueryRoot queryRoot = ((BigdataSailTupleQuery)tq).getASTContainer().getOriginalAST(); cnt = 0; for (Object filterNode: queryRoot.getWhereClause().getChildren(FilterNode.class)) { cnt += checkNode((BOp)filterNode); } assertEquals("Expected inlined IV for date literal", expectedIVs, cnt); } finally { tqr.close(); } }
private CloseableIteration<? extends BindingSet, QueryEvaluationException> evaluate(final String query, final SailConnection con, final BindingSet bs) throws Exception { // new pattern ((BigdataSailConnection) con).flush(); final AbstractTripleStore db = ((BigdataSailConnection) con).getTripleStore(); final ASTContainer astContainer = new Bigdata2ASTSPARQLParser().parseQuery2(query, null); final QueryRoot originalQuery = astContainer.getOriginalAST(); originalQuery.setIncludeInferred(false); final TupleQueryResult queryResult = ASTEvalHelper.evaluateTupleQuery( db, astContainer, new QueryBindingSet( bs), null /* dataset */); return queryResult; }
/** * A unit test where two nested graph groups have the same URI as their * context. This case is legal and there is nothing that needs to be changed * in the AST for enforce the graph context constraint. * * @throws MalformedQueryException */ public void test_graphContexts_constants_legal() throws MalformedQueryException { final String queryStr = ""// + "PREFIX : <http://example.org/>\n"// + "SELECT ?s\n"// + "WHERE {\n"// + " GRAPH :foo {\n"// + " ?s :p :o .\n"// + " GRAPH :foo { ?o :p2 ?s }\n"// + " }\n"// + "}"; final ASTContainer astContainer = new Bigdata2ASTSPARQLParser() .parseQuery2(queryStr, baseURI); final AST2BOpContext context = new AST2BOpContext(astContainer, store); new ASTGraphGroupOptimizer().optimize(context, new QueryNodeWithBindingSet(astContainer.getOriginalAST(), null)); }
@SuppressWarnings("unchecked") private void testQuery(final BigdataSailRepositoryConnection conn, final String query, final int expectedIVs) throws MalformedQueryException, RepositoryException, QueryEvaluationException { TupleQuery tq = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); TupleQueryResult tqr = tq.evaluate(); try { int cnt = 0; while (tqr.hasNext()) { tqr.next(); cnt++; } // assertEquals("Expected 1 row in resultset", 1, cnt); QueryRoot queryRoot = ((BigdataSailTupleQuery)tq).getASTContainer().getOriginalAST(); cnt = 0; for (Object filterNode: queryRoot.getWhereClause().getChildren(FilterNode.class)) { cnt += checkNode((BOp)filterNode); } assertEquals("Expected inlined IV for date literal", expectedIVs, cnt); } finally { tqr.close(); } }