x
1
DECLARE
2
pfeature_id ALIAS FOR $1;
3
ppkey_id ALIAS FOR $2;
4
ppval ALIAS FOR $3;
5
pprank ALIAS FOR $4;
6
7
pkeyid INTEGER;
8
BEGIN
9
SELECT INTO pkeyid featureprop_id
10
FROM featureprop
11
WHERE featureprop.feature_id = pfeature_id AND
12
featureprop.pkey_id = ppkey_id AND
13
featureprop.pval = ppval AND
14
featureprop.prank = pprank;
15
IF NOT FOUND THEN
16
INSERT INTO featureprop
17
(feature_id, pkey_id, pval, prank)
18
VALUES
19
(pfeature_id, ppkey_id, ppval, pprank);
20
RETURN currval('featureprop_pk_seq');
21
END IF;
22
UPDATE featureprop
23
SET
24
25
WHERE
26
featureprop.feature_id = pfeature_id AND
27
featureprop.pkey_id = ppkey_id AND
28
featureprop.pval = ppval AND
29
featureprop.prank = pprank
30
31
RETURN pkeyid;
32
END;