Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Jena 2.11.0
Description
A subquery with `limit 1` specified can `leak` more values to the surrounding query. Rob Vesse tracked this down to a difference between the basic algebra and the optimized algebra [1] . One query has the following basic and optimized Ops; the "join" in the former shouldn't get turned into a "sequence" in the latter.
Basic: (join (bgp (triple ?resource <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <urn:ex:Thing>)) (slice _ 1 (project (?resource ?p) (order (?p) (bgp (triple ?resource <urn:ex:p> ?p)))))) Optimized: (sequence (bgp (triple ?resource <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <urn:ex:Thing>)) (project (?resource ?p) (top (1 ?p) (bgp (triple ?resource <urn:ex:p> ?p)))))