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

Impressum / About Us