History | Log In     View a printable version of the current page. Get help!  
Issue Details [XML]

Key: SES-1050
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Jeen Broekstra
Reporter: Jesse van dam
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Sesame

sparql filter exist containing filter with && on two bound variables does not work

Created: 25/Jun/12 12:28 PM   Updated: 06/Jul/12 05:00 AM
Component/s: SPARQL, Query Model, Query Optimizer, Query Engine
Affects Version/s: 2.6.5
Fix Version/s: 2.6.8

Environment: MemoryStore used


 Description   
When having the following example data
  @prefix example: <http://www.example.com/> .
  {
    example:person1 example:name "piet" .
    example:person1 example:surname "jansen"
  }
with the following query
  PREFIX example: <http://www.example.com/>
  SELECT * WHERE
  {
    ?person example:name ?name .
    ?person example:surname ?surname .
    FILTER EXISTS
    {
       FILTER (regex(?name,"pi") && regex(?surname,"jan")) #should give result but no result is returned
       # FILTER regex(?name,"pi") works fine
       # FILTER (regex(?name,"nomatch") || regex(?surname,"jan")) works fine
       # FILTER (regex(?name,"pi") || regex(?surname,"nomtach")) works fine
       # FILTER (regex(?name,"pi") && 10 > 3) works fine
    }
  }
Then it does not return any results anymore, while it should return 1 result

 All   Comments   Change History      Sort Order:
Comment by James Leigh [25/Jun/12 02:34 PM]
Not a bug as per SPARQL spec

Comment by James Leigh [25/Jun/12 04:53 PM]
Requires further investigation.

Comment by Jeen Broekstra [06/Jul/12 04:35 AM]
possible problem with workaround in FilterIterator.accept which skips limiting bindings to inscopebindings when the filter's parent is an exists function: due to the use of && the parent is not directly an exists.

Comment by Jeen Broekstra [06/Jul/12 05:00 AM]
Caused by a bug in FilterIterator. Test case and fix checked in, test case now greenlines.