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/03/15 18:23:36 UTC
svn commit: r1577904 -
/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformFilterPlacement.java
Author: andy
Date: Sat Mar 15 17:23:35 2014
New Revision: 1577904
URL: http://svn.apache.org/r1577904
Log:
Better temporary fix for JENA-652.
If the filter expressions are completely handled by both (union) branches,
then optimization is safe.
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=1577904&r1=1577903&r2=1577904&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 Sat Mar 15 17:23:35 2014
@@ -441,13 +441,21 @@ public class TransformFilterPlacement ex
}
private Placement placeUnion(ExprList exprs, OpUnion input) {
- // JENA-653, temporary fix.
- if ( true ) return null ;
-
// Push into both sides.
Op left = input.getLeft() ;
- left = transformOp(exprs, left) ;
+ Placement pLeft = transform(exprs, left) ;
+
Op right = input.getRight() ;
+ Placement pRight = transform(exprs, right) ;
+
+ // JENA-652 Temporary fix
+ if ( pLeft != null && ! pLeft.unplaced.isEmpty() )
+ return null ;
+ if ( pRight != null && ! pRight.unplaced.isEmpty() )
+ return null ;
+
+ // Old code.
+ left = transformOp(exprs, left) ;
right = transformOp(exprs, right) ;
Op op2 = OpUnion.create(left, right) ;