1017 |
1017 |
|
1018 |
1018 |
|
1019 |
1019 |
--
|
1020 |
|
-- Name: taxondetermination_set_iscurrent(); Type: FUNCTION; Schema: public; Owner: -
|
|
1020 |
-- Name: taxondetermination_set_iscurrent(integer); Type: FUNCTION; Schema: public; Owner: -
|
1021 |
1021 |
--
|
1022 |
1022 |
|
1023 |
|
CREATE FUNCTION taxondetermination_set_iscurrent() RETURNS trigger
|
|
1023 |
CREATE FUNCTION taxondetermination_set_iscurrent(taxonoccurrence_id_ integer) RETURNS void
|
1024 |
1024 |
LANGUAGE plpgsql
|
1025 |
1025 |
AS $$
|
1026 |
1026 |
BEGIN
|
1027 |
1027 |
UPDATE taxondetermination SET iscurrent = false
|
1028 |
|
WHERE taxonoccurrence_id = new.taxonoccurrence_id AND iscurrent;
|
|
1028 |
WHERE taxonoccurrence_id = taxonoccurrence_id_ AND iscurrent;
|
1029 |
1029 |
|
1030 |
1030 |
UPDATE taxondetermination SET iscurrent = true
|
1031 |
1031 |
WHERE taxondetermination_id = (
|
1032 |
1032 |
SELECT taxondetermination_id FROM taxondetermination
|
1033 |
|
WHERE taxonoccurrence_id = new.taxonoccurrence_id
|
|
1033 |
WHERE taxonoccurrence_id = taxonoccurrence_id_
|
1034 |
1034 |
ORDER BY
|
1035 |
1035 |
-- Scrubbed determinations must come first for scrub.make to work
|
1036 |
1036 |
COALESCE(determinationtype = 'computer', false) DESC/*true first*/
|
... | ... | |
1038 |
1038 |
, determinationdate DESC NULLS LAST
|
1039 |
1039 |
LIMIT 1
|
1040 |
1040 |
);
|
1041 |
|
|
|
1041 |
END;
|
|
1042 |
$$;
|
|
1043 |
|
|
1044 |
|
|
1045 |
--
|
|
1046 |
-- Name: taxondetermination_set_iscurrent_on_delete(); Type: FUNCTION; Schema: public; Owner: -
|
|
1047 |
--
|
|
1048 |
|
|
1049 |
CREATE FUNCTION taxondetermination_set_iscurrent_on_delete() RETURNS trigger
|
|
1050 |
LANGUAGE plpgsql
|
|
1051 |
AS $$
|
|
1052 |
BEGIN
|
|
1053 |
PERFORM taxondetermination_set_iscurrent(old.taxonoccurrence_id);
|
|
1054 |
RETURN old;
|
|
1055 |
END;
|
|
1056 |
$$;
|
|
1057 |
|
|
1058 |
|
|
1059 |
--
|
|
1060 |
-- Name: taxondetermination_set_iscurrent_on_insert(); Type: FUNCTION; Schema: public; Owner: -
|
|
1061 |
--
|
|
1062 |
|
|
1063 |
CREATE FUNCTION taxondetermination_set_iscurrent_on_insert() RETURNS trigger
|
|
1064 |
LANGUAGE plpgsql
|
|
1065 |
AS $$
|
|
1066 |
BEGIN
|
|
1067 |
PERFORM taxondetermination_set_iscurrent(new.taxonoccurrence_id);
|
1042 |
1068 |
RETURN new;
|
1043 |
1069 |
END;
|
1044 |
1070 |
$$;
|
... | ... | |
7350 |
7376 |
|
7351 |
7377 |
|
7352 |
7378 |
--
|
7353 |
|
-- Name: taxondetermination_set_iscurrent; Type: TRIGGER; Schema: public; Owner: -
|
|
7379 |
-- Name: taxondetermination_set_iscurrent_on_delete; Type: TRIGGER; Schema: public; Owner: -
|
7354 |
7380 |
--
|
7355 |
7381 |
|
7356 |
|
CREATE TRIGGER taxondetermination_set_iscurrent AFTER INSERT ON taxondetermination FOR EACH ROW EXECUTE PROCEDURE taxondetermination_set_iscurrent();
|
|
7382 |
CREATE TRIGGER taxondetermination_set_iscurrent_on_delete AFTER DELETE ON taxondetermination FOR EACH ROW EXECUTE PROCEDURE taxondetermination_set_iscurrent_on_delete();
|
7357 |
7383 |
|
7358 |
7384 |
|
7359 |
7385 |
--
|
|
7386 |
-- Name: taxondetermination_set_iscurrent_on_insert; Type: TRIGGER; Schema: public; Owner: -
|
|
7387 |
--
|
|
7388 |
|
|
7389 |
CREATE TRIGGER taxondetermination_set_iscurrent_on_insert AFTER INSERT ON taxondetermination FOR EACH ROW EXECUTE PROCEDURE taxondetermination_set_iscurrent_on_insert();
|
|
7390 |
|
|
7391 |
|
|
7392 |
--
|
7360 |
7393 |
-- Name: taxonlabel_0_matched_label_id_self_ref; Type: TRIGGER; Schema: public; Owner: -
|
7361 |
7394 |
--
|
7362 |
7395 |
|
schemas/vegbien.sql: taxondetermination: taxondetermination_set_iscurrent() trigger: Also run on delete, to mark another taxondetermination as the current one when a current taxondetermination is deleted