Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Information Provided
-
Jena 3.14.0
-
None
-
None
Description
I noticed that the attached query gives correct results with:
./bin/arq --data=data.ttl --query=bnode01.rq --explain --optimize=on
while it gives wrong results with:
./bin/arq --data=data.ttl --query=bnode01.rq --explain --optimize=off
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.