[ 
https://issues.apache.org/jira/browse/JENA-535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13772415#comment-13772415
 ] 

Tracy Hartford commented on JENA-535:
-------------------------------------

I do not have a patch. I was going to suggest following the precedent in 
OpVisitorByType, and calling a specific visitor function for processing 
OpLeftJoin that calls visit2 and then visits the OpBGP of the Exprs, if any, 
but it appears that visitFilter does not visit its expressions either.
                
> Algebra.toQuadForm() does not transform Expressions in Optional clauses
> -----------------------------------------------------------------------
>
>                 Key: JENA-535
>                 URL: https://issues.apache.org/jira/browse/JENA-535
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: Jena 2.11.0
>            Reporter: Tracy Hartford
>
> Our internal testing has flagged up a failure in 2.11.0 in 
> Algebra.toQuadForm() when applied to expressions within an OPTIONAL clause.
> The query in question is as follows:
> {noformat}
> SELECT  *
>     WHERE
>       { ?s ?p ?o
>           OPTIONAL
>             { 
>               FILTER NOT EXISTS {?s ?p ?o }
>             }
>       }
> {noformat}
> The algebra before calling Algebra.toQuadForm() is as follows:
> {noformat}
> (leftjoin
>   (bgp (triple ?s ?p ?o))
>   (table unit)
>   (notexists (bgp (triple ?s ?p ?o))))
> {noformat}
> The expected algebra is as follows:
> {noformat}
> (leftjoin
>   (quadpattern (quad <urn:x-arq:DefaultGraphNode> ?s ?p ?o))
>   (table unit)
>   (notexists (quadpattern (quad <urn:x-arq:DefaultGraphNode> ?s ?p ?o))))
> {noformat}
> The resulting algebra is as follows:
> {noformat}
> (leftjoin
>   (quadpattern (quad <urn:x-arq:DefaultGraphNode> ?s ?p ?o))
>   (table unit)
>   (notexists (bgp (triple ?s ?p ?o))))
> {noformat}
> It appears that the Transform Walkers visit the left and right Ops of the 
> OpLeftJoin but not the ExprList that contains the E_NotExists.

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