/** * Get the query pattern from this where handler. * @return the query pattern */ public Element getQueryPattern() { return query.getQueryPattern(); }
/** * Get the query pattern from this where handler. * @return the query pattern */ public Element getQueryPattern() { return query.getQueryPattern(); }
@Override public void visitQueryPattern(Query query) { if ( query.getQueryPattern() != null ) x ^= query.getQueryPattern().hashCode() ; }
public static boolean tryMatchOld(Query viewQuery, Query userQuery) { Element viewEl = viewQuery.getQueryPattern(); Element userEl = userQuery.getQueryPattern(); boolean result = tryMatch(viewEl, userEl); return result; }
@Override public void visitQueryPattern(Query query1) { if ( query1.getQueryPattern() == null && query2.getQueryPattern() == null ) return ; if ( query1.getQueryPattern() == null ) throw new ComparisonException("Missing pattern") ; if ( query2.getQueryPattern() == null ) throw new ComparisonException("Missing pattern") ; // The checking for patterns (elements) involves a potential // remapping of system-allocated variable names. // Assumes blank node variables only appear in patterns. check("Pattern", query1.getQueryPattern().equalTo(query2.getQueryPattern(), new NodeIsomorphismMap())) ; }
public static Map<Var, Var> createRandomVarMap(Query query, String base) { Collection<Var> vars = PatternVars.vars(query.getQueryPattern()); Generator<Var> gen = VarGeneratorBlacklist.create(base, vars); Map<Var, Var> varMap = vars.stream() .collect(Collectors.toMap( v -> v, v -> gen.next())); return varMap; }
public static void check(Query query) { if ( query.getQueryPattern() == null ) // DESCRIBE may not have a pattern return ; check(query.getQueryPattern()) ; // Check this level. checkQueryScope(query) ; // Other checks. Collection<Var> vars = varsOfQuery(query) ; check(query, vars) ; }
@Override public void visit(ElementSubQuery el) { final Query q = el.getQuery(); q.getQueryPattern().visit( this ); }
private static Collection<Var> varsOfQuery(Query query) { Collection<Var> vars = PatternVars.vars(query.getQueryPattern()) ; if ( query.hasValues() ) vars.addAll(query.getValuesVariables()) ; return vars ; }
@Override public ExtendedIterator<Quad> getQuads() { Query q = qb.build(); QuadIteratorBuilder builder = new QuadIteratorBuilder(defaultGraphName); q.getQueryPattern().visit(builder); return builder.iter; }
Query query = QueryFactory.create(queryString); query.isSelectType() && query.isQueryResultStar(); // of the form SELECT *? query.getDatasetDescription(); // FROM / FROM NAMED bits query.getQueryPattern(); // The meat of the query, the WHERE bit ...etc etc.. Op op = Algebra.compile(query); // Get the algebra for the query
public static Query transform(Query query, Map<Node, BinaryRelation> virtualPredicates, boolean cloneOnChange) { Element oldQueryPattern = query.getQueryPattern(); Element newQueryPattern = transform(oldQueryPattern, virtualPredicates); Query result; if(oldQueryPattern == newQueryPattern) { result = query; } else { result = cloneOnChange ? query.cloneQuery() : query; result.setQueryPattern(newQueryPattern); } return result; }
@Override public ExtendedIterator<Quad> getQuads() { Query q = qb.build(); QuadIteratorBuilder builder = new QuadIteratorBuilder(defaultGraphName); q.getQueryPattern().visit(builder); return builder.iter; }
@Override public void setVars(Map<Var, Node> values) { if (values.isEmpty()) { return; } Element e = query.getQueryPattern(); if (e != null) { ElementRewriter r = new ElementRewriter(values); e.visit(r); query.setQueryPattern(r.getResult()); } valuesHandler.setVars(values); }
@Override public void visit(ElementSubQuery el) { WhereHandler other = new WhereHandler( el.getQuery() ); other.build(); if (other.getElement() != el.getQuery().getQueryPattern()) { el.getQuery().setQueryPattern( other.getQuery().getQueryPattern() ); } result = el; }
@Override public void visit(ElementSubQuery el) { WhereHandler other = new WhereHandler( el.getQuery() ); other.build(); if (other.getElement() != el.getQuery().getQueryPattern()) { el.getQuery().setQueryPattern( other.getQuery().getQueryPattern() ); } result = el; }
private static void test3(String pattern, String... joinForm) { Query q = QueryFactory.create("PREFIX : <http://example/> SELECT * "+pattern) ; Op op = Algebra.compile(q.getQueryPattern()) ; test(op, joinForm) ; }
public static Element toElement(Quad quad, Set<Set<Expr>> cnf) { ExprList exprs = CnfUtils.toExprList(cnf); BasicPattern bp = new BasicPattern(); bp.add(quad.asTriple()); OpQuadPattern opA = new OpQuadPattern(quad.getGraph(), bp); Op opB = OpFilter.filterBy(exprs, opA); Query query = OpAsQuery.asQuery(opB); Element result = query.getQueryPattern(); return result; }
private static void test4(String pattern, String... joinForm) { Query q = QueryFactory.create("PREFIX : <http://example/> SELECT * "+pattern) ; Op op = Algebra.compile(q.getQueryPattern()) ; op = Algebra.toQuadForm(op) ; test(op, joinForm) ; }
@Test public void bNodeSPARQL_Query_1() { String qs = "SELECT * { ?s ?p <_:ABC>}"; Query query = QueryFactory.create(qs); Element el = ((ElementGroup)query.getQueryPattern()).get(0); ElementPathBlock epb = (ElementPathBlock)el; TriplePath tp = epb.getPattern().get(0); Triple t = tp.asTriple(); assertEquals("ABC", t.getObject().getBlankNodeLabel()); }