[
https://issues.apache.org/jira/browse/JENA-432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630175#comment-13630175
]
Andy Seaborne edited comment on JENA-432 at 12/24/13 4:38 PM:
--------------------------------------------------------------
I realize the scope is different, but I don't see why the query is semantically
different. There is nothing in the filter clause which refers to anything in
the second part of the query. Besides, if you comment out the FILTER
constraint, you get again a plan which makes sense (even without the block)
I agree the query is contrived, but the original was way too complex to show
here and also shows proprietary stuff. But I don't see why it matters. The
following plan:
{noformat}
(project (?test ?s1)
(disjunction
(table empty)
(table empty)))
{noformat}
is never correct.
was (Author: shelsen):
I realize the scope is different, but I don't see why the query is semantically
different. There is nothing in the filter clause which refers to anything in
the second part of the query. Besides, if you comment out the FILTER
constraint, you get again a plan which makes sense (even without the block)
I agree the query is contrived, but the original was way too complex to show
here and also shows proprietary stuff. But I don't see why it matters. The
following plan:
(project (?test ?s1)
(disjunction
(table empty)
(table empty)))
is never correct.
> Filter optimization messes up when a nested select is present in the same
> block
> -------------------------------------------------------------------------------
>
> Key: JENA-432
> URL: https://issues.apache.org/jira/browse/JENA-432
> Project: Apache Jena
> Issue Type: Bug
> Components: ARQ, Optimizer
> Affects Versions: Jena 2.10.0
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Fix For: Jena 2.10.1
>
>
> The following test query:
> {noformat}
> SELECT ?test ?s1
> WHERE {
> ?test ?p1 ?o1.
> FILTER ( ?test = <http://localhost/t1> || ?test = <http://localhost/t2> )
> OPTIONAL {
> SELECT ?s1
> { ?s1 ?p2 ?o2 }
> }
> }
> {noformat}
> produces the following plan:
> {noformat}
> (project (?test ?s1)
> (disjunction
> (table empty)
> (table empty)))
> {noformat}
> Something goes wrong with the FILTER expansion. As a workaround, we observed
> that the following variation:
> {noformat}
> SELECT ?test ?s1
> WHERE {
> { ?test ?p1 ?o1.
> FILTER ( ?test = <http://localhost/t1> || ?test = <http://localhost/t2> )
>
> }
> OPTIONAL {
> SELECT ?s1
> { ?s1 ?p2 ?o2 }
> }
> }
> {noformat}
> produces the correct plan:
> {noformat}
> (project (?test ?s1)
> (leftjoin
> (disjunction
> (assign ((?test <http://localhost/t1>))
> (bgp (triple <http://localhost/t1> ?p1 ?o1)))
> (assign ((?test <http://localhost/t2>))
> (bgp (triple <http://localhost/t2> ?p1 ?o1))))
> (project (?s1)
> (bgp (triple ?s1 ?/p2 ?/o2)))))
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)