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 2016/08/26 22:46:43 UTC

[1/6] jena git commit: Comments and reformatting.

Repository: jena
Updated Branches:
  refs/heads/master e75a7b7c3 -> 7dc43e003


Comments and reformatting.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d1e1fc73
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d1e1fc73
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d1e1fc73

Branch: refs/heads/master
Commit: d1e1fc731047406b6ab1c4403d2a25099b4e19f4
Parents: e75a7b7
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 26 18:12:47 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 26 18:12:47 2016 +0100

----------------------------------------------------------------------
 .../apache/jena/sparql/algebra/op/OpFilter.java | 71 ++++++++++----------
 1 file changed, 35 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/d1e1fc73/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
index 8d373d0..68f70b9 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
@@ -31,65 +31,67 @@ public class OpFilter extends Op1
     protected ExprList expressions ;
     
     /** Add expression - mutates an existing filter */  
-    public static Op filter(Expr expr, Op op)
-    {
+    public static Op filter(Expr expr, Op op) {
         OpFilter f = filter(op) ;
         f.getExprs().add(expr) ;
         return f ;
     }
-    
-    public static OpFilter filter(Op op)
-    {
+
+    /**
+     * Ensure that the algebra op is a filter. If the input is a filter, just return that,
+     * else create a filter with no expressions and this as the subOp
+     */
+    public static OpFilter filter(Op op) {
         if ( op instanceof OpFilter )
-           return (OpFilter)op ;
+            return (OpFilter)op ;
         else
-           return new OpFilter(op) ;  
+            return new OpFilter(op) ;
     }
-    
-    /** Add expressions - mutates an existing filter */  
-    public static Op filter(ExprList exprs, Op op)
-    {
+
+    /** Add expressions - mutates an existing filter */
+    public static Op filter(ExprList exprs, Op op) {
         if ( exprs.isEmpty() )
             return op ;
         OpFilter f = filter(op) ;
         f.getExprs().addAll(exprs) ;
         return f ;
     }
-    
-    /** Make a OpFilter - guaranteed to return an OpFilter */
-    public static OpFilter filterDirect(ExprList exprs, Op op)
-    {
+
+    /** Make a OpFilter - guaranteed to return an fresh OpFilter */
+    public static OpFilter filterDirect(ExprList exprs, Op op) {
         return new OpFilter(exprs, op) ;
     }
 
-    
-    private OpFilter(Op sub)
-    { 
+    /** Make a OpFilter - guaranteed to return an fresh OpFilter */
+    public static OpFilter filterDirect(Expr expr, Op op) {
+        OpFilter f = new OpFilter(op) ;
+        f.getExprs().add(expr); 
+        return f ;
+    }
+
+    private OpFilter(Op sub) {
         super(sub) ;
         expressions = new ExprList() ;
     }
-    
-    private OpFilter(ExprList exprs , Op sub)
-    { 
+
+    private OpFilter(ExprList exprs, Op sub) {
         super(sub) ;
         expressions = exprs ;
     }
-    
-    /** Compress multiple filters:  (filter (filter (filter op)))) into one (filter op) */ 
-    public static OpFilter tidy(OpFilter base)
-    {
+
+    /** Compress multiple filters: (filter (filter (filter op)))) into one (filter op) */
+    public static OpFilter tidy(OpFilter base) {
         ExprList exprs = new ExprList() ;
-        
-        Op op = base ; 
-        while ( op instanceof OpFilter )
-        {
+
+        Op op = base ;
+        while (op instanceof OpFilter) {
             OpFilter f = (OpFilter)op ;
             exprs.addAll(f.getExprs()) ;
             op = f.getSubOp() ;
         }
         return new OpFilter(exprs, op) ;
     }
-    
+
     public ExprList getExprs() { return expressions ; }
     
     @Override
@@ -106,19 +108,16 @@ public class OpFilter extends Op1
     public Op1 copy(Op subOp)                { return new OpFilter(expressions, subOp) ; }
     
     @Override
-    public int hashCode()
-    {
+    public int hashCode() {
         return expressions.hashCode() ;
     }
-    
+
     @Override
-    public boolean equalTo(Op other, NodeIsomorphismMap labelMap)
-    {
+    public boolean equalTo(Op other, NodeIsomorphismMap labelMap) {
         if ( ! (other instanceof OpFilter) ) return false ;
         OpFilter opFilter = (OpFilter)other ;
         if ( ! expressions.equals(opFilter.expressions) )
             return false ;
-        
         return getSubOp().equalTo(opFilter.getSubOp(), labelMap) ;
     }
 }


[6/6] jena git commit: JENA-1226: Transform (filter (filter ...)) correctly.

Posted by an...@apache.org.
JENA-1226: Transform (filter (filter ...)) correctly.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/7dc43e00
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/7dc43e00
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/7dc43e00

Branch: refs/heads/master
Commit: 7dc43e003f4fb2db65c46d0ed7e1ca633a28ab07
Parents: fcc9ced
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 26 23:12:24 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 26 23:12:24 2016 +0100

----------------------------------------------------------------------
 .../algebra/walker/ApplyTransformVisitor.java   | 30 ++++++++++++++++----
 .../algebra/optimize/TestTransformFilters.java  | 27 ++++++++++++++++++
 2 files changed, 51 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/7dc43e00/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
index 5020647..7953c51 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/walker/ApplyTransformVisitor.java
@@ -204,7 +204,17 @@ public class ApplyTransformVisitor implements OpVisitorByTypeAndExpr, ExprVisito
     private ExprList collect(ExprList exprList) {
         if ( exprList == null )
             return null ;
-        return new ExprList(collect(exprList.size())) ;
+        List<Expr> x = collect(exprList.size()) ;
+        boolean changed = false ;
+        for ( int i = 0 ; i < x.size() ; i++ ) {
+            if ( x.get(i) != exprList.get(i) ) {
+                changed = true ;
+                break ;
+            }
+        }
+        if ( ! changed )
+            return exprList ;
+        return new ExprList(x) ;
     }
     
     private ExprList collect(List<Expr> exprList) {
@@ -324,14 +334,22 @@ public class ApplyTransformVisitor implements OpVisitorByTypeAndExpr, ExprVisito
         Op subOp = null ;
         if ( opFilter.getSubOp() != null )
             subOp = pop(opStack) ;
-        boolean changed = (opFilter.getSubOp() != subOp) ;
-
         ExprList ex = opFilter.getExprs() ;
+        if ( ex == null || ex.isEmpty() ) {
+            // No expressions.
+            // Doesn't normally happen but this code is safe in these cases.
+            push(opStack, opFilter.apply(opTransform, subOp)) ;
+            return ;
+        }
+        // ex2 is the same length as ex. 
         ExprList ex2 = collect(ex) ;
-        
         OpFilter f = opFilter ;
-        if ( ex != ex2 )
-            f = (OpFilter)OpFilter.filter(ex2, subOp) ;
+        if ( ex != ex2 || opFilter.getSubOp() != subOp ) {
+            f = OpFilter.filterAlways(ex2, subOp) ;
+            // If we removed a layer of filter, then subOp needs changing
+            // else f-subOp is subOp anyway.    
+            subOp = f.getSubOp() ; 
+        }
         push(opStack, f.apply(opTransform, subOp)) ;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/7dc43e00/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformFilters.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformFilters.java b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformFilters.java
index 6aa3d24..e19289c 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformFilters.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestTransformFilters.java
@@ -19,7 +19,10 @@
 package org.apache.jena.sparql.algebra.optimize;
 
 import org.apache.jena.atlas.lib.StrUtils ;
+import org.apache.jena.sparql.algebra.Op ;
 import org.apache.jena.sparql.algebra.Transform ;
+import org.apache.jena.sparql.algebra.TransformCopy ;
+import org.apache.jena.sparql.algebra.op.OpTable ;
 import org.junit.Test ;
 
 /** Tests of transforms related to filters */
@@ -31,6 +34,30 @@ public class TestTransformFilters extends AbstractTestTransform
     private Transform t_implicitJoin = new TransformFilterImplicitJoin() ;
     private Transform t_implicitLeftJoin = new TransformImplicitLeftJoin() ;
 
+    @Test public void nested_01() {
+        testOp(
+               "(filter (?A) (filter (?B) (table unit)))", 
+               new TransformCopy(),
+               (String[])null) ;
+    }
+
+
+    @Test public void nested_02() {
+        Transform tableChanger = new TransformCopy() {
+            @Override
+            public Op transform(OpTable opTable) {
+                // Always a new object
+                return OpTable.create(opTable.getTable()) ;
+            }
+        };
+        
+        testOp(
+               "(filter (?A) (filter (?B) (table unit)))", 
+               tableChanger,
+               "(filter (exprlist ?B ?A) (table unit))") ;
+    }
+    
+    
 //    // JENA-1184 workaround - this optimization is current not active. 
 //    @Test public void equality04() {
 //        // Eliminate unused


[4/6] jena git commit: JENA-1194: Process HAVING clause in a syntax transform.

Posted by an...@apache.org.
JENA-1194: Process HAVING clause in a syntax transform.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ea3d0265
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ea3d0265
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ea3d0265

Branch: refs/heads/master
Commit: ea3d0265233865972b0c83b46964ede7fd53381e
Parents: 770794c
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 26 21:27:53 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 26 21:27:53 2016 +0100

----------------------------------------------------------------------
 .../syntaxtransform/QueryTransformOps.java      | 27 ++++++++++++++++----
 1 file changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/ea3d0265/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
index cc82464..b08641a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/syntaxtransform/QueryTransformOps.java
@@ -18,6 +18,7 @@
 
 package org.apache.jena.sparql.syntax.syntaxtransform ;
 
+import java.util.List ;
 import java.util.Map ;
 
 import org.apache.jena.graph.Node ;
@@ -31,7 +32,10 @@ import org.apache.jena.sparql.core.DatasetDescription ;
 import org.apache.jena.sparql.core.Prologue ;
 import org.apache.jena.sparql.core.Var ;
 import org.apache.jena.sparql.core.VarExprList ;
-import org.apache.jena.sparql.expr.* ;
+import org.apache.jena.sparql.expr.Expr ;
+import org.apache.jena.sparql.expr.ExprTransform ;
+import org.apache.jena.sparql.expr.ExprTransformer ;
+import org.apache.jena.sparql.expr.ExprVar ;
 import org.apache.jena.sparql.graph.NodeTransform ;
 import org.apache.jena.sparql.syntax.Element ;
 import org.apache.jena.sparql.syntax.ElementGroup ;
@@ -49,8 +53,12 @@ public class QueryTransformOps {
     public static Query transform(Query query, ElementTransform transform, ExprTransform exprTransform) {
         Query q2 = QueryTransformOps.shallowCopy(query) ;
 
+        // "Shallow copy with transform."
         transformVarExprList(q2.getProject(), exprTransform) ;
         transformVarExprList(q2.getGroupBy(), exprTransform) ;
+        transformExprList(q2.getHavingExprs(), exprTransform) ;
+        //?? DOES NOT WORK: transformExprListAgg(q2.getAggregators(), exprTransform) ;
+        // ?? 
         // Nothing to do about ORDER BY - leave to sort by that variable.
         
 //        if ( q2.hasHaving() ) {}
@@ -73,10 +81,19 @@ public class QueryTransformOps {
         return transform(query, transform, noop) ;
     }
 
-    // Mutates the VarExprList
-    private static void transformVarExprList(VarExprList varExprList, ExprTransform exprTransform)
-    // , final Map<Var, Node> substitutions)
-    {
+    // ** Mutates the List
+    private static void transformExprList(List<Expr> exprList, ExprTransform exprTransform) {
+        for ( int i = 0 ; i < exprList.size() ; i++ ) {
+            Expr e1 = exprList.get(0) ;
+            Expr e2 = ExprTransformer.transform(exprTransform, e1) ;
+            if ( e2 == null || e2 == e1 )
+                continue ;
+            exprList.set(i, e2) ;
+        }
+    }
+
+    // ** Mutates the VarExprList
+    private static void transformVarExprList(VarExprList varExprList, ExprTransform exprTransform) {
         Map<Var, Expr> map = varExprList.getExprs() ;
 
         for (Var v : varExprList.getVars()) {


[3/6] jena git commit: Unnecessary explicit generic.

Posted by an...@apache.org.
Unnecessary explicit generic.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/770794ca
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/770794ca
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/770794ca

Branch: refs/heads/master
Commit: 770794ca07b0f7d74b845dd85380a8823b0fc051
Parents: c4039d4
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 26 18:13:54 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 26 18:13:54 2016 +0100

----------------------------------------------------------------------
 jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/770794ca/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
index 7662e0c..a0c8863 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprList.java
@@ -41,7 +41,7 @@ public class ExprList implements Iterable<Expr>
     } 
     
     /** Empty, immutable ExprList */
-    public static final ExprList emptyList = new ExprList(Collections.<Expr> emptyList()) ;
+    public static final ExprList emptyList = new ExprList(Collections.emptyList()) ;
     
     public ExprList() { expressions = new ArrayList<Expr>() ; }
     


[5/6] jena git commit: Different flavours of making OpFilters from expressions and subOp.

Posted by an...@apache.org.
Different flavours of making OpFilters from expressions and subOp.

Rename of OpFilter.filter to OpFilter.filterBy.
Describe each form.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/fcc9cede
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/fcc9cede
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/fcc9cede

Branch: refs/heads/master
Commit: fcc9cedec5d7fd7d56688176b8486be51eb75a32
Parents: ea3d026
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 26 21:46:23 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 26 21:52:54 2016 +0100

----------------------------------------------------------------------
 .../apache/jena/sparql/algebra/op/OpFilter.java | 21 ++++++++++++++++----
 .../optimize/TransformEliminateAssignments.java |  2 +-
 .../algebra/optimize/TransformExpandOneOf.java  |  2 +-
 .../optimize/TransformFilterDisjunction.java    |  2 +-
 .../optimize/TransformFilterEquality.java       |  4 ++--
 .../optimize/TransformFilterImplicitJoin.java   |  4 ++--
 .../optimize/TransformFilterInequality.java     |  4 ++--
 .../optimize/TransformFilterPlacement.java      | 14 ++++++-------
 .../algebra/optimize/TransformJoinStrategy.java |  2 +-
 .../org/apache/jena/sparql/core/Substitute.java |  2 +-
 .../jena/sparql/graph/NodeTransformOp.java      |  2 +-
 .../jena/sparql/sse/builders/BuilderOp.java     |  2 +-
 .../arq/querybuilder/rewriters/OpRewriter.java  |  2 +-
 .../permissions/query/rewriter/OpRewriter.java  |  2 +-
 .../apache/jena/sdb/layout2/QueryCompiler2.java |  2 +-
 15 files changed, 40 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
index 68f70b9..aafffb8 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/op/OpFilter.java
@@ -41,21 +41,34 @@ public class OpFilter extends Op1
      * Ensure that the algebra op is a filter. If the input is a filter, just return that,
      * else create a filter with no expressions and this as the subOp
      */
-    public static OpFilter filter(Op op) {
+    private static OpFilter filter(Op op) {
         if ( op instanceof OpFilter )
             return (OpFilter)op ;
         else
             return new OpFilter(op) ;
     }
 
-    /** Add expressions - mutates an existing filter */
-    public static Op filter(ExprList exprs, Op op) {
-        if ( exprs.isEmpty() )
+    /** Combine an ExprList with an Op so that the expressions filter the Op.
+     * If the exprs are empty, return the Op.  
+     * If the op is already a OpFilter, merge the expressions into the filters existintg expressions.  
+     * Else create a new OpFilter with the expressions and subOp. 
+     */ 
+    public static Op filterBy(ExprList exprs, Op op) {
+        if ( exprs == null || exprs.isEmpty() )
             return op ;
         OpFilter f = filter(op) ;
         f.getExprs().addAll(exprs) ;
         return f ;
     }
+    
+    /** Create a OpFilter with the expressions and subOp.
+     * If subOp is a filter, combine expressions (de-layer).  
+     */
+    public static OpFilter filterAlways(ExprList exprs, Op subOp) {
+        OpFilter f = filter(subOp) ;
+        f.getExprs().addAll(exprs) ;
+        return f ;
+    }
 
     /** Make a OpFilter - guaranteed to return an fresh OpFilter */
     public static OpFilter filterDirect(ExprList exprs, Op op) {

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
index 2af889d..162b5cd 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformEliminateAssignments.java
@@ -190,7 +190,7 @@ public class TransformEliminateAssignments extends TransformCopy {
 
         // Create a new filter if we've substituted any expressions
         if (modified) {
-            return OpFilter.filter(exprs, subOp);
+            return OpFilter.filterBy(exprs, subOp);
         }
 
         return super.transform(opFilter, subOp);

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformExpandOneOf.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformExpandOneOf.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformExpandOneOf.java
index 16df28c..689c40e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformExpandOneOf.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformExpandOneOf.java
@@ -40,7 +40,7 @@ public class TransformExpandOneOf extends TransformCopy
         ExprList exprList2 = process(exprList);
         if ( exprList2 == null )
             return super.transform(opFilter, subOp);
-        Op opFilter2 = OpFilter.filter(exprList2, subOp);
+        Op opFilter2 = OpFilter.filterBy(exprList2, subOp);
         return opFilter2;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterDisjunction.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterDisjunction.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterDisjunction.java
index 7ca96f6..66c03da 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterDisjunction.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterDisjunction.java
@@ -102,7 +102,7 @@ public class TransformFilterDisjunction extends TransformCopy
         
         
         // Put the non-disjunctions outside the disjunction and the pattern rewrite. 
-        Op opOther = OpFilter.filter(exprList2, newOp) ;
+        Op opOther = OpFilter.filterBy(exprList2, newOp) ;
         if ( opOther instanceof OpFilter) {
             return opOther ;
         }

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterEquality.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterEquality.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterEquality.java
index d5e4d93..1a7222a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterEquality.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterEquality.java
@@ -137,7 +137,7 @@ public class TransformFilterEquality extends TransformCopy {
             Op op = rebuild((Op2) subOp, ops);
             // Put all filters - either we optimized, or we left alone.
             // Either way, the complete set of filter expressions.
-            op = OpFilter.filter(exprs, op);
+            op = OpFilter.filterBy(exprs, op);
             return op;
         }
 
@@ -151,7 +151,7 @@ public class TransformFilterEquality extends TransformCopy {
 
         // ---- Place any filter expressions around the processed sub op.
         if (remaining.size() > 0)
-            op = OpFilter.filter(remaining, op);
+            op = OpFilter.filterBy(remaining, op);
         return op;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterImplicitJoin.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterImplicitJoin.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterImplicitJoin.java
index 93bceba..d264f28 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterImplicitJoin.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterImplicitJoin.java
@@ -137,7 +137,7 @@ public class TransformFilterImplicitJoin extends TransformCopy {
             op = rebuild((Op2) subOp, ops);
             // Put all filters - either we optimized, or we left alone.
             // Either way, the complete set of filter expressions.
-            op = OpFilter.filter(exprs, op);
+            op = OpFilter.filterBy(exprs, op);
             return op;
         }
         
@@ -163,7 +163,7 @@ public class TransformFilterImplicitJoin extends TransformCopy {
 
         // ---- Place any filter expressions around the processed sub op.
         if (remaining.size() > 0)
-            op = OpFilter.filter(remaining, op);
+            op = OpFilter.filterBy(remaining, op);
         return op;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterInequality.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterInequality.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterInequality.java
index 3adb166..3ffeb4f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterInequality.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterInequality.java
@@ -142,7 +142,7 @@ public class TransformFilterInequality extends TransformCopy {
             op = rebuild((Op2) subOp, ops);
             // Put all filters - either we optimized, or we left alone.
             // Either way, the complete set of filter expressions.
-            op = OpFilter.filter(exprs, op);
+            op = OpFilter.filterBy(exprs, op);
             return op;
         }
 
@@ -155,7 +155,7 @@ public class TransformFilterInequality extends TransformCopy {
 
         // ---- Place any filter expressions around the processed sub op.
         if (remaining.size() > 0)
-            op = OpFilter.filter(remaining, op);
+            op = OpFilter.filterBy(remaining, op);
         return op;
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
index 3384e08..43c15ed 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformFilterPlacement.java
@@ -167,7 +167,7 @@ public class TransformFilterPlacement extends TransformCopy {
         Op op = buildFilter(placement) ;
         if ( exprs2 != null )
             // Add back the non-deterministic expressions
-            op = OpFilter.filter(exprs2, op );
+            op = OpFilter.filterBy(exprs2, op );
         return op ;
     }
 
@@ -258,7 +258,7 @@ public class TransformFilterPlacement extends TransformCopy {
         // If op is also a filter, a single filter is created with
         // exprsInner now after placed filters.
         // ("after" means later in the exprList of the filter).
-        Op f = OpFilter.filter(exprsInner, op) ;
+        Op f = OpFilter.filterBy(exprsInner, op) ;
         return new Placement(f, exprsOuter) ;
     }
 
@@ -323,7 +323,7 @@ public class TransformFilterPlacement extends TransformCopy {
         if (pushed.size() == 0) 
             return noChangePlacement ;
         // Safe to place some conditions around the BGP
-        Op opx = OpFilter.filter(pushed, new OpBGP(pattern)) ;
+        Op opx = OpFilter.filterBy(pushed, new OpBGP(pattern)) ;
         return result(opx, unpushed);
 
     }
@@ -408,7 +408,7 @@ public class TransformFilterPlacement extends TransformCopy {
         if (pushed.size() == 0) return null;
 
         // Safe to place some conditions around the quadpattern
-        return new Placement(OpFilter.filter(pushed, new OpQuadPattern(graphNode, pattern)), unpushed);
+        return new Placement(OpFilter.filterBy(pushed, new OpQuadPattern(graphNode, pattern)), unpushed);
     }
 
     /** Find the current OpQuadPattern, or return null. */
@@ -709,7 +709,7 @@ public class TransformFilterPlacement extends TransformCopy {
         
         Op result = input.copy(subOp) ;
         if ( ! wrapping.isEmpty() )
-            result = OpFilter.filter(wrapping, result) ;
+            result = OpFilter.filterBy(wrapping, result) ;
         return result(result, unplaced) ; 
     }
 
@@ -752,13 +752,13 @@ public class TransformFilterPlacement extends TransformCopy {
             // return a placement for the unpushed. 
             Op op1 = input.getSubOp() ;
             if ( pushed != null &&! pushed.isEmpty() )
-                op1 = OpFilter.filter(pushed, op1) ;
+                op1 = OpFilter.filterBy(pushed, op1) ;
             Op op2 = input.copy(op1) ;
             return result(op2, unpushed) ;
         }
         // We did make changes below.  Add filter for these (which includes the 
         // "pushed" at this level, now in the p.op or left in p.unplaced.
-        Op op_a = OpFilter.filter(subPlacement.unplaced, subPlacement.op) ;
+        Op op_a = OpFilter.filterBy(subPlacement.unplaced, subPlacement.op) ;
         op_a =  input.copy(op_a) ;
         return result(op_a, unpushed) ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformJoinStrategy.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformJoinStrategy.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformJoinStrategy.java
index 4f4dc6b..7765bee 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformJoinStrategy.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformJoinStrategy.java
@@ -76,7 +76,7 @@ public class TransformJoinStrategy extends TransformCopy
           // a filter over the RHS pattern. 
           
           if (opLeftJoin.getExprs() != null )
-              opRight = OpFilter.filter(opLeftJoin.getExprs(), opRight) ;
+              opRight = OpFilter.filterBy(opLeftJoin.getExprs(), opRight) ;
           return new OpConditional(opLeft, opRight) ;
       }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/core/Substitute.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/Substitute.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/Substitute.java
index 2583b8a..e27b4b1 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/Substitute.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/Substitute.java
@@ -222,7 +222,7 @@ public class Substitute {
             ExprList exprs = filter.getExprs().copySubstitute(binding);
             if ( exprs == filter.getExprs() )
                 return filter;
-            return OpFilter.filter(exprs, op);
+            return OpFilter.filterBy(exprs, op);
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
index c6c60af..ff3a74b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/NodeTransformOp.java
@@ -69,7 +69,7 @@ class NodeTransformOp extends TransformCopy
         ExprList exprList2 = NodeTransformLib.transform(transform, exprList) ;
         if ( exprList2 == exprList )
             return super.transform(opFilter, subOp) ;
-        return OpFilter.filter(exprList2, subOp) ;
+        return OpFilter.filterBy(exprList2, subOp) ;
     }        
     
     @Override public Op transform(OpBGP opBGP)

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java
index e177e3a..02c0af0 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java
@@ -307,7 +307,7 @@ public class BuilderOp
 
             Op op = build(itemOp.getList()) ;
             ExprList exprList = BuilderExpr.buildExprOrExprList(itemExpr) ;
-            return OpFilter.filter(exprList, op) ;
+            return OpFilter.filterDirect(exprList, op) ;
         }
     } ;
 

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/OpRewriter.java
----------------------------------------------------------------------
diff --git a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/OpRewriter.java b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/OpRewriter.java
index 95b21e4..fba3039 100644
--- a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/OpRewriter.java
+++ b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/rewriters/OpRewriter.java
@@ -161,7 +161,7 @@ class OpRewriter extends AbstractRewriter<Op> implements OpVisitor {
 	@Override
 	public void visit(OpFilter opFilter) {
 		opFilter.getSubOp().visit(this);
-		push(OpFilter.filter(
+		push(OpFilter.filterBy(
 				new ExprRewriter(values).rewrite(opFilter.getExprs()), pop()));
 	}
 

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
index cdd40ed..79bf030 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/query/rewriter/OpRewriter.java
@@ -331,7 +331,7 @@ public class OpRewriter implements OpVisitor {
 		if (LOG.isDebugEnabled()) {
 			LOG.debug("Starting visiting OpFilter");
 		}
-		addOp(OpFilter.filter(opFilter.getExprs(), rewriteOp1(opFilter)));
+		addOp(OpFilter.filterBy(opFilter.getExprs(), rewriteOp1(opFilter)));
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/jena/blob/fcc9cede/jena-sdb/src/main/java/org/apache/jena/sdb/layout2/QueryCompiler2.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/layout2/QueryCompiler2.java b/jena-sdb/src/main/java/org/apache/jena/sdb/layout2/QueryCompiler2.java
index 531577e..7c5d061 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/layout2/QueryCompiler2.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/layout2/QueryCompiler2.java
@@ -119,7 +119,7 @@ public abstract class QueryCompiler2 extends QueryCompilerMain
                     exprs2.add(expr2) ;
             }
 
-            return OpFilter.filter(exprs2, op) ; 
+            return OpFilter.filterBy(exprs2, op) ; 
         }
 
         // return null for don't need an expr anymore.


[2/6] jena git commit: Keep original input - debugging help.

Posted by an...@apache.org.
Keep original input - debugging help.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c4039d49
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c4039d49
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c4039d49

Branch: refs/heads/master
Commit: c4039d494f6a7f30e5c6854ef62f33618c18792d
Parents: d1e1fc7
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Aug 26 18:13:11 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Aug 26 18:13:11 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/jena/sparql/algebra/optimize/Optimize.java    | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/c4039d49/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
index 89787c9..0e7e45a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
@@ -122,6 +122,9 @@ public class Optimize implements Rewrite
     @Override
     public Op rewrite(Op op)
     {
+        // For debugging, keep the original input around.
+        Op originalOp = op ;
+        
         // Record optimizer
         if ( context.get(ARQConstants.sysOptimizer) == null )
             context.set(ARQConstants.sysOptimizer, this) ;