liquid_feedback_core
changeset 582:225a0c047691
Bugfix in function "write_event_initiative_revoked_trigger" (wrong use of SELECT, needs to be PERFORM)
author | jbe |
---|---|
date | Tue Sep 04 14:30:41 2018 +0200 (2018-09-04) |
parents | 1cb6710fc429 |
children | f5095a9696eb |
files | core.sql update/core-update.v4.0.0-v4.0.1.sql |
line diff
1.1 --- a/core.sql Sun Mar 04 18:10:07 2018 +0100 1.2 +++ b/core.sql Tue Sep 04 14:30:41 2018 +0200 1.3 @@ -1999,13 +1999,13 @@ 1.4 BEGIN 1.5 IF OLD."revoked" ISNULL AND NEW."revoked" NOTNULL THEN 1.6 -- NOTE: lock for primary key update to avoid new drafts 1.7 - SELECT NULL FROM "initiative" WHERE "id" = NEW."id" FOR UPDATE; 1.8 + PERFORM NULL FROM "initiative" WHERE "id" = NEW."id" FOR UPDATE; 1.9 SELECT * INTO "issue_row" FROM "issue" 1.10 WHERE "id" = NEW."issue_id" FOR SHARE; 1.11 SELECT * INTO "area_row" FROM "area" 1.12 WHERE "id" = "issue_row"."area_id" FOR SHARE; 1.13 -- NOTE: FOR SHARE cannot be used with DISTINCT in view "current_draft" 1.14 - SELECT NULL FROM "draft" WHERE "initiative_id" = NEW."id" FOR SHARE; 1.15 + PERFORM NULL FROM "draft" WHERE "initiative_id" = NEW."id" FOR SHARE; 1.16 SELECT "id" INTO "draft_id_v" FROM "current_draft" 1.17 WHERE "initiative_id" = NEW."id"; 1.18 INSERT INTO "event" (
2.1 --- a/update/core-update.v4.0.0-v4.0.1.sql Sun Mar 04 18:10:07 2018 +0100 2.2 +++ b/update/core-update.v4.0.0-v4.0.1.sql Tue Sep 04 14:30:41 2018 +0200 2.3 @@ -66,4 +66,39 @@ 2.4 COMMENT ON COLUMN "system_application"."base_url" IS 'Base URL for users'; 2.5 COMMENT ON COLUMN "system_application"."manifest_url" IS 'URL referring to a manifest that can be used for application (type/version) discovery'; 2.6 2.7 +CREATE OR REPLACE FUNCTION "write_event_initiative_revoked_trigger"() 2.8 + RETURNS TRIGGER 2.9 + LANGUAGE 'plpgsql' VOLATILE AS $$ 2.10 + DECLARE 2.11 + "issue_row" "issue"%ROWTYPE; 2.12 + "area_row" "area"%ROWTYPE; 2.13 + "draft_id_v" "draft"."id"%TYPE; 2.14 + BEGIN 2.15 + IF OLD."revoked" ISNULL AND NEW."revoked" NOTNULL THEN 2.16 + -- NOTE: lock for primary key update to avoid new drafts 2.17 + PERFORM NULL FROM "initiative" WHERE "id" = NEW."id" FOR UPDATE; 2.18 + SELECT * INTO "issue_row" FROM "issue" 2.19 + WHERE "id" = NEW."issue_id" FOR SHARE; 2.20 + SELECT * INTO "area_row" FROM "area" 2.21 + WHERE "id" = "issue_row"."area_id" FOR SHARE; 2.22 + -- NOTE: FOR SHARE cannot be used with DISTINCT in view "current_draft" 2.23 + PERFORM NULL FROM "draft" WHERE "initiative_id" = NEW."id" FOR SHARE; 2.24 + SELECT "id" INTO "draft_id_v" FROM "current_draft" 2.25 + WHERE "initiative_id" = NEW."id"; 2.26 + INSERT INTO "event" ( 2.27 + "event", "member_id", 2.28 + "unit_id", "area_id", "policy_id", "issue_id", "state", 2.29 + "initiative_id", "draft_id" 2.30 + ) VALUES ( 2.31 + 'initiative_revoked', NEW."revoked_by_member_id", 2.32 + "area_row"."unit_id", "issue_row"."area_id", 2.33 + "issue_row"."policy_id", 2.34 + NEW."issue_id", "issue_row"."state", 2.35 + NEW."id", "draft_id_v" 2.36 + ); 2.37 + END IF; 2.38 + RETURN NULL; 2.39 + END; 2.40 + $$; 2.41 + 2.42 COMMIT;