You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2014/01/29 19:20:52 UTC
svn commit: r1562536 - in /jena/trunk/jena-arq/src:
main/java/com/hp/hpl/jena/sparql/engine/http/Service.java
main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java
Author: rvesse
Date: Wed Jan 29 18:20:51 2014
New Revision: 1562536
URL: http://svn.apache.org/r1562536
Log:
Some basic analysis of what needs to be done to fix JENA-494 added as comments
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/Service.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/Service.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/Service.java?rev=1562536&r1=1562535&r2=1562536&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/Service.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/Service.java Wed Jan 29 18:20:51 2014
@@ -102,7 +102,15 @@ public class Service
// in the first place.
// Any substitution is also safe because it replaced variables by values.
Op opRemote = Rename.reverseVarRename(op.getSubOp(), true) ;
-
+
+ // JENA-494 There is a bug here that the renaming means that if this is deeply nested
+ // and joined to other things at the same level of you end up with the variables being
+ // disjoint and the same results
+ // Fixing this requires somehow tracking the renamings that get undone and then wrapping
+ // the resulting query iterator with something to remap it
+ // Likely this means extending UnrenameAnyVars to track the unrenames it does and this
+ // approach may fall over if there are multiple levels of renaming going on
+
//Explain.explain("HTTP", opRemote, context) ;
Query query ;
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java?rev=1562536&r1=1562535&r2=1562536&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java Wed Jan 29 18:20:51 2014
@@ -215,5 +215,5 @@ class NodeTransformOp extends TransformC
}
return new OpGroup(subOp, groupVars, aggregators) ;
- }
+ }
}
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java?rev=1562536&r1=1562535&r2=1562536&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestVarRename.java Wed Jan 29 18:20:51 2014
@@ -79,6 +79,12 @@ public class TestVarRename extends BaseT
"(project (?s) (project (?s) (table (vars ?/obj) (row [?/obj 123])) ))",
true,
"s") ; }
+
+ // JENA-494 : sub-query and service interaction
+ @Test public void rename_14() { rename("(project (?z) (project (?z) (sequence (service <http://foo> (bgp (?c ?p ?z)) ) (bgp (?c ?q ?z)) ) ) )",
+ "(project (?z) (project (?z) (sequence (service <http://foo> (bgp (?/c ?/p ?z)) ) (bgp (?/c ?/q ?z)) ) ) )",
+ true,
+ "z") ; }
@Test public void rename_reverse_01() { reverse("(project (?s ?/p) (bgp (?s ?/p ?/o)))",