liquid_feedback_core
changeset 284:4f935e989ff6
"non_voter" deletes "direct_voter" and vice versa
author | jbe |
---|---|
date | Sun Aug 19 19:04:22 2012 +0200 (2012-08-19) |
parents | a00b58b7a510 |
children | 4868a7d591de |
files | core.sql update/core-update.v2.0.11-v2.1.0.sql |
line diff
1.1 --- a/core.sql Sun Aug 19 18:31:57 2012 +0200 1.2 +++ b/core.sql Sun Aug 19 19:04:22 2012 +0200 1.3 @@ -1510,6 +1510,44 @@ 1.4 COMMENT ON TRIGGER "last_opinion_deletes_suggestion" ON "opinion" IS 'Removing the last opinion of a suggestion deletes the suggestion'; 1.5 1.6 1.7 +CREATE FUNCTION "non_voter_deletes_direct_voter_trigger"() 1.8 + RETURNS TRIGGER 1.9 + LANGUAGE 'plpgsql' VOLATILE AS $$ 1.10 + BEGIN 1.11 + DELETE FROM "direct_voter" 1.12 + WHERE "issue_id" = NEW."issue_id" AND "member_id" = NEW."member_id"; 1.13 + RETURN NULL; 1.14 + END; 1.15 + $$; 1.16 + 1.17 +CREATE TRIGGER "non_voter_deletes_direct_voter" 1.18 + AFTER INSERT OR UPDATE ON "non_voter" 1.19 + FOR EACH ROW EXECUTE PROCEDURE 1.20 + "non_voter_deletes_direct_voter_trigger"(); 1.21 + 1.22 +COMMENT ON FUNCTION "non_voter_deletes_direct_voter_trigger"() IS 'Implementation of trigger "non_voter_deletes_direct_voter" on table "non_voter"'; 1.23 +COMMENT ON TRIGGER "non_voter_deletes_direct_voter" ON "non_voter" IS 'An entry in the "non_voter" table deletes an entry in the "direct_voter" table (and vice versa due to trigger "direct_voter_deletes_non_voter" on table "direct_voter")'; 1.24 + 1.25 + 1.26 +CREATE FUNCTION "direct_voter_deletes_non_voter_trigger"() 1.27 + RETURNS TRIGGER 1.28 + LANGUAGE 'plpgsql' VOLATILE AS $$ 1.29 + BEGIN 1.30 + DELETE FROM "non_voter" 1.31 + WHERE "issue_id" = NEW."issue_id" AND "member_id" = NEW."member_id"; 1.32 + RETURN NULL; 1.33 + END; 1.34 + $$; 1.35 + 1.36 +CREATE TRIGGER "direct_voter_deletes_non_voter" 1.37 + AFTER INSERT OR UPDATE ON "direct_voter" 1.38 + FOR EACH ROW EXECUTE PROCEDURE 1.39 + "direct_voter_deletes_non_voter_trigger"(); 1.40 + 1.41 +COMMENT ON FUNCTION "direct_voter_deletes_non_voter_trigger"() IS 'Implementation of trigger "direct_voter_deletes_non_voter" on table "direct_voter"'; 1.42 +COMMENT ON TRIGGER "direct_voter_deletes_non_voter" ON "direct_voter" IS 'An entry in the "direct_voter" table deletes an entry in the "non_voter" table (and vice versa due to trigger "non_voter_deletes_direct_voter" on table "non_voter")'; 1.43 + 1.44 + 1.45 1.46 --------------------------------------------------------------- 1.47 -- Ensure that votes are not modified when issues are frozen --
2.1 --- a/update/core-update.v2.0.11-v2.1.0.sql Sun Aug 19 18:31:57 2012 +0200 2.2 +++ b/update/core-update.v2.0.11-v2.1.0.sql Sun Aug 19 19:04:22 2012 +0200 2.3 @@ -37,6 +37,42 @@ 2.4 DROP TABLE "rendered_issue_comment"; 2.5 DROP TABLE "issue_comment"; 2.6 2.7 +CREATE FUNCTION "non_voter_deletes_direct_voter_trigger"() 2.8 + RETURNS TRIGGER 2.9 + LANGUAGE 'plpgsql' VOLATILE AS $$ 2.10 + BEGIN 2.11 + DELETE FROM "direct_voter" 2.12 + WHERE "issue_id" = NEW."issue_id" AND "member_id" = NEW."member_id"; 2.13 + RETURN NULL; 2.14 + END; 2.15 + $$; 2.16 + 2.17 +CREATE TRIGGER "non_voter_deletes_direct_voter" 2.18 + AFTER INSERT OR UPDATE ON "non_voter" 2.19 + FOR EACH ROW EXECUTE PROCEDURE 2.20 + "non_voter_deletes_direct_voter_trigger"(); 2.21 + 2.22 +COMMENT ON FUNCTION "non_voter_deletes_direct_voter_trigger"() IS 'Implementation of trigger "non_voter_deletes_direct_voter" on table "non_voter"'; 2.23 +COMMENT ON TRIGGER "non_voter_deletes_direct_voter" ON "non_voter" IS 'An entry in the "non_voter" table deletes an entry in the "direct_voter" table (and vice versa due to trigger "direct_voter_deletes_non_voter" on table "direct_voter")'; 2.24 + 2.25 +CREATE FUNCTION "direct_voter_deletes_non_voter_trigger"() 2.26 + RETURNS TRIGGER 2.27 + LANGUAGE 'plpgsql' VOLATILE AS $$ 2.28 + BEGIN 2.29 + DELETE FROM "non_voter" 2.30 + WHERE "issue_id" = NEW."issue_id" AND "member_id" = NEW."member_id"; 2.31 + RETURN NULL; 2.32 + END; 2.33 + $$; 2.34 + 2.35 +CREATE TRIGGER "direct_voter_deletes_non_voter" 2.36 + AFTER INSERT OR UPDATE ON "direct_voter" 2.37 + FOR EACH ROW EXECUTE PROCEDURE 2.38 + "direct_voter_deletes_non_voter_trigger"(); 2.39 + 2.40 +COMMENT ON FUNCTION "direct_voter_deletes_non_voter_trigger"() IS 'Implementation of trigger "direct_voter_deletes_non_voter" on table "direct_voter"'; 2.41 +COMMENT ON TRIGGER "direct_voter_deletes_non_voter" ON "direct_voter" IS 'An entry in the "direct_voter" table deletes an entry in the "non_voter" table (and vice versa due to trigger "non_voter_deletes_direct_voter" on table "non_voter")'; 2.42 + 2.43 CREATE OR REPLACE FUNCTION "freeze_after_snapshot" 2.44 ( "issue_id_p" "issue"."id"%TYPE ) 2.45 RETURNS VOID