Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
For a query of the form:
SELECT * {
?s ?p ?o
OPTIONAL {
FILTER(?o=<urn:x1>)
BIND(true AS ?b)
}
}
ARQ optimization incorrectly eliminates the whole OPTIONAL when the variable filtered on does not appear elsewhere inside the OPTIONAL block . This is because of the special case check called on line 120 of TransformFilterEquality.java, which sees that ?o is not used inside the block of the filter and thus (in this case incorrectly) deduces that it could never be <urn:x1>.