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 2011/07/06 15:59:29 UTC
svn commit: r1143418 - in /incubator/jena/Jena2/ARQ/trunk: ./ src-dev/dev/
src-test/com/hp/hpl/jena/sparql/algebra/optimize/
src/com/hp/hpl/jena/sparql/algebra/op/ src/com/hp/hpl/jena/sparql/engine/
src/com/hp/hpl/jena/sparql/expr/ src/com/hp/hpl/jena/...
Author: andy
Date: Wed Jul 6 13:59:28 2011
New Revision: 1143418
URL: http://svn.apache.org/viewvc?rev=1143418&view=rev
Log:
Bug fix: ORDER BY in sub-SELECT was not rewritten correctly.
Added:
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.rq
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.rq
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.rq
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.rq
Removed:
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/X
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.arq
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.arq
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.arq
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.arq
Modified:
incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt
incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java
incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/algebra/op/OpOrder.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/VarRename.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/ExprAggregator.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformLib.java
incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data-sq.ttl
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data.ttl
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/graph-subquery-1.rq
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/manifest.ttl
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.srx
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.srx
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.srx
incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.srx
Modified: incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt (original)
+++ incubator/jena/Jena2/ARQ/trunk/ChangeLog.txt Wed Jul 6 13:59:28 2011
@@ -3,6 +3,8 @@ ChangeLog for ARQ
==== ARQ 2.8.10
++ Bug fix: ORDER BY in sub-selects didn't work if ordering by non-SELECT variables.
++ Bug fix: Equality of algebra operator (order) wasn't checkign all aspects of the op.
+ Bug fix: SUM and AVG over errors didn't generate an error as they should do.
==== ARQ 2.8.9
Modified: incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-dev/dev/RunARQ.java Wed Jul 6 13:59:28 2011
@@ -128,7 +128,7 @@ public class RunARQ
public static void main(String[] argv) throws Exception
{
//arq.sparql.main("--data=D.ttl", "--query=Q.rq") ;
- arq.qparse.main("--query=Q.rq") ;
+ arq.qparse.main("--query=testing/ARQ/SubQuery/sub-select-03.rq", "--print=opt") ;
exit(0) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src-test/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java Wed Jul 6 13:59:28 2011
@@ -49,6 +49,16 @@ public class TestVarRename extends BaseT
"(project (?s ?/p) (bgp (?s ?/p ?/o)))",
true,
"s") ; }
+
+ @Test public void rename_10() { rename("(order (?s ?p) (bgp (?s ?p ?o)))",
+ "(order (?s ?/p) (bgp (?s ?/p ?/o)))",
+ true,
+ "s") ; }
+
+ @Test public void rename_11() { rename("(project (?s) (order (?s ?p) (bgp (?s ?p ?o))))",
+ "(project (?s) (order (?s ?/p) (bgp (?s ?/p ?/o))))",
+ true,
+ "s") ; }
@Test public void rename_reverse_01() { reverse("(project (?s ?/p) (bgp (?s ?/p ?/o)))",
"(project (?s ?p) (bgp (?s ?p ?o)))", true ) ; }
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/algebra/op/OpOrder.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/algebra/op/OpOrder.java?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/algebra/op/OpOrder.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/algebra/op/OpOrder.java Wed Jul 6 13:59:28 2011
@@ -46,6 +46,10 @@ public class OpOrder extends OpModifier
{
if ( ! (other instanceof OpOrder) ) return false ;
OpOrder opOrder = (OpOrder)other ;
+
+ if ( ! opOrder.getConditions().equals(this.getConditions()) )
+ return false ;
+
//
return getSubOp().equalTo(opOrder.getSubOp(), labelMap) ;
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/VarRename.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/VarRename.java?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/VarRename.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/engine/VarRename.java Wed Jul 6 13:59:28 2011
@@ -38,27 +38,6 @@ public class VarRename
return NodeTransformLib.transform(renamer, exprList) ;
}
-// public static ExprList transform(ExprList exprList, NodeTransform transform)
-// {
-// ExprList exprList2 = new ExprList() ;
-// boolean changed = false ;
-// for(Expr expr : exprList)
-// {
-// Expr expr2 = expr.copyNodeTransform(transform) ;
-// if ( expr != expr2 )
-// changed = true ;
-// exprList2.add(expr2) ;
-// }
-// if ( ! changed ) return exprList ;
-// return exprList2 ;
-// }
-//
-// /** Rename all variables in an expression, EXCEPT for those named as constant */
-// public static Expr transform(Expr expr, NodeTransform transform)
-// {
-// return expr.copyNodeTransform(transform) ;
-// }
-
public static Expr rename(Expr expr, Set<Var> constants)
{
NodeTransform renamer = new RenamerVars(constants, prefix) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/ExprAggregator.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/ExprAggregator.java?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/ExprAggregator.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/expr/ExprAggregator.java Wed Jul 6 13:59:28 2011
@@ -6,6 +6,7 @@
package com.hp.hpl.jena.sparql.expr;
+import static org.openjena.atlas.lib.Lib.equal ;
import org.openjena.atlas.logging.Log ;
import com.hp.hpl.jena.graph.Node ;
@@ -65,7 +66,9 @@ public class ExprAggregator extends Expr
if ( ! ( other instanceof ExprAggregator ) )
return false ;
ExprAggregator agg = (ExprAggregator)other ;
- return aggregator.equals(agg.aggregator) ;
+ if ( ! equal(var, agg.var) )
+ return false ;
+ return equal(aggregator, agg.aggregator) ;
}
// Ensure no confusion - in an old design, an ExprAggregator was a subclass of ExprVar.
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformLib.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformLib.java?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformLib.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformLib.java Wed Jul 6 13:59:28 2011
@@ -13,6 +13,7 @@ import static org.openjena.atlas.lib.Lib
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.query.SortCondition ;
import com.hp.hpl.jena.sparql.algebra.Op ;
import com.hp.hpl.jena.sparql.algebra.Transform ;
import com.hp.hpl.jena.sparql.algebra.Transformer ;
@@ -184,10 +185,28 @@ public class NodeTransformLib
return expr.applyNodeTransform(nodeTransform) ;
}
+ public static List<SortCondition> transform(NodeTransform nodeTransform, List<SortCondition> conditions)
+ {
+ List<SortCondition> conditions2 = new ArrayList<SortCondition>() ;
+ boolean same = true ;
+ for ( SortCondition sc : conditions )
+ {
+ Expr expr = sc.getExpression() ;
+ Expr expr2 = transform(nodeTransform, expr) ;
+ if ( expr != expr2 )
+ same = false ;
+ SortCondition sc2 = new SortCondition(expr2, sc.getDirection()) ;
+ conditions2.add(sc2) ;
+ }
+
+ if ( same )
+ return conditions ;
+ return conditions2 ;
+ }
}
/*
- * (c) Copyright 2010 Epimorphics Ltd.
+ * (c) Copyright 2010, 2011 Epimorphics Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
Modified: incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java Wed Jul 6 13:59:28 2011
@@ -11,6 +11,7 @@ import java.util.List ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.query.SortCondition ;
import com.hp.hpl.jena.sparql.ARQNotImplemented ;
import com.hp.hpl.jena.sparql.algebra.Op ;
import com.hp.hpl.jena.sparql.algebra.TransformCopy ;
@@ -21,6 +22,7 @@ import com.hp.hpl.jena.sparql.algebra.op
import com.hp.hpl.jena.sparql.algebra.op.OpFilter ;
import com.hp.hpl.jena.sparql.algebra.op.OpGraph ;
import com.hp.hpl.jena.sparql.algebra.op.OpGroup ;
+import com.hp.hpl.jena.sparql.algebra.op.OpOrder ;
import com.hp.hpl.jena.sparql.algebra.op.OpPath ;
import com.hp.hpl.jena.sparql.algebra.op.OpProject ;
import com.hp.hpl.jena.sparql.algebra.op.OpQuadPattern ;
@@ -54,6 +56,8 @@ class NodeTransformOp extends TransformC
{
ExprList exprList = opFilter.getExprs() ;
ExprList exprList2 = NodeTransformLib.transform(transform, exprList) ;
+ if ( exprList2 == exprList )
+ return super.transform(opFilter, subOp) ;
return OpFilter.filter(exprList2, subOp) ;
}
@@ -73,9 +77,9 @@ class NodeTransformOp extends TransformC
Node o = tp.getObject() ;
Node o1 = transform.convert(o) ;
- if ( s1 == s || o1 == o )
+ if ( s1 == s && o1 == o )
// No change.
- return opPath ;
+ return super.transform(opPath) ;
Path path = tp.getPath() ;
TriplePath tp2 ;
@@ -131,6 +135,8 @@ class NodeTransformOp extends TransformC
{
List<Var> x = opProject.getVars() ;
List<Var> x2 = NodeTransformLib.transformVars(transform, x) ;
+ if ( x == x2 )
+ return super.transform(opProject, subOp) ;
return new OpProject(subOp, x2) ;
}
@@ -138,6 +144,8 @@ class NodeTransformOp extends TransformC
{
VarExprList varExprList = opAssign.getVarExprList() ;
VarExprList varExprList2 = NodeTransformLib.transform(transform, varExprList) ;
+ if ( varExprList == varExprList2 )
+ return super.transform(opAssign, subOp) ;
return OpAssign.assign(subOp, varExprList2) ;
}
@@ -145,19 +153,38 @@ class NodeTransformOp extends TransformC
{
VarExprList varExprList = opExtend.getVarExprList() ;
VarExprList varExprList2 = NodeTransformLib.transform(transform, varExprList) ;
+ if ( varExprList == varExprList2 )
+ return super.transform(opExtend, subOp) ;
return OpExtend.extend(subOp, varExprList2) ;
}
+ @Override public Op transform(OpOrder opOrder, Op subOp)
+ {
+ List<SortCondition> conditions = NodeTransformLib.transform(transform, opOrder.getConditions()) ;
+
+ if ( conditions == opOrder.getConditions() )
+ return super.transform(opOrder, subOp) ;
+ return new OpOrder(subOp, conditions) ;
+ }
+
@Override public Op transform(OpGroup opGroup, Op subOp)
{
VarExprList groupVars = NodeTransformLib.transform(transform, opGroup.getGroupVars()) ;
-
+
+
// Rename the vars in the expression as well.
// .e.g max(?y) ==> max(?/y)
// These need renaming as well.
List<ExprAggregator> aggregators = new ArrayList<ExprAggregator>() ;
for ( ExprAggregator agg : opGroup.getAggregators() )
aggregators.add(agg.applyNodeTransform(transform)) ;
+
+ if ( aggregators.equals(opGroup.getAggregators()))
+ {
+ if ( groupVars == opGroup.getGroupVars() )
+ return super.transform(opGroup, subOp) ;
+ }
+
return new OpGroup(subOp, groupVars, aggregators) ;
}
}
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data-sq.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data-sq.ttl?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data-sq.ttl (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data-sq.ttl Wed Jul 6 13:59:28 2011
@@ -1,5 +1,5 @@
-@prefix : <http://example/> .
-
-:a :p : .
-# And this is the graph name.
-:b :q <data-sq.ttl> .
+@prefix : <http://example/> .
+
+:a :p : .
+# And this is the graph name.
+:b :q <data-sq.ttl> .
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data.ttl?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data.ttl (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/data.ttl Wed Jul 6 13:59:28 2011
@@ -1,27 +1,27 @@
-@prefix : <http://example/> .
-
-:x1 a :X ;
- :p 1 .
-
-:x2 a :X ;
- :p 2 .
-
-:x3 a :X ;
- :p 3 .
-
-:x4 a :X ;
- :p 4 .
-
-:x5 a :X ;
- :p 5 .
-
-
-:x6 a :X ;
- :p "a" .
-
-:x7 a :X ;
- :p "2" .
-
-:x8 a :X ;
- :q 100 .
-
+@prefix : <http://example/> .
+
+:x1 a :X ;
+ :p 1 .
+
+:x2 a :X ;
+ :p 2 .
+
+:x3 a :X ;
+ :p 3 .
+
+:x4 a :X ;
+ :p 4 .
+
+:x5 a :X ;
+ :p 5 .
+
+
+:x6 a :X ;
+ :p "a" .
+
+:x7 a :X ;
+ :p "2" .
+
+:x8 a :X ;
+ :q 100 .
+
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/graph-subquery-1.rq
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/graph-subquery-1.rq?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/graph-subquery-1.rq (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/graph-subquery-1.rq Wed Jul 6 13:59:28 2011
@@ -1,9 +1,9 @@
-PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#>
-
-# Take local name ro make a more portable test
-SELECT ?x (afn:localname(?g) AS ?gn)
-{
- GRAPH ?g
- # Scope: different ?g
- { SELECT ?x { ?x ?p ?g } }
-}
+PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#>
+
+# Take local name ro make a more portable test
+SELECT ?x (afn:localname(?g) AS ?gn)
+{
+ GRAPH ?g
+ # Scope: different ?g
+ { SELECT ?x { ?x ?p ?g } }
+}
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/manifest.ttl
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/manifest.ttl?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/manifest.ttl (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/manifest.ttl Wed Jul 6 13:59:28 2011
@@ -1,48 +1,48 @@
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
-@prefix mfx: <http://jena.hpl.hp.com/2005/05/test-manifest-extra#> .
-@prefix qt: <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> .
-
-<> rdf:type mf:Manifest ;
- rdfs:label "Sub Query" ;
- mf:entries
- (
- [ mf:name "Sub SELECT 1" ;
- rdf:type mfx:TestQuery ;
- mf:action
- [ qt:query <sub-select-01.arq> ;
- qt:data <data.ttl> ] ;
- mf:result <sub-select-01.srx>
- ]
- [ mf:name "Sub SELECT 2" ;
- rdf:type mfx:TestQuery ;
- mf:action
- [ qt:query <sub-select-02.arq> ;
- qt:data <data.ttl> ] ;
- mf:result <sub-select-02.srx>
- ]
- [ mf:name "Sub SELECT 3" ;
- rdf:type mfx:TestQuery ;
- mf:action
- [ qt:query <sub-select-03.arq> ;
- qt:data <data.ttl> ] ;
- mf:result <sub-select-03.srx>
- ]
- [ mf:name "Sub SELECT 4" ;
- rdf:type mfx:TestQuery ;
- mf:action
- [ qt:query <sub-select-04.arq> ;
- qt:data <data.ttl> ] ;
- mf:result <sub-select-04.srx>
- ]
-
- ## Scoping related tests.
- [ mf:name "graph-subquery-1.rq" ;
- mf:action
- [ qt:query <graph-subquery-1.rq> ;
- qt:graphData <data-sq.ttl> ;
- ] ;
- mf:result <graph-subquery-1.srj>
- ]
- ).
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix mfx: <http://jena.hpl.hp.com/2005/05/test-manifest-extra#> .
+@prefix qt: <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> .
+
+<> rdf:type mf:Manifest ;
+ rdfs:label "Sub Query" ;
+ mf:entries
+ (
+ [ mf:name "Sub SELECT 1" ;
+ rdf:type mfx:TestQuery ;
+ mf:action
+ [ qt:query <sub-select-01.rq> ;
+ qt:data <data.ttl> ] ;
+ mf:result <sub-select-01.srx>
+ ]
+ [ mf:name "Sub SELECT 2" ;
+ rdf:type mfx:TestQuery ;
+ mf:action
+ [ qt:query <sub-select-02.rq> ;
+ qt:data <data.ttl> ] ;
+ mf:result <sub-select-02.srx>
+ ]
+ [ mf:name "Sub SELECT 3" ;
+ rdf:type mfx:TestQuery ;
+ mf:action
+ [ qt:query <sub-select-03.rq> ;
+ qt:data <data.ttl> ] ;
+ mf:result <sub-select-03.srx>
+ ]
+ [ mf:name "Sub SELECT 4" ;
+ rdf:type mfx:TestQuery ;
+ mf:action
+ [ qt:query <sub-select-04.rq> ;
+ qt:data <data.ttl> ] ;
+ mf:result <sub-select-04.srx>
+ ]
+
+ ## Scoping related tests.
+ [ mf:name "graph-subquery-1.rq" ;
+ mf:action
+ [ qt:query <graph-subquery-1.rq> ;
+ qt:graphData <data-sq.ttl> ;
+ ] ;
+ mf:result <graph-subquery-1.srj>
+ ]
+ ).
Added: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.rq
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.rq?rev=1143418&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.rq (added)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.rq Wed Jul 6 13:59:28 2011
@@ -0,0 +1,6 @@
+PREFIX : <http://example/>
+
+SELECT ?s
+{
+ { SELECT * { ?s a ?o } }
+}
\ No newline at end of file
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.srx
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.srx?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.srx (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-01.srx Wed Jul 6 13:59:28 2011
@@ -1,48 +1,48 @@
-<?xml version="1.0"?>
-<sparql xmlns="http://www.w3.org/2005/sparql-results#">
- <head>
- <variable name="s"/>
- </head>
- <results>
- <result>
- <binding name="s">
- <uri>http://example/x8</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x7</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x6</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x5</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x4</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x3</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x2</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x1</uri>
- </binding>
- </result>
- </results>
-</sparql>
+<?xml version="1.0"?>
+<sparql xmlns="http://www.w3.org/2005/sparql-results#">
+ <head>
+ <variable name="s"/>
+ </head>
+ <results>
+ <result>
+ <binding name="s">
+ <uri>http://example/x8</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x7</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x6</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x5</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x4</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x3</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x2</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x1</uri>
+ </binding>
+ </result>
+ </results>
+</sparql>
Added: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.rq
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.rq?rev=1143418&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.rq (added)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.rq Wed Jul 6 13:59:28 2011
@@ -0,0 +1,6 @@
+PREFIX : <http://example/>
+
+SELECT *
+{
+ SELECT ?s { ?s a ?o }
+}
\ No newline at end of file
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.srx
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.srx?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.srx (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-02.srx Wed Jul 6 13:59:28 2011
@@ -1,48 +1,48 @@
-<?xml version="1.0"?>
-<sparql xmlns="http://www.w3.org/2005/sparql-results#">
- <head>
- <variable name="s"/>
- </head>
- <results>
- <result>
- <binding name="s">
- <uri>http://example/x8</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x7</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x6</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x5</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x4</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x3</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x2</uri>
- </binding>
- </result>
- <result>
- <binding name="s">
- <uri>http://example/x1</uri>
- </binding>
- </result>
- </results>
-</sparql>
+<?xml version="1.0"?>
+<sparql xmlns="http://www.w3.org/2005/sparql-results#">
+ <head>
+ <variable name="s"/>
+ </head>
+ <results>
+ <result>
+ <binding name="s">
+ <uri>http://example/x8</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x7</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x6</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x5</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x4</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x3</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x2</uri>
+ </binding>
+ </result>
+ <result>
+ <binding name="s">
+ <uri>http://example/x1</uri>
+ </binding>
+ </result>
+ </results>
+</sparql>
Added: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.rq
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.rq?rev=1143418&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.rq (added)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.rq Wed Jul 6 13:59:28 2011
@@ -0,0 +1,7 @@
+PREFIX : <http://example/>
+
+SELECT *
+{
+ ?x a :X .
+ { SELECT ?x ( count(*) AS ?c) { ?x :p ?v } GROUP BY ?x }
+}
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.srx
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.srx?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.srx (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-03.srx Wed Jul 6 13:59:28 2011
@@ -1,65 +1,65 @@
-<?xml version="1.0"?>
-<sparql xmlns="http://www.w3.org/2005/sparql-results#">
- <head>
- <variable name="x"/>
- <variable name="c"/>
- </head>
- <results>
- <result>
- <binding name="x">
- <uri>http://example/x7</uri>
- </binding>
- <binding name="c">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x6</uri>
- </binding>
- <binding name="c">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x5</uri>
- </binding>
- <binding name="c">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x4</uri>
- </binding>
- <binding name="c">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x3</uri>
- </binding>
- <binding name="c">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x2</uri>
- </binding>
- <binding name="c">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x1</uri>
- </binding>
- <binding name="c">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- </result>
- </results>
-</sparql>
+<?xml version="1.0"?>
+<sparql xmlns="http://www.w3.org/2005/sparql-results#">
+ <head>
+ <variable name="x"/>
+ <variable name="c"/>
+ </head>
+ <results>
+ <result>
+ <binding name="x">
+ <uri>http://example/x7</uri>
+ </binding>
+ <binding name="c">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x6</uri>
+ </binding>
+ <binding name="c">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x5</uri>
+ </binding>
+ <binding name="c">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x4</uri>
+ </binding>
+ <binding name="c">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x3</uri>
+ </binding>
+ <binding name="c">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x2</uri>
+ </binding>
+ <binding name="c">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x1</uri>
+ </binding>
+ <binding name="c">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ </result>
+ </results>
+</sparql>
Added: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.rq
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.rq?rev=1143418&view=auto
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.rq (added)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.rq Wed Jul 6 13:59:28 2011
@@ -0,0 +1,8 @@
+PREFIX : <http://example/>
+
+SELECT *
+{
+ ?x :p ?p .
+ # A silly thing to do ... shows the ?x is different
+ { SELECT ?q { ?x :q ?q } }
+}
Modified: incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.srx
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.srx?rev=1143418&r1=1143417&r2=1143418&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.srx (original)
+++ incubator/jena/Jena2/ARQ/trunk/testing/ARQ/SubQuery/sub-select-04.srx Wed Jul 6 13:59:28 2011
@@ -1,87 +1,87 @@
-<?xml version="1.0"?>
-<sparql xmlns="http://www.w3.org/2005/sparql-results#">
- <head>
- <variable name="x"/>
- <variable name="p"/>
- <variable name="q"/>
- </head>
- <results>
- <result>
- <binding name="x">
- <uri>http://example/x7</uri>
- </binding>
- <binding name="p">
- <literal>2</literal>
- </binding>
- <binding name="q">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x6</uri>
- </binding>
- <binding name="p">
- <literal>a</literal>
- </binding>
- <binding name="q">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x5</uri>
- </binding>
- <binding name="p">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">5</literal>
- </binding>
- <binding name="q">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x4</uri>
- </binding>
- <binding name="p">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">4</literal>
- </binding>
- <binding name="q">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x3</uri>
- </binding>
- <binding name="p">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">3</literal>
- </binding>
- <binding name="q">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x2</uri>
- </binding>
- <binding name="p">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">2</literal>
- </binding>
- <binding name="q">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
- </binding>
- </result>
- <result>
- <binding name="x">
- <uri>http://example/x1</uri>
- </binding>
- <binding name="p">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
- </binding>
- <binding name="q">
- <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
- </binding>
- </result>
- </results>
-</sparql>
+<?xml version="1.0"?>
+<sparql xmlns="http://www.w3.org/2005/sparql-results#">
+ <head>
+ <variable name="x"/>
+ <variable name="p"/>
+ <variable name="q"/>
+ </head>
+ <results>
+ <result>
+ <binding name="x">
+ <uri>http://example/x7</uri>
+ </binding>
+ <binding name="p">
+ <literal>2</literal>
+ </binding>
+ <binding name="q">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x6</uri>
+ </binding>
+ <binding name="p">
+ <literal>a</literal>
+ </binding>
+ <binding name="q">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x5</uri>
+ </binding>
+ <binding name="p">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">5</literal>
+ </binding>
+ <binding name="q">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x4</uri>
+ </binding>
+ <binding name="p">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">4</literal>
+ </binding>
+ <binding name="q">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x3</uri>
+ </binding>
+ <binding name="p">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">3</literal>
+ </binding>
+ <binding name="q">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x2</uri>
+ </binding>
+ <binding name="p">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">2</literal>
+ </binding>
+ <binding name="q">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
+ </binding>
+ </result>
+ <result>
+ <binding name="x">
+ <uri>http://example/x1</uri>
+ </binding>
+ <binding name="p">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">1</literal>
+ </binding>
+ <binding name="q">
+ <literal datatype="http://www.w3.org/2001/XMLSchema#integer">100</literal>
+ </binding>
+ </result>
+ </results>
+</sparql>