[
https://issues.jboss.org/browse/ARTIF-202?page=com.atlassian.jira.plugin....
]
Brett Meyer commented on ARTIF-202:
-----------------------------------
Eric's example currently does:
{code}
SELECT artifact1.* FROM [sramp:baseArtifactType] AS artifact1 INNER JOIN
[sramp:relationship] AS relationship2 ON ISCHILDNODE(relationship2,artifact1) WHERE
(artifact1.[sramp:artifactType] = 'Part' AND (NOT
(relationship2.[sramp:relationshipType] = 'element') AND
ISDESCENDANTNODE([sramp:baseArtifactType],'/s-ramp')))
{code}
The not() function doesn't quite work with relationships
--------------------------------------------------------
Key: ARTIF-202
URL:
https://issues.jboss.org/browse/ARTIF-202
Project: Artificer
Issue Type: Bug
Reporter: Eric Wittmann
Assignee: Brett Meyer
Priority: Minor
Fix For: 1.0.0.Alpha1
The not() function works well with properties, but not quite with relationships. An
example of what doesn't work:
/s-ramp/wsdl/Part[not(element)]
That should return all Parts that do *not* have an element relationship. Since
relationships are found by doing a JOIN, it's actually tricky to invert. Right now I
think the query engine will produce something that would return all Parts that have some
*other* relationship - but it won't return Parts without any relationships at all.
I'm not sure how to do the latter other than by using an IN with a subquery (which is
supported by ModeShape but is non-standard).
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)