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 2012/06/30 16:29:08 UTC
svn commit: r1355742 - in /jena/trunk/jena-arq/src:
main/java/com/hp/hpl/jena/sparql/algebra/op/
main/java/com/hp/hpl/jena/sparql/algebra/optimize/
test/java/com/hp/hpl/jena/sparql/algebra/
Author: andy
Date: Sat Jun 30 14:29:06 2012
New Revision: 1355742
URL: http://svn.apache.org/viewvc?rev=1355742&view=rev
Log:
Make OpJoin.create skip nulls (for convenience).
Added:
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java
- copied, changed from r1355059, jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/UnionTransformTests.java
Removed:
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/UnionTransformTests.java
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpJoin.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpUnion.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPathFlatternStd.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformTriples.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpJoin.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpJoin.java?rev=1355742&r1=1355741&r2=1355742&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpJoin.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpJoin.java Sat Jun 30 14:29:06 2012
@@ -28,25 +28,34 @@ import com.hp.hpl.jena.sparql.util.NodeI
public class OpJoin extends Op2
{
+ /** Create join - an argument of null is
+ * simply dropped so Join.create(null, op) is op and Join.create(op,null) is op.
+ */
public static Op create(Op left, Op right)
{
- // Don't simplify here - changes SPARQL for OPTIONAL {{ FILTER }}
- // The {{}} results in (join unit (filter ...)) the filter is not moved
- // into the LeftJoin.
-
-// // Inline simplification (too early - changes SPARQL for OPTIONAL {{ FILTER }}
-// if ( simplifyEarly )
-// {
-// if ( isJoinIdentify(left) )
-// return right ;
-//
-// if ( isJoinIdentify(right) )
-// return left ;
-// }
-
+ if ( left == null )
+ return right ;
+ if ( right == null )
+ return left ;
return new OpJoin(left, right) ;
}
+ /** Create join, removing any joins with the identity table and any nulls.
+ * <br/>Join.create(null, op) is op.
+ * <br/>Join.create(op, null) is op.
+ * <br/>Join.create(TableUnit, op) is op.
+ * <br/>Join.create(op, TableUnit) is op.
+ */
+ public static Op createReduce(Op left, Op right)
+ {
+ if ( left == null || isJoinIdentify(left) )
+ return right ;
+ if ( right == null || isJoinIdentify(right) )
+ return left ;
+ return new OpJoin(left, right) ;
+ }
+
+
public static boolean isJoinIdentify(Op op)
{
if ( ! ( op instanceof OpTable ) )
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpUnion.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpUnion.java?rev=1355742&r1=1355741&r2=1355742&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpUnion.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpUnion.java Sat Jun 30 14:29:06 2012
@@ -26,6 +26,7 @@ import com.hp.hpl.jena.sparql.util.NodeI
public class OpUnion extends Op2
{
+ /** Create a union, dropping any nulls. */
public static Op create(Op left, Op right)
{
if ( left == null )
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPathFlatternStd.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPathFlatternStd.java?rev=1355742&r1=1355741&r2=1355742&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPathFlatternStd.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPathFlatternStd.java Sat Jun 30 14:29:06 2012
@@ -76,22 +76,13 @@ public class TransformPathFlatternStd ex
static VarAlloc varAlloc = new VarAlloc(ARQConstants.allocVarAnonMarker+"Q") ;
- static Op join(Op op1, Op op2)
+ private static Op join(Op op1, Op op2)
{
- if ( op1 == null )
- return op2 ;
- if ( op2 == null )
- return op1 ;
return OpJoin.create(op1, op2) ;
}
- static Op union(Op left, Op right)
+ private static Op union(Op left, Op right)
{
- if ( left == null )
- return right ;
- if ( right == null )
- return left ;
-
return new OpUnion(left, right) ;
}
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java?rev=1355742&r1=1355741&r2=1355742&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformPattern2Join.java Sat Jun 30 14:29:06 2012
@@ -61,13 +61,8 @@ public class TransformPattern2Join exten
return op ;
}
-
private static Op join(Op left, Op right)
{
- if ( left == null || OpJoin.isJoinIdentify(left) )
- return right ;
- if ( right == null || OpJoin.isJoinIdentify(right) )
- return left ;
- return OpJoin.create(left, right) ;
- }
+ return OpJoin.createReduce(left, right) ;
+ }
}
Copied: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java (from r1355059, jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/UnionTransformTests.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java?p2=jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java&p1=jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/UnionTransformTests.java&r1=1355059&r2=1355742&rev=1355742&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/UnionTransformTests.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java Sat Jun 30 14:29:06 2012
@@ -28,7 +28,7 @@ import com.hp.hpl.jena.sparql.core.Quad
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
-public abstract class UnionTransformTests extends BaseTest
+public abstract class AbstractTestUnionTransform extends BaseTest
{
// Tests of patterns over the implicit union of all named graphs.
// Two sets - for triples and for quads
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java?rev=1355742&r1=1355741&r2=1355742&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java Sat Jun 30 14:29:06 2012
@@ -20,7 +20,7 @@ package com.hp.hpl.jena.sparql.algebra;
import com.hp.hpl.jena.sparql.sse.SSE ;
-public class TestUnionTransformQuads extends UnionTransformTests
+public class TestUnionTransformQuads extends AbstractTestUnionTransform
{
@Override
protected Op op(String pattern)
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformTriples.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformTriples.java?rev=1355742&r1=1355741&r2=1355742&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformTriples.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformTriples.java Sat Jun 30 14:29:06 2012
@@ -20,7 +20,7 @@ package com.hp.hpl.jena.sparql.algebra;
import com.hp.hpl.jena.sparql.sse.SSE ;
-public class TestUnionTransformTriples extends UnionTransformTests
+public class TestUnionTransformTriples extends AbstractTestUnionTransform
{
@Override
protected Op op(String pattern)