# HG changeset patch # User jbe # Date 1506708566 -7200 # Node ID 4c40333dac669cbcb04877ec5538ba2dce0aad14 # Parent 622c71ca6428282a8dd06102a871204a4ed50148 Fill new columns "issue_quorum" and "initiative_quorum" of "issue" table in update script to version 4.0.0 diff -r 622c71ca6428 -r 4c40333dac66 update/core-update.v3.2.2-v4.0.0.sql --- a/update/core-update.v3.2.2-v4.0.0.sql Fri Sep 29 19:37:49 2017 +0200 +++ b/update/core-update.v3.2.2-v4.0.0.sql Fri Sep 29 20:09:26 2017 +0200 @@ -579,6 +579,29 @@ COMMENT ON COLUMN "issue"."population" IS 'Count of members in "snapshot_population" table with "snapshot_id" equal to "issue"."latest_snapshot_id"'; +ALTER TABLE "issue" DISABLE TRIGGER USER; -- NOTE: required to modify table later + +UPDATE "issue" SET + "issue_quorum" = ceil( + ("subquery"."population"::INT8 * "policy"."issue_quorum_num"::INT8) / + "policy"."issue_quorum_den"::FLOAT8 + ), + "initiative_quorum" = ceil( + ("issue"."population"::INT8 * "policy"."initiative_quorum_num"::INT8) / + "policy"."initiative_quorum_den"::FLOAT8 + ) + FROM ( + SELECT "issue_id", sum("weight") AS "population" + FROM "direct_population_snapshot" + WHERE "event" = 'end_of_admission' + GROUP BY "issue_id" + ) AS "subquery", "policy" + WHERE "issue"."id" = "subquery"."issue_id" + AND "issue"."policy_id" = "policy"."id"; + +ALTER TABLE "issue" ENABLE TRIGGER USER; + + ALTER TABLE "snapshot" ADD FOREIGN KEY ("issue_id") REFERENCES "issue" ("id") ON DELETE CASCADE ON UPDATE CASCADE;