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 ;
     }