Sebastian Schaffert created MARMOTTA-561:
--------------------------------------------
Summary: BIND in subexpression and comparison evaluated wrongly
Key: MARMOTTA-561
URL: https://issues.apache.org/jira/browse/MARMOTTA-561
Project: Marmotta
Issue Type: Bug
Components: KiWi Triple Store
Reporter: Sebastian Schaffert
Assignee: Sebastian Schaffert
The following query is translated wrongly into SQL:
{code}
PREFIX : <http://example.org/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?z ?s1
{
?s ?p ?o .
?p a owl:DatatypeProperty .
BIND(?o+1 AS ?z)
?s1 ?p1 ?z .
?p1 a owl:DatatypeProperty .
}
{code}
The SQL translation is:
{code}
SELECT P2.subject AS V2, P4_object_V6.ivalue + 1 AS V3
FROM triples P1
INNER JOIN nodes AS P1_subject_V1 ON P1.subject = P1_subject_V1.id
CROSS JOIN
triples P2
INNER JOIN nodes AS P2_subject_V2 ON P2.subject = P2_subject_V2.id
INNER JOIN nodes AS P2_predicate_V1 ON P2.predicate = P2_predicate_V1.id
INNER JOIN nodes AS P2_object_V3 ON P2.object = P2_object_V3.id
CROSS JOIN
triples P3
INNER JOIN nodes AS P3_subject_V4 ON P3.subject = P3_subject_V4.id
CROSS JOIN
triples P4
INNER JOIN nodes AS P4_subject_V5 ON P4.subject = P4_subject_V5.id
INNER JOIN nodes AS P4_predicate_V4 ON P4.predicate = P4_predicate_V4.id
INNER JOIN nodes AS P4_object_V6 ON P4.object = P4_object_V6.id
WHERE P1.deleted = false
AND P1.predicate = 527741445197750272
AND P1.object = 527759387686625280
AND P2.deleted = false
AND P1.subject = P2.predicate
AND P4_object_V6.ivalue + 1 = P2.object
AND P3.deleted = false
AND P3.predicate = 527741445197750272
AND P3.object = 527759387686625280
AND P4.deleted = false
AND P3.subject = P4.predicate
{code}
Note the invalid comparison "P4_object_V6.ivalue + 1 = P2.object"
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)