[
https://issues.apache.org/jira/browse/JENA-471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13685680#comment-13685680
]
Rob Vesse commented on JENA-471:
--------------------------------
I added a specific test case for this in TestTransformQuads with an @Ignore
attribute, I have removed the @Ignore and committed this back in now you've
fixed this
The tests in question that caught this are actually just the DAWG tests run
through our backend which uses Quad form algebra, if we wanted to add this to
the ARQ regression suite we'd need a way to kick those off forcing all queries
to be evaluated in Quad form.
> 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