You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/01/30 10:33:38 UTC
svn commit: r1562754 -
/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterPlacement.java
Author: andy
Date: Thu Jan 30 09:33:37 2014
New Revision: 1562754
URL: http://svn.apache.org/r1562754
Log:
Cleanup and review for JENA-627.
.buildFilter:
Remove unnecessary use of .remove
.insertAnyFilter:
Comment that it modifies the content of the Expr list passed in.
All callers take an outer copy before use of insertAnyFilter in a loop.
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterPlacement.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterPlacement.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterPlacement.java?rev=1562754&r1=1562753&r2=1562754&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterPlacement.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterPlacement.java Thu Jan 30 09:33:37 2014
@@ -66,6 +66,7 @@ public class TransformFilterPlacement ex
private Placement resultNoChange(Op original) {
return noChangePlacement ;
}
+
private boolean isNoChange(Placement placement) {
return placement == noChangePlacement ;
}
@@ -212,11 +213,10 @@ public class TransformFilterPlacement ex
ExprList unpushed = new ExprList();
for (Expr e : exprsIn) {
Set<Var> eVars = e.getVarsMentioned();
- if (vs.containsAll(eVars)) {
+ if (vs.containsAll(eVars))
pushed.add(e);
- } else {
+ else
unpushed.add(e);
- }
}
// Can't push anything into a filter around this BGP
@@ -531,9 +531,14 @@ public class TransformFilterPlacement ex
return OpVars.fixedVars(op) ;
}
- /** For any expression now in scope, wrap the op with a filter */
- private static Op insertAnyFilter(ExprList exprs, Set<Var> patternVarsScope, Op op) {
- for (Iterator<Expr> iter = exprs.iterator(); iter.hasNext();) {
+ /** For any expression now in scope, wrap the op with a filter.
+ * Caution - the ExprList is an in-out argument which is modified.
+ * This function modifies ExprList passed in to remove any filter
+ * that is placed.
+ */
+
+ private static Op insertAnyFilter(ExprList unplacedExprs, Set<Var> patternVarsScope, Op op) {
+ for (Iterator<Expr> iter = unplacedExprs.iterator(); iter.hasNext();) {
Expr expr = iter.next() ;
// Cache
Set<Var> exprVars = expr.getVarsMentioned() ;
@@ -542,7 +547,6 @@ public class TransformFilterPlacement ex
op = OpTable.unit() ;
op = OpFilter.filter(expr, op) ;
iter.remove() ;
- // Record expr.
}
}
return op ;
@@ -570,7 +574,6 @@ public class TransformFilterPlacement ex
if ( op == null )
op = OpTable.unit() ;
op = OpFilter.filter(expr, op) ;
- iter.remove() ;
}
return op ;
}