[ https://issues.apache.org/jira/browse/JENA-874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne closed JENA-874. ------------------------------ Close resolved issue on release of Jena 2.13.0. > Subqueries not functioning properly when Filter clauses are present > ------------------------------------------------------------------- > > Key: JENA-874 > URL: https://issues.apache.org/jira/browse/JENA-874 > Project: Apache Jena > Issue Type: Bug > Components: ARQ > Affects Versions: Jena 2.13.0 > Reporter: Stephen Allen > Assignee: Andy Seaborne > Fix For: Jena 2.13.0 > > Attachments: TestSubquery.java, jena-874-data.ttl, jena-874-query.rq > > > Queries with Subqueries are not functioning properly when a filter clause > exists. This is a regression, as it worked properly in 2.11.2 (I haven't > checked 2.12.1). > Example: > {code:title=data.ttl} > <http://r1> a <http://type> . > <http://r1> a <http://type2> . > <http://r2> a <http://type> . > <http://r2> a <http://type2> . > <http://r3> a <http://type> . > <http://r3> a <http://type2> . > {code} > {code:title=Bind Query} > select * > where { > graph <http://graph1> { > { > select distinct (?_id as ?id) > where { > values ?_type { > <http://type2> > } > ?_id a ?_type . > ?_id a <http://type> . > filter ( ?_id = <http://r1> || ?_id = <http://r2> ) > } > } > ?id a <http://type> . bind (<http://type2> as ?type) . ?id a ?type . > } > } > order by ?id > {code} > {code:title=Bind Algebra} > (base <http://example/base/> > (order (?id) > (graph <http://graph1> > (join > (extend ((?type <http://type2>)) > (join > (distinct > (project (?id) > (extend ((?id ?_id)) > (filter (|| (= ?_id <http://r1>) (= ?_id <http://r2>)) > (join > (table (vars ?_type) > (row [?_type <http://type2>]) > ) > (bgp > (triple ?_id > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?_type) > (triple ?_id > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://type>) > )))))) > (bgp (triple ?id > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://type>)))) > (bgp (triple ?id <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> > ?type)))))) > {code} > {code:title=Filter Query} > select * > where { > graph <http://graph1> { > { > select distinct (?_id as ?id) > where { > values ?_type { > <http://type2> > } > ?_id a ?_type . > ?_id a <http://type> . > filter ( ?_id = <http://r1> || ?_id = <http://r2> ) > } > } > ?id a <http://type> . ?id a ?type . filter (?type != <http://type> ) . > } > } > order by ?id > {code} > {code:title=Filter Algebra} > (base <http://example/base/> > (order (?id) > (graph <http://graph1> > (filter (!= ?type <http://type>) > (join > (distinct > (project (?id) > (extend ((?id ?_id)) > (filter (|| (= ?_id <http://r1>) (= ?_id <http://r2>)) > (join > (table (vars ?_type) > (row [?_type <http://type2>]) > ) > (bgp > (triple ?_id > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?_type) > (triple ?_id > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://type>) > )))))) > (bgp > (triple ?id <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> > <http://type>) > (triple ?id <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> > ?type) > )))))) > {code} > For both queries, the results should look like: > {code} > -------------------------------- > | id | type | > ================================ > | <http://r1> | <http://type2> | > | <http://r2> | <http://type2> | > -------------------------------- > {code} > However, only the Bind query actually works correctly. The Filter query > returns no rows. -- This message was sent by Atlassian JIRA (v6.3.4#6332)