[ https://issues.apache.org/jira/browse/JENA-1468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16343650#comment-16343650 ]
ASF GitHub Bot commented on JENA-1468: -------------------------------------- Github user RickMoynihan commented on the issue: https://github.com/apache/jena/pull/345 Thanks for the info @afs, was really just checking incase there was a release planned in the next week or so. Looks like I'll be deploying an internal build to our private artifact bucket then :-) > Empty VALUES clauses lose variable bindings when compiled to a SSE > ------------------------------------------------------------------ > > Key: JENA-1468 > URL: https://issues.apache.org/jira/browse/JENA-1468 > Project: Apache Jena > Issue Type: Bug > Components: ARQ > Affects Versions: Jena 3.1.1, Jena 3.2.0, Jena 3.3.0, Jena 3.4.0, Jena > 3.5.0, Jena 3.6.0 > Reporter: Rick > Priority: Major > Labels: SPARQL, sse > > Given a SPARQL query like this: > SELECT ?foo WHERE { > ?foo ?bar ?baz . # Not essential for problem just to show we can't > optimise it away. > VALUES ?foo { } > } > If you compile it into an SSE with something like this: > {{Algebra.compile(QueryFactory.create("SELECT ?foo WHERE \{ ?foo ?bar ?baz . > VALUES ?foo { }}"));}} > You end up with a semantically different SSE: > {{(project (?foo)}} > {{ (join}} > {{ (bgp (triple ?foo ?bar ?baz))}} > {{ (table empty)))}} > Note how "(table empty)" has lost the ?foo binding, which means that this > query returns all results for ?foo, where it should return no results. > I'm not sure how this query should be expressed in SSE form I'd suggest: > {{(table (vars ?foo) empty)}} > Though currently this will get simplified in [code like > this|https://github.com/apache/jena/blob/94eb3fc99ba1ff3991a629fffa6e6cf8b52d6c53/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderTable.java#L55-L64] > into an EmptyTable if you do something like: > {{BuilderTable.build(Item.createList((SSE.parse("(table (vars ?foo) > empty)")));}} > Additionally it appears quite a bit of code carries through this assumption > that an [empty table will never have a > binding|https://github.com/apache/jena/blob/94eb3fc99ba1ff3991a629fffa6e6cf8b52d6c53/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/TableEmpty.java#L57]. > As far as I can tell this issue effects many prior versions of JENA including > 3.6.0. -- This message was sent by Atlassian JIRA (v7.6.3#76005)