Rob Vesse created JENA-471:
------------------------------

             Summary: 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


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:

SELECT ?x 
WHERE 
  { GRAPH ?g 
      { { SELECT ?x 
          WHERE 
            { ?x ?p ?g } 
        } 
      } 
  } 

With 2.10.0 this produced the following algebra:

(project (?x)
  (project (?x)
    (quadpattern (quad ?g ?x ?p ?g))))

With 2.10.1 this now produces an exception:

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)

I assume this regression happens because of the change to AlgebraQuad to use 
OpVars.mentionedVars() in the 2.10.1 dev cycle

--
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

Reply via email to