You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2013/06/17 20:55:22 UTC

[jira] [Closed] (JENA-471) Regression in Algebra.toQuadForm() for nested sub-query with GRAPH clause

     [ https://issues.apache.org/jira/browse/JENA-471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andy Seaborne closed JENA-471.
------------------------------

    
> Regression in Algebra.toQuadForm() for nested sub-query with GRAPH clause
> -------------------------------------------------------------------------
>
>                 Key: JENA-471
>                 URL: https://issues.apache.org/jira/browse/JENA-471
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: Jena 2.10.1
>            Reporter: Rob Vesse
>            Assignee: Andy Seaborne
>             Fix For: Jena 2.10.2
>
>
> Our internal testing has flagged up a regression in behaviour between 2.10.0 and 2.10.1 with regards to Algebra.toQuadForm() when applied to sub-queries nested within a GRAPH clause
> The query in question is as follows:
> {noformat}
> SELECT ?x 
> WHERE 
>   { GRAPH ?g 
>       { { SELECT ?x 
>           WHERE 
>             { ?x ?p ?g } 
>         } 
>       } 
>   } 
> {noformat}
> With 2.10.0 this produced the following algebra:
> {noformat}
> (project (?x)
>   (project (?x)
>     (quadpattern (quad ?g ?x ?p ?g))))
> {noformat}
> With 2.10.1 this now produces an exception:
> {noformat}
> com.hp.hpl.jena.sparql.ARQInternalErrorException
> 	at com.hp.hpl.jena.sparql.algebra.OpVars$OpVarsPattern.visit(OpVars.java:197)
> 	at com.hp.hpl.jena.sparql.algebra.op.OpProject.visit(OpProject.java:48)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker$WalkerVisitor.visit1(OpWalker.java:86)
> 	at com.hp.hpl.jena.sparql.algebra.OpVisitorByType.visitModifer(OpVisitorByType.java:42)
> 	at com.hp.hpl.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:154)
> 	at com.hp.hpl.jena.sparql.algebra.op.OpProject.visit(OpProject.java:48)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker.walk(OpWalker.java:43)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker.walk(OpWalker.java:33)
> 	at com.hp.hpl.jena.sparql.algebra.OpVars.mentionedVars(OpVars.java:70)
> 	at com.hp.hpl.jena.sparql.algebra.OpVars.mentionedVars(OpVars.java:62)
> 	at com.hp.hpl.jena.sparql.algebra.AlgebraQuad$Pusher.visit(AlgebraQuad.java:93)
> 	at com.hp.hpl.jena.sparql.algebra.op.OpGraph.visit(OpGraph.java:46)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker$WalkerVisitor.before(OpWalker.java:64)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker$WalkerVisitor.visit1(OpWalker.java:84)
> 	at com.hp.hpl.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:110)
> 	at com.hp.hpl.jena.sparql.algebra.op.OpGraph.visit(OpGraph.java:46)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker$WalkerVisitor.visit1(OpWalker.java:85)
> 	at com.hp.hpl.jena.sparql.algebra.OpVisitorByType.visitModifer(OpVisitorByType.java:42)
> 	at com.hp.hpl.jena.sparql.algebra.OpVisitorByType.visit(OpVisitorByType.java:154)
> 	at com.hp.hpl.jena.sparql.algebra.op.OpProject.visit(OpProject.java:48)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker.walk(OpWalker.java:43)
> 	at com.hp.hpl.jena.sparql.algebra.OpWalker.walk(OpWalker.java:38)
> 	at com.hp.hpl.jena.sparql.algebra.Transformer.applyTransformation(Transformer.java:156)
> 	at com.hp.hpl.jena.sparql.algebra.Transformer.transformation(Transformer.java:149)
> 	at com.hp.hpl.jena.sparql.algebra.Transformer.transformation(Transformer.java:138)
> 	at com.hp.hpl.jena.sparql.algebra.Transformer.transformation(Transformer.java:132)
> 	at com.hp.hpl.jena.sparql.algebra.Transformer.transform(Transformer.java:57)
> 	at com.hp.hpl.jena.sparql.algebra.Transformer.transformSkipService(Transformer.java:87)
> 	at com.hp.hpl.jena.sparql.algebra.AlgebraQuad.quadize(AlgebraQuad.java:56)
> 	at com.hp.hpl.jena.sparql.algebra.Algebra.toQuadForm(Algebra.java:89)
> {noformat}
> I assume this regression happens because of the change to AlgebraQuad to use OpVars.mentionedVars() in the 2.10.1 dev cycle
> While the 2.10.0 algebra may have actually been incorrect it didn't throw a stack trace and I assume it is possible to make a valid quad transform on this algebra.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira