# HG changeset patch # User jbe # Date 1288485485 -7200 # Node ID fb9688f31740c4a95a9f2c63c114f64f812ddf05 # Parent 20be30c73831235fac65b59c3aafe49d63f4325d Corrected "delete_member" and "delete_private_data" functions to refer to "ignored_issue" table instead of non-existing "ignored_voting" table; Delete "ignored_issue" entries in "clean_issue" function as well diff -r 20be30c73831 -r fb9688f31740 core.sql --- a/core.sql Sun Oct 31 02:14:18 2010 +0200 +++ b/core.sql Sun Oct 31 02:38:05 2010 +0200 @@ -3327,6 +3327,8 @@ WHERE "issue_id" = "issue_id_p"; DELETE FROM "direct_population_snapshot" WHERE "issue_id" = "issue_id_p"; + DELETE FROM "ignored_issue" + WHERE "issue_id" = "issue_id_p"; DELETE FROM "delegation" WHERE "issue_id" = "issue_id_p"; DELETE FROM "supporter" @@ -3386,8 +3388,8 @@ DELETE FROM "initiative_setting" WHERE "member_id" = "member_id_p"; DELETE FROM "suggestion_setting" WHERE "member_id" = "member_id_p"; DELETE FROM "membership" WHERE "member_id" = "member_id_p"; + DELETE FROM "ignored_issue" WHERE "member_id" = "member_id_p"; DELETE FROM "delegation" WHERE "truster_id" = "member_id_p"; - DELETE FROM "ignored_voting" WHERE "member_id" = "member_id_p"; DELETE FROM "direct_voter" USING "issue" WHERE "direct_voter"."issue_id" = "issue"."id" AND "issue"."closed" ISNULL @@ -3440,7 +3442,7 @@ DELETE FROM "issue_setting"; DELETE FROM "initiative_setting"; DELETE FROM "suggestion_setting"; - DELETE FROM "ignored_voting"; + DELETE FROM "ignored_issue"; DELETE FROM "direct_voter" USING "issue" WHERE "direct_voter"."issue_id" = "issue"."id" AND "issue"."closed" ISNULL; diff -r 20be30c73831 -r fb9688f31740 update/core-update.v1.2.9-v1.3.0.sql --- a/update/core-update.v1.2.9-v1.3.0.sql Sun Oct 31 02:14:18 2010 +0200 +++ b/update/core-update.v1.2.9-v1.3.0.sql Sun Oct 31 02:38:05 2010 +0200 @@ -274,6 +274,48 @@ -- delete entries of "ignored_issue" table in "delete_member"(...) and "delete_private_data"() functions +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 + "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 "ignored_issue" + 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 + "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 "delete_member"("member_id_p" "member"."id"%TYPE) RETURNS VOID LANGUAGE 'plpgsql' VOLATILE AS $$ @@ -316,8 +358,8 @@ DELETE FROM "initiative_setting" WHERE "member_id" = "member_id_p"; DELETE FROM "suggestion_setting" WHERE "member_id" = "member_id_p"; DELETE FROM "membership" WHERE "member_id" = "member_id_p"; + DELETE FROM "ignored_issue" WHERE "member_id" = "member_id_p"; DELETE FROM "delegation" WHERE "truster_id" = "member_id_p"; - DELETE FROM "ignored_voting" WHERE "member_id" = "member_id_p"; DELETE FROM "direct_voter" USING "issue" WHERE "direct_voter"."issue_id" = "issue"."id" AND "issue"."closed" ISNULL @@ -367,7 +409,7 @@ DELETE FROM "issue_setting"; DELETE FROM "initiative_setting"; DELETE FROM "suggestion_setting"; - DELETE FROM "ignored_voting"; + DELETE FROM "ignored_issue"; DELETE FROM "direct_voter" USING "issue" WHERE "direct_voter"."issue_id" = "issue"."id" AND "issue"."closed" ISNULL;