x
1
DECLARE
2
psubj_feature_id ALIAS FOR $1;
3
pobj_feature_id ALIAS FOR $2;
4
ptype_id ALIAS FOR $3;
5
6
pkeyid INTEGER;
7
BEGIN
8
SELECT INTO pkeyid feature_relationship_id
9
FROM feature_relationship
10
WHERE feature_relationship.subj_feature_id = psubj_feature_id AND
11
feature_relationship.obj_feature_id = pobj_feature_id AND
12
feature_relationship.type_id = ptype_id;
13
IF NOT FOUND THEN
14
INSERT INTO feature_relationship
15
(subj_feature_id, obj_feature_id, type_id)
16
VALUES
17
(psubj_feature_id, pobj_feature_id, ptype_id);
18
RETURN currval('feature_relationship_pk_seq');
19
END IF;
20
UPDATE feature_relationship
21
SET
22
23
WHERE
24
feature_relationship.subj_feature_id = psubj_feature_id AND
25
feature_relationship.obj_feature_id = pobj_feature_id AND
26
feature_relationship.type_id = ptype_id
27
28
RETURN pkeyid;
29
END;