# HG changeset patch # User jbe # Date 1345405257 -7200 # Node ID fb66e74d94b89b3143571e1c0b60fbd86392b9ab # Parent 13a9f609c3deb85afc5bdfbc5837ff1936c6c40e Changed order of "close_voting" and "clean_issue" functions in update/core-update.v2.0.11-v2.1.0.sql diff -r 13a9f609c3de -r fb66e74d94b8 update/core-update.v2.0.11-v2.1.0.sql --- a/update/core-update.v2.0.11-v2.1.0.sql Sun Aug 19 21:04:47 2012 +0200 +++ b/update/core-update.v2.0.11-v2.1.0.sql Sun Aug 19 21:40:57 2012 +0200 @@ -161,50 +161,6 @@ 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"'; 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.'; -CREATE OR REPLACE FUNCTION "clean_issue"("issue_id_p" "issue"."id"%TYPE) - RETURNS VOID - LANGUAGE 'plpgsql' VOLATILE AS $$ - DECLARE - "issue_row" "issue"%ROWTYPE; - BEGIN - SELECT * INTO "issue_row" - FROM "issue" WHERE "id" = "issue_id_p" - FOR UPDATE; - IF "issue_row"."cleaned" ISNULL THEN - UPDATE "issue" SET - "state" = 'voting', - "closed" = NULL, - "ranks_available" = FALSE - WHERE "id" = "issue_id_p"; - DELETE FROM "delegating_voter" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "direct_voter" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "delegating_interest_snapshot" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "direct_interest_snapshot" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "delegating_population_snapshot" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "direct_population_snapshot" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "non_voter" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "delegation" - WHERE "issue_id" = "issue_id_p"; - DELETE FROM "supporter" - WHERE "issue_id" = "issue_id_p"; - UPDATE "issue" SET - "state" = "issue_row"."state", - "closed" = "issue_row"."closed", - "ranks_available" = "issue_row"."ranks_available", - "cleaned" = now() - WHERE "id" = "issue_id_p"; - END IF; - RETURN; - END; - $$; - CREATE OR REPLACE FUNCTION "close_voting"("issue_id_p" "issue"."id"%TYPE) RETURNS VOID LANGUAGE 'plpgsql' VOLATILE AS $$ @@ -280,6 +236,50 @@ END; $$; +CREATE OR REPLACE FUNCTION "clean_issue"("issue_id_p" "issue"."id"%TYPE) + RETURNS VOID + LANGUAGE 'plpgsql' VOLATILE AS $$ + DECLARE + "issue_row" "issue"%ROWTYPE; + BEGIN + SELECT * INTO "issue_row" + FROM "issue" WHERE "id" = "issue_id_p" + FOR UPDATE; + IF "issue_row"."cleaned" ISNULL THEN + UPDATE "issue" SET + "state" = 'voting', + "closed" = NULL, + "ranks_available" = FALSE + WHERE "id" = "issue_id_p"; + DELETE FROM "delegating_voter" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "direct_voter" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "delegating_interest_snapshot" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "direct_interest_snapshot" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "delegating_population_snapshot" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "direct_population_snapshot" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "non_voter" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "delegation" + WHERE "issue_id" = "issue_id_p"; + DELETE FROM "supporter" + WHERE "issue_id" = "issue_id_p"; + UPDATE "issue" SET + "state" = "issue_row"."state", + "closed" = "issue_row"."closed", + "ranks_available" = "issue_row"."ranks_available", + "cleaned" = now() + WHERE "id" = "issue_id_p"; + END IF; + RETURN; + END; + $$; + -- "non_voter" deletes "direct_voter" and vice versa