liquid_feedback_core
changeset 288:fb66e74d94b8
Changed order of "close_voting" and "clean_issue" functions in update/core-update.v2.0.11-v2.1.0.sql
author | jbe |
---|---|
date | Sun Aug 19 21:40:57 2012 +0200 (2012-08-19) |
parents | 13a9f609c3de |
children | f2292b94fc58 |
files | update/core-update.v2.0.11-v2.1.0.sql |
line diff
1.1 --- a/update/core-update.v2.0.11-v2.1.0.sql Sun Aug 19 21:04:47 2012 +0200 1.2 +++ b/update/core-update.v2.0.11-v2.1.0.sql Sun Aug 19 21:40:57 2012 +0200 1.3 @@ -161,50 +161,6 @@ 1.4 COMMENT ON FUNCTION "voter_comment_fields_only_set_when_voter_comment_is_set_trigger"() IS 'Implementation of trigger "voter_comment_fields_only_set_when_voter_comment_is_set" ON table "direct_voter"'; 1.5 COMMENT ON TRIGGER "voter_comment_fields_only_set_when_voter_comment_is_set" ON "direct_voter" IS 'If "comment" is set to NULL, then other comment related fields are also set to NULL.'; 1.6 1.7 -CREATE OR REPLACE FUNCTION "clean_issue"("issue_id_p" "issue"."id"%TYPE) 1.8 - RETURNS VOID 1.9 - LANGUAGE 'plpgsql' VOLATILE AS $$ 1.10 - DECLARE 1.11 - "issue_row" "issue"%ROWTYPE; 1.12 - BEGIN 1.13 - SELECT * INTO "issue_row" 1.14 - FROM "issue" WHERE "id" = "issue_id_p" 1.15 - FOR UPDATE; 1.16 - IF "issue_row"."cleaned" ISNULL THEN 1.17 - UPDATE "issue" SET 1.18 - "state" = 'voting', 1.19 - "closed" = NULL, 1.20 - "ranks_available" = FALSE 1.21 - WHERE "id" = "issue_id_p"; 1.22 - DELETE FROM "delegating_voter" 1.23 - WHERE "issue_id" = "issue_id_p"; 1.24 - DELETE FROM "direct_voter" 1.25 - WHERE "issue_id" = "issue_id_p"; 1.26 - DELETE FROM "delegating_interest_snapshot" 1.27 - WHERE "issue_id" = "issue_id_p"; 1.28 - DELETE FROM "direct_interest_snapshot" 1.29 - WHERE "issue_id" = "issue_id_p"; 1.30 - DELETE FROM "delegating_population_snapshot" 1.31 - WHERE "issue_id" = "issue_id_p"; 1.32 - DELETE FROM "direct_population_snapshot" 1.33 - WHERE "issue_id" = "issue_id_p"; 1.34 - DELETE FROM "non_voter" 1.35 - WHERE "issue_id" = "issue_id_p"; 1.36 - DELETE FROM "delegation" 1.37 - WHERE "issue_id" = "issue_id_p"; 1.38 - DELETE FROM "supporter" 1.39 - WHERE "issue_id" = "issue_id_p"; 1.40 - UPDATE "issue" SET 1.41 - "state" = "issue_row"."state", 1.42 - "closed" = "issue_row"."closed", 1.43 - "ranks_available" = "issue_row"."ranks_available", 1.44 - "cleaned" = now() 1.45 - WHERE "id" = "issue_id_p"; 1.46 - END IF; 1.47 - RETURN; 1.48 - END; 1.49 - $$; 1.50 - 1.51 CREATE OR REPLACE FUNCTION "close_voting"("issue_id_p" "issue"."id"%TYPE) 1.52 RETURNS VOID 1.53 LANGUAGE 'plpgsql' VOLATILE AS $$ 1.54 @@ -280,6 +236,50 @@ 1.55 END; 1.56 $$; 1.57 1.58 +CREATE OR REPLACE FUNCTION "clean_issue"("issue_id_p" "issue"."id"%TYPE) 1.59 + RETURNS VOID 1.60 + LANGUAGE 'plpgsql' VOLATILE AS $$ 1.61 + DECLARE 1.62 + "issue_row" "issue"%ROWTYPE; 1.63 + BEGIN 1.64 + SELECT * INTO "issue_row" 1.65 + FROM "issue" WHERE "id" = "issue_id_p" 1.66 + FOR UPDATE; 1.67 + IF "issue_row"."cleaned" ISNULL THEN 1.68 + UPDATE "issue" SET 1.69 + "state" = 'voting', 1.70 + "closed" = NULL, 1.71 + "ranks_available" = FALSE 1.72 + WHERE "id" = "issue_id_p"; 1.73 + DELETE FROM "delegating_voter" 1.74 + WHERE "issue_id" = "issue_id_p"; 1.75 + DELETE FROM "direct_voter" 1.76 + WHERE "issue_id" = "issue_id_p"; 1.77 + DELETE FROM "delegating_interest_snapshot" 1.78 + WHERE "issue_id" = "issue_id_p"; 1.79 + DELETE FROM "direct_interest_snapshot" 1.80 + WHERE "issue_id" = "issue_id_p"; 1.81 + DELETE FROM "delegating_population_snapshot" 1.82 + WHERE "issue_id" = "issue_id_p"; 1.83 + DELETE FROM "direct_population_snapshot" 1.84 + WHERE "issue_id" = "issue_id_p"; 1.85 + DELETE FROM "non_voter" 1.86 + WHERE "issue_id" = "issue_id_p"; 1.87 + DELETE FROM "delegation" 1.88 + WHERE "issue_id" = "issue_id_p"; 1.89 + DELETE FROM "supporter" 1.90 + WHERE "issue_id" = "issue_id_p"; 1.91 + UPDATE "issue" SET 1.92 + "state" = "issue_row"."state", 1.93 + "closed" = "issue_row"."closed", 1.94 + "ranks_available" = "issue_row"."ranks_available", 1.95 + "cleaned" = now() 1.96 + WHERE "id" = "issue_id_p"; 1.97 + END IF; 1.98 + RETURN; 1.99 + END; 1.100 + $$; 1.101 + 1.102 1.103 -- "non_voter" deletes "direct_voter" and vice versa 1.104