@Override public void meet(final Filter node) { filterSet.add(node); node.getArg().visit(this); }
@Override public void meet(Filter node) { // Skip boolean constraints node.getArg().visit(this); }
@Override public void meet(Filter node) { nodeCount += 1; node.getArg().visit(this); }
private TupleExpr findNotFilter(TupleExpr node) { if (node instanceof Filter) { return findNotFilter(((Filter)node).getArg()); } return node; }
@Override public void meet(Filter node) { nodeCount += 1; node.getArg().visit(this); }
@Override public void meet(Filter node) { node.getArg().visit(this); }
@Override public void meet(Filter node) { Set<QueryModelNode> eSet = getQNodes(node); if (eSet.containsAll(sSet)) { if (eSet.equals(sSet)) { node.replaceWith(set); indexPlaced = true; return; } else { node.getArg().visit(this); } } }
@Override public void meet(Filter node) { spFilterSet.add(node.getCondition()); node.getArg().visit(this); }
protected void relocate(final Filter filter, final TupleExpr newFilterArg) { if (!filter.getArg().equals(newFilterArg)) { if (filter.getParentNode() != null) { // Remove filter from its original location filter.replaceWith(filter.getArg()); } // Insert filter at the new location newFilterArg.replaceWith(filter); filter.setArg(newFilterArg); } } }
@Override public void meet(EmptySet node) { if (filter.getParentNode() != null) { // Remove filter from its original location filter.replaceWith(filter.getArg()); } }
@Override public double getCardinality(final TupleExpr expr) { if (expr instanceof Filter) { final Filter f = (Filter) expr; // filters must make sets smaller return super.getCardinality(f.getArg()) / 10; } return super.getCardinality(expr); }
protected void relocate(Filter filter, TupleExpr newFilterArg) { if (filter.getArg() != newFilterArg) { if (filter.getParentNode() != null) { // Remove filter from its original location filter.replaceWith(filter.getArg()); } // Insert filter at the new location newFilterArg.replaceWith(filter); filter.setArg(newFilterArg); } } }
public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(Filter filter, BindingSet bindings) throws QueryEvaluationException { CloseableIteration<BindingSet, QueryEvaluationException> result; result = this.evaluate(filter.getArg(), bindings); result = new FilterIterator(filter, result, this); return result; }
@Override public void meet(final EmptySet node) { if (filter.getParentNode() != null) { // Remove filter from its original location filter.replaceWith(filter.getArg()); } }
@Override public void meet(Filter filterNode) throws Exception { filterNode.visitChildren(this); if (filterNode.getArg() instanceof AggregationPipelineQueryNode && filterNode.getParentNode() != null) { AggregationPipelineQueryNode pipelineNode = (AggregationPipelineQueryNode) filterNode.getArg(); if (pipelineNode.filter(filterNode.getCondition())) { filterNode.replaceWith(pipelineNode); } } } }
@Override public void meet(final Filter n) { final ValueExpr cond = n.getCondition(); final boolean nopar = cond instanceof Exists || cond instanceof Not && ((Not) cond).getArg() instanceof Exists; emit(n.getArg()); if (!(n.getArg() instanceof SingletonSet)) { newline(); } emit("FILTER ").emit(cond, !nopar); }
@Override public void meet(Filter node) { FilterVarReNamer fvr = new FilterVarReNamer(varChanges, valMap); node.getCondition().visit(fvr); node.getArg().visit(this); }
private void renameVar(Var oldVar, Var newVar, Filter filter) { filter.getArg().visit(new VarRenamer(oldVar, newVar)); // TODO: skip this step if old variable name is not used // Replace SameTerm-filter with an Extension, the old variable name // might still be relevant to nodes higher in the tree Extension extension = new Extension(filter.getArg()); extension.addElement(new ExtensionElem(new Var(newVar.getName()), oldVar.getName())); filter.replaceWith(extension); }
@Override public void meet(Filter node) throws RDFHandlerException { hasGroup = false; node.getArg().visit(this); if (!hasGroup) { listEntry(); handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.FILTER_CLASS)); meet(node.getCondition()); } }
private void renameVar(Var oldVar, Var newVar, Filter filter) { filter.getArg().visit(new VarRenamer(oldVar.getName(), newVar.getName())); // TODO: skip this step if old variable name is not used // Replace SameTerm-filter with an Extension, the old variable name // might still be relevant to nodes higher in the tree Extension extension = new Extension(filter.getArg()); extension.addElement(new ExtensionElem(new Var(newVar.getName()), oldVar.getName())); filter.replaceWith(extension); }