Skip to content

Commit 9201449

Browse files
committed
Updating trigger and deletesite function
The ts.delete site wasn't working. The main issue seemed to be with the trigger, which was trying to update tuples on delete. There is no NEW on delete, so the trigger function was failing.
1 parent 53ad461 commit 9201449

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

function/triggers/sitegeoms.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CREATE TRIGGER updatelocations
2-
AFTER INSERT OR UPDATE OR DELETE
2+
AFTER INSERT OR UPDATE
33
ON ndb.sites
44
FOR EACH ROW
55
EXECUTE PROCEDURE ti.site_bounding()

function/ts/deletesite.sql

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CREATE OR REPLACE FUNCTION ts.deletesite(_siteid integer)
1+
CREATE OR REPLACE FUNCTION ts.deletesite(:_siteid integer)
22
RETURNS void
33
LANGUAGE sql
44
AS $function$
@@ -7,11 +7,11 @@ AS $function$
77
SELECT gcc.chroncontrolid,
88
gcc.geochronid
99
FROM ndb.sites AS sts
10-
JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
11-
JOIN ndb.chronologies AS chr ON cu.collectionunitid = chr.collectionunitid
12-
JOIN ndb.chroncontrols AS cc ON chr.chronologyid = cc.chronologyid
13-
JOIN ndb.geochroncontrols AS gcc ON cc.chroncontrolid = gcc.chroncontrolid
14-
WHERE sts.siteid = _siteid
10+
LEFT JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
11+
LEFT JOIN ndb.chronologies AS chr ON cu.collectionunitid = chr.collectionunitid
12+
LEFT JOIN ndb.chroncontrols AS cc ON chr.chronologyid = cc.chronologyid
13+
LEFT JOIN ndb.geochroncontrols AS gcc ON cc.chroncontrolid = gcc.chroncontrolid
14+
WHERE sts.siteid = :_siteid
1515
)
1616

1717
DELETE FROM ndb.geochroncontrols AS gcc
@@ -20,35 +20,35 @@ AS $function$
2020
WITH chids AS (
2121
SELECT chr.chronologyid
2222
FROM ndb.sites AS sts
23-
JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
24-
JOIN ndb.chronologies AS chr ON cu.collectionunitid = chr.collectionunitid
25-
WHERE sts.siteid = _siteid
23+
LEFT JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
24+
LEFT JOIN ndb.chronologies AS chr ON cu.collectionunitid = chr.collectionunitid
25+
WHERE sts.siteid = :_siteid
2626
)
2727

2828
DELETE FROM ndb.chronologies AS chr WHERE chr.chronologyid IN (SELECT chronologyid FROM chids);
2929

3030
WITH samps AS (
3131
SELECT smp.sampleid
3232
FROM ndb.sites AS sts
33-
JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
34-
JOIN ndb.analysisunits AS au ON cu.collectionunitid = au.collectionunitid
35-
JOIN ndb.samples AS smp ON au.analysisunitid = smp.analysisunitid
36-
WHERE sts.siteid = _siteid
33+
LEFT JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
34+
LEFT JOIN ndb.analysisunits AS au ON cu.collectionunitid = au.collectionunitid
35+
LEFT JOIN ndb.samples AS smp ON au.analysisunitid = smp.analysisunitid
36+
WHERE sts.siteid = :_siteid
3737
)
3838

3939
DELETE FROM ndb.samples AS smp WHERE smp.sampleid IN (SELECT sampleid FROM samps);
4040

4141
WITH aus AS (
4242
SELECT au.analysisunitid
4343
FROM ndb.sites AS sts
44-
JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
45-
JOIN ndb.analysisunits AS au ON cu.collectionunitid = au.collectionunitid
46-
WHERE sts.siteid = _siteid
44+
LEFT JOIN ndb.collectionunits AS cu ON sts.siteid = cu.siteid
45+
LEFT JOIN ndb.analysisunits AS au ON cu.collectionunitid = au.collectionunitid
46+
WHERE sts.siteid = :_siteid
4747
)
4848

4949
DELETE FROM ndb.analysisunits AS au WHERE au.analysisunitid IN (SELECT analysisunitid FROM aus);
5050

5151
DELETE FROM ndb.sites AS sts
52-
WHERE sts.siteid = _siteid
52+
WHERE sts.siteid = :_siteid;
5353

5454
$function$

0 commit comments

Comments
 (0)