[ 
https://issues.apache.org/jira/browse/JENA-1877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17073126#comment-17073126
 ] 

Andy Seaborne commented on JENA-1877:
-------------------------------------

Simple example:

{code}
    SELECT (bnode("A") as ?X) (bnode("A") as ?Y)
    WHERE { }
{code}
The same string.
The query is the same as:
{code}
    SELECT ?X ?Y
    WHERE { 
        BIND (bnode("A") as ?X)
        BIND (bnode("A") as ?Y)
    }
{code}
and each {{BIND}} creates a new row when it adds it variable/value binding.


> Wrong results for non-optimized query
> -------------------------------------
>
>                 Key: JENA-1877
>                 URL: https://issues.apache.org/jira/browse/JENA-1877
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: Jena 3.14.0
>            Reporter: Jeremy Coulon
>            Priority: Major
>         Attachments: bnode01.rq, data.ttl
>
>
> I noticed that the attached query gives correct results with:
> {noformat}
> ./bin/arq --data=data.ttl --query=bnode01.rq --explain --optimize=on
> {noformat}
> while it gives wrong results with:
> {noformat}
> ./bin/arq --data=data.ttl --query=bnode01.rq --explain 
> --optimize=off{noformat}
> Without optimization, ARQ algebra has 2 different 'extend' op with 
> 'bnode(?s)' expression.
> With optimization, ARQ algebra merges these ops into a single op 'extend'.
>  
> I tried debugging and I think that 'E_BNode.evalSpecial()' takes the same 
> 'binding' object for each call in optimized mode but different 'binding' 
> objects for non-optimized mode. This function relies on reference-equality.
>  
> [^data.ttl]
> [^bnode01.rq]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to