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  

Impressum / About Us