@Override public Element transform(ElementSubQuery el, Query query) { if ( el.getQuery() == query ) return el ; return new ElementSubQuery(query) ; } }
@Override public void visit(ElementSubQuery el) { Query newQuery = QueryTransformOps.transform(el.getQuery(), transform, exprTransform) ; push(new ElementSubQuery(newQuery)) ; }
@Override public void visit(ElementSubQuery el) { Query newQuery = QueryTransformOps.transform(el.getQuery(), transform, exprTransform) ; push(new ElementSubQuery(newQuery)) ; }
public static MappedConcept<DatasetGraph> createMappedConcept2(Query query) { QuadPattern qp = new QuadPattern(); qp.add(new Quad(Vars.g, Vars.s, Vars.p, Vars.o)); Agg<DatasetGraph> agg = new AggDatasetGraph(qp); Concept concept = new Concept(new ElementSubQuery(query), Vars.x); MappedConcept<DatasetGraph> result = new MappedConcept<DatasetGraph>(concept, agg); return result; }
private void convertAsSubQuery(Op op) { Converter subConverter = new Converter(op) ; ElementSubQuery subQuery = new ElementSubQuery(subConverter.convert()) ; ElementGroup g = currentGroup() ; g.addElement(subQuery) ; }
public static MappedConcept<Graph> createMappedConcept(Query query) { // TODO We need to include the triple direction in var ?z BasicPattern bgp = new BasicPattern(); bgp.add(new Triple(Vars.s, Vars.p, Vars.o)); Template template = new Template(bgp); //Agg<Map<Node, Graph>> agg = AggMap.create(new BindingMapperExpr(new ExprVar(Vars.g)), new AggGraph(template)); Agg<Graph> agg = new AggGraph(template, Vars.z); Concept concept = new Concept(new ElementSubQuery(query), Vars.x); MappedConcept<Graph> result = new MappedConcept<Graph>(concept, agg); return result; }
@Override public void visit(ElementSubQuery el) { Query q = AbstractQueryBuilder.clone(el.getQuery()); push(new ElementSubQuery(AbstractQueryBuilder.rewrite( q, values))); }
public static Query wrapAsSubQuery(Query query) { Element esq = new ElementSubQuery(query); Query result = new Query(); result.setQuerySelectType(); result.setQueryResultStar(true); result.setQueryPattern(esq); return result; }
@Override public void visit(ElementSubQuery el) { Query q = AbstractQueryBuilder.clone(el.getQuery()); push(new ElementSubQuery(AbstractQueryBuilder.rewrite( q, values))); }
public static Query wrapAsSubQuery(Query query, Var v) { Element esq = new ElementSubQuery(query); Query result = new Query(); result.setQuerySelectType(); result.getProject().add(v); result.setQueryPattern(esq); return result; }
/** * Create a service node with a union where the first member is to be interpreted as the * pattern that should be used for caching, and the second argument is the pattern to be * executed. * * @param patternOp * @param serviceNode * @param executionOp * @return */ public static OpService wrapWithServiceOld(Op patternOp, Node serviceNode, Op executionOp) { boolean silent = false; OpUnion union = new OpUnion(patternOp, executionOp); Query subQuery = OpAsQuery.asQuery(union); Element subElement = new ElementSubQuery(subQuery); ElementService elt = new ElementService(serviceNode, subElement, silent); OpService result = new OpService(serviceNode, union, elt, silent); return result; }
public static Element limitElement(Element e, long limit) { Query subQuery = new Query(); subQuery.setQuerySelectType(); subQuery.setQueryResultStar(true); subQuery.setQueryPattern(e); subQuery.setLimit(limit); Element result = new ElementSubQuery(subQuery); return result; }
public static Query createSubQuery(Query query, Var var) { Element esq = new ElementSubQuery(query); Query result = new Query(); result.setQuerySelectType(); result.getProject().add(var); result.setQueryPattern(esq); return result; }
public static Element limitElement(Element e, long limit) { Query subQuery = new Query(); subQuery.setQuerySelectType(); subQuery.setQueryResultStar(true); subQuery.setQueryPattern(e); subQuery.setLimit(limit); Element result = new ElementSubQuery(subQuery); return result; }
/** * Create a service node with a union where the first member is to be interpreted as the * pattern that should be used for caching, and the second argument is the pattern to be * executed. * * @param patternOp * @param serviceNode * @param executionOp * @return */ public static OpService wrapWithServiceOld(Op patternOp, Node serviceNode, Op executionOp) { boolean silent = false; OpUnion union = new OpUnion(patternOp, executionOp); Query subQuery = OpAsQuery.asQuery(union); Element subElement = new ElementSubQuery(subQuery); ElementService elt = new ElementService(serviceNode, subElement, silent); OpService result = new OpService(serviceNode, union, elt, silent); return result; }
final public Element GroupGraphPattern() throws ParseException { Element el = null ; Token t ; t = jj_consume_token(LBRACE); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SELECT: startSubSelect(beginLine, beginColumn) ; SubSelect(); Query q = endSubSelect(beginLine, beginColumn) ; el = new ElementSubQuery(q) ; break; default: jj_la1[63] = jj_gen; el = GroupGraphPatternSub(); } jj_consume_token(RBRACE); {if (true) return el ;} throw new Error("Missing return statement in function"); }
final public Element GroupGraphPattern() throws ParseException { Element el = null ; Token t ; t = jj_consume_token(LBRACE); int beginLine = t.beginLine; int beginColumn = t.beginColumn; t = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SELECT: startSubSelect(beginLine, beginColumn) ; SubSelect(); Query q = endSubSelect(beginLine, beginColumn) ; el = new ElementSubQuery(q) ; break; default: jj_la1[72] = jj_gen; el = GroupGraphPatternSub(); } jj_consume_token(RBRACE); {if (true) return el ;} throw new Error("Missing return statement in function"); }
public static Query createQueryCount(Query query, Var outputVar, Long itemLimit, Long rowLimit) { Query subQuery = query.cloneQuery(); if(rowLimit != null) { subQuery.setDistinct(false); subQuery.setLimit(rowLimit); subQuery = QueryGenerationUtils.wrapAsSubQuery(subQuery); subQuery.setDistinct(true); } if(itemLimit != null) { subQuery.setLimit(itemLimit); } Element esq = new ElementSubQuery(subQuery); Query result = new Query(); Expr aggCount = result.allocAggregate(new AggCount()); result.setQuerySelectType(); result.getProject().add(outputVar, aggCount); result.setQueryPattern(esq); return result; }
public static Query createQueryCount(Concept concept, Long itemLimit, Long rowLimit, Var resultVar) { Query subQuery = concept.asQuery(); if(rowLimit != null) { subQuery.setDistinct(false); subQuery.setLimit(rowLimit); subQuery = createSubQuery(subQuery, concept.getVar()); subQuery.setDistinct(true); } if(itemLimit != null) { subQuery.setLimit(itemLimit); } Element esq = new ElementSubQuery(subQuery); Query result = new Query(); result.setQuerySelectType(); result.getProject().add(resultVar, new ExprAggregator(concept.getVar(), new AggCount())); result.setQueryPattern(esq); return result; }
public static Query createQueryCount(Concept concept, Var outputVar, Long itemLimit, Long rowLimit) { Query subQuery = createQueryList(concept); if(rowLimit != null) { subQuery.setDistinct(false); subQuery.setLimit(rowLimit); subQuery = QueryGenerationUtils.wrapAsSubQuery(subQuery, concept.getVar()); subQuery.setDistinct(true); } if(itemLimit != null) { subQuery.setLimit(itemLimit); } Element esq = new ElementSubQuery(subQuery); Query result = new Query(); result.setQuerySelectType(); result.getProject().add(outputVar, new ExprAggregator(null, new AggCount()));//new ExprAggregator(concept.getVar(), new AggCount())); result.setQueryPattern(esq); return result; }