/** * Remove any empty (non-GRAPH) groups (normal groups and UNIONs, but not * GRAPH {}). */ static private void removeEmptyChildGroups(final GraphPatternGroup<?> op) { int n = op.arity(); for (int i = 0; i < n; i++) { final BOp child = op.get(i); if (!(child instanceof GroupNodeBase<?>)) continue; if (((GroupNodeBase<?>) child).getContext() != null) { /* * Do not prune GRAPH ?g {} or GRAPH uri {}. Those constructions * have special semantics. */ continue; } if (child.arity() == 0) { // remove an empty child group. op.removeArg(child); // one less child to visit. n--; } } }
final int arity = aGroup.arity();
/** * Remove any empty (non-GRAPH) groups (normal groups and UNIONs, but not * GRAPH {}). */ static private void removeEmptyChildGroups(final GraphPatternGroup<?> op) { int n = op.arity(); for (int i = 0; i < n; i++) { final BOp child = op.get(i); if (!(child instanceof GroupNodeBase<?>)) continue; if (((GroupNodeBase<?>) child).getContext() != null) { /* * Do not prune GRAPH ?g {} or GRAPH uri {}. Those constructions * have special semantics. */ continue; } if (child.arity() == 0) { // remove an empty child group. op.removeArg(child); // one less child to visit. n--; } } }
private void doRecursiveRewrite(final AST2BOpContext context, final StaticAnalysis sa, final QueryRoot queryRoot, final GraphPatternGroup<IGroupMemberNode> group) { final int arity = group.arity(); for (int i = 0; i < arity; i++) { final BOp child = (BOp) group.get(i); if (child instanceof GraphPatternGroup<?>) { // Recursion into groups. doRecursiveRewrite(context, sa, queryRoot, ((GraphPatternGroup<IGroupMemberNode>) child)); } else if (child instanceof SubqueryRoot) { // Recursion into subqueries. final SubqueryRoot subqueryRoot = (SubqueryRoot) child; doRecursiveRewrite(context, sa, queryRoot, subqueryRoot.getWhereClause()); // rewrite the sub-select doSelectQuery(context, sa, queryRoot, (SubqueryBase) child); } else if (child instanceof ServiceNode) { // Do not rewrite things inside of a SERVICE node. continue; } } }
private void doRecursiveRewrite(final AST2BOpContext context, final StaticAnalysis sa, final GraphPatternGroup<IGroupMemberNode> group) { final int arity = group.arity(); for (int i = 0; i < arity; i++) { final BOp child = (BOp) group.get(i); if (child instanceof GraphPatternGroup<?>) { // Recursion into groups. doRecursiveRewrite(context, sa, ((GraphPatternGroup<IGroupMemberNode>) child)); } else if (child instanceof SubqueryRoot) { // Recursion into subqueries. final SubqueryRoot subqueryRoot = (SubqueryRoot) child; doRecursiveRewrite(context, sa, subqueryRoot.getWhereClause()); // rewrite the sub-select doSelectQuery(context, sa, (SubqueryBase) child); } else if (child instanceof ServiceNode) { // Do not rewrite things inside of a SERVICE node. continue; } } }
private void doRecursiveRewrite(final AST2BOpContext context, final StaticAnalysis sa, final GraphPatternGroup<IGroupMemberNode> group) { final int arity = group.arity(); for (int i = 0; i < arity; i++) { final BOp child = (BOp) group.get(i); if (child instanceof GraphPatternGroup<?>) { // Recursion into groups. doRecursiveRewrite(context, sa, ((GraphPatternGroup<IGroupMemberNode>) child)); } else if (child instanceof SubqueryRoot) { // Recursion into subqueries. final SubqueryRoot subqueryRoot = (SubqueryRoot) child; doRecursiveRewrite(context, sa, subqueryRoot.getWhereClause()); // rewrite the sub-select doSelectQuery(context, sa, (SubqueryBase) child); } else if (child instanceof ServiceNode) { // Do not rewrite things inside of a SERVICE node. continue; } } }
final int arity = group.arity();
private void doRecursiveRewrite(final AST2BOpContext context, final StaticAnalysis sa, final QueryRoot queryRoot, final GraphPatternGroup<IGroupMemberNode> group) { final int arity = group.arity(); for (int i = 0; i < arity; i++) { final BOp child = (BOp) group.get(i); if (child instanceof GraphPatternGroup<?>) { // Recursion into groups. doRecursiveRewrite(context, sa, queryRoot, ((GraphPatternGroup<IGroupMemberNode>) child)); } else if (child instanceof SubqueryRoot) { // Recursion into subqueries. final SubqueryRoot subqueryRoot = (SubqueryRoot) child; doRecursiveRewrite(context, sa, queryRoot, subqueryRoot.getWhereClause()); // rewrite the sub-select doSelectQuery(context, sa, queryRoot, (SubqueryBase) child); } else if (child instanceof ServiceNode) { // Do not rewrite things inside of a SERVICE node. continue; } } }
final int arity = group.arity();
for (int i = 0; i < op.arity(); i++) {
assertEquals(2, astContainer.getOptimizedAST().getWhereClause().arity());
assertEquals(2, astContainer.getOptimizedAST().getWhereClause().arity());
GraphPatternGroup<?> gp = qr.getGraphPattern(); int ivsCnt = 0; for (int i=0; i<gp.arity(); i++) { BOp bop = gp.get(i); if (bop instanceof StatementPatternNode && bop.get(2) instanceof ConstantNode) {
GraphPatternGroup<?> gp = qr.getGraphPattern(); int ivsCnt = 0; for (int i=0; i<gp.arity(); i++) { BOp bop = gp.get(i); if (bop instanceof StatementPatternNode && bop.get(2) instanceof ConstantNode) {
final BOp lastInGroup = whereClause.get(whereClause.arity()-1);
final BOp lastInGroup = whereClause.get(whereClause.arity()-1);
assertEquals(2, astContainer.getOptimizedAST().getWhereClause().arity());
GraphPatternGroup<?> gp = qr.getGraphPattern(); int ivsCnt = 0; for (int i=0; i<gp.arity(); i++) { BOp bop = gp.get(i); if (bop instanceof StatementPatternNode && bop.get(2) instanceof ConstantNode) {
GraphPatternGroup<?> gp = qr.getGraphPattern(); int ivsCnt = 0; for (int i=0; i<gp.arity(); i++) { BOp bop = gp.get(i); if (bop instanceof StatementPatternNode && bop.get(2) instanceof ConstantNode) {
final BOp lastInGroup = whereClause.get(whereClause.arity()-1);