[
https://issues.apache.org/jira/browse/JENA-294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13435436#comment-13435436
]
Simon Helsen commented on JENA-294:
-----------------------------------
When I apply your patch to the trunk and try it on the following query:
PREFIX : <http://example/>
SELECT *
{
OPTIONAL { ?x :r ?s }
OPTIONAL { ?x :q ?o }
FILTER(?x = :x)
}
I get the following plan:
(prefix ((: <http://example/>))
(assign ((?x :x))
(conditional
(conditional
(table unit)
(bgp (triple :x :r ?s)))
(bgp (triple :x :q ?o)))))
Does this not exhibit the same problem as discussed earlier? I.e. the bindings
on ?x for :r and :q may not exist, yet a row would be returned with a binding
for :x
> TransformFilterEquality does not handle starting OPTIONAL well
> --------------------------------------------------------------
>
> Key: JENA-294
> URL: https://issues.apache.org/jira/browse/JENA-294
> Project: Apache Jena
> Issue Type: Improvement
> Components: ARQ
> Affects Versions: Jena 2.7.4
> Reporter: Simon Helsen
> Attachments: jena-294-afs-1.patch, patch.txt, patch.txt,
> test-filter-equality.zip
>
>
> There was one other case where our tests were stuck on a very slow query
> execution because transformFilterEquality failed to optimize. The problem is
> that the optimizer gives up whenever the WHERE clause starts with an OPTIONAL
> clause. The reason is that the generated algebraic formula starts with a
> TableUnit and this is not handled correctly.
> I have attached a patch which fixes the problem
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira