From: Mike Rylander Date: Wed, 24 Aug 2016 18:51:32 +0000 (-0400) Subject: Moving function creation to later in the schema def, where its deps exist. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=9fc06033c0805b3f1832e74c0953d243d1a9465d;p=evergreen%2Fmasslnc.git Moving function creation to later in the schema def, where its deps exist. Signed-off-by: Mike Rylander --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 1e1dac8165..d696bf5480 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -1011,26 +1011,6 @@ CREATE TABLE config.usr_activity_type ( CONSTRAINT one_of_wwh CHECK (COALESCE(ewho,ewhat,ehow) IS NOT NULL) ); --- Remove all activity entries by activity type, --- except the most recent entry per user. -CREATE OR REPLACE FUNCTION - actor.purge_usr_activity_by_type(act_type INTEGER) - RETURNS VOID AS $$ -DECLARE - cur_usr INTEGER; -BEGIN - FOR cur_usr IN SELECT DISTINCT(usr) - FROM actor.usr_activity WHERE etype = act_type LOOP - DELETE FROM actor.usr_activity WHERE id IN ( - SELECT id - FROM actor.usr_activity - WHERE usr = cur_usr AND etype = act_type - ORDER BY event_time DESC OFFSET 1 - ); - - END LOOP; -END $$ LANGUAGE PLPGSQL; - CREATE UNIQUE INDEX unique_wwh ON config.usr_activity_type (COALESCE(ewho,''), COALESCE (ewhat,''), COALESCE(ehow,'')); diff --git a/Open-ILS/src/sql/Pg/005.schema.actors.sql b/Open-ILS/src/sql/Pg/005.schema.actors.sql index d7e3e6c3ed..d44ac53cd6 100644 --- a/Open-ILS/src/sql/Pg/005.schema.actors.sql +++ b/Open-ILS/src/sql/Pg/005.schema.actors.sql @@ -1031,4 +1031,24 @@ BEGIN END; $$ STRICT LANGUAGE PLPGSQL; +-- Remove all activity entries by activity type, +-- except the most recent entry per user. +CREATE OR REPLACE FUNCTION + actor.purge_usr_activity_by_type(act_type INTEGER) + RETURNS VOID AS $$ +DECLARE + cur_usr INTEGER; +BEGIN + FOR cur_usr IN SELECT DISTINCT(usr) + FROM actor.usr_activity WHERE etype = act_type LOOP + DELETE FROM actor.usr_activity WHERE id IN ( + SELECT id + FROM actor.usr_activity + WHERE usr = cur_usr AND etype = act_type + ORDER BY event_time DESC OFFSET 1 + ); + + END LOOP; +END $$ LANGUAGE PLPGSQL; + COMMIT;