# HG changeset patch # User jbe # Date 1311987805 -7200 # Node ID 548152fa67e53f731fe4964d7421f2497b4fdc09 # Parent 8b496fa85a65ab6208dee76538624956c449a052 Added missing function "calculate_member_counts" to core-update.v1.4.0_rc4-v1.5.0_rc1.sql diff -r 8b496fa85a65 -r 548152fa67e5 update/core-update.v1.4.0_rc4-v1.5.0_rc1.sql --- a/update/core-update.v1.4.0_rc4-v1.5.0_rc1.sql Sat Jul 30 01:57:27 2011 +0200 +++ b/update/core-update.v1.4.0_rc4-v1.5.0_rc1.sql Sat Jul 30 03:03:25 2011 +0200 @@ -329,6 +329,31 @@ COMMENT ON FUNCTION "check_activity"() IS 'Deactivates members when "last_activity" is older than "system_setting"."member_ttl".'; +CREATE OR REPLACE FUNCTION "calculate_member_counts"() + RETURNS VOID + LANGUAGE 'plpgsql' VOLATILE AS $$ + BEGIN + LOCK TABLE "member" IN SHARE MODE; + LOCK TABLE "member_count" IN EXCLUSIVE MODE; + LOCK TABLE "unit" IN EXCLUSIVE MODE; + LOCK TABLE "area" IN EXCLUSIVE MODE; + LOCK TABLE "privilege" IN SHARE MODE; + LOCK TABLE "membership" IN SHARE MODE; + DELETE FROM "member_count"; + INSERT INTO "member_count" ("total_count") + SELECT "total_count" FROM "member_count_view"; + UPDATE "unit" SET "member_count" = "view"."member_count" + FROM "unit_member_count" AS "view" + WHERE "view"."unit_id" = "unit"."id"; + UPDATE "area" SET + "direct_member_count" = "view"."direct_member_count", + "member_weight" = "view"."member_weight" + FROM "area_member_count" AS "view" + WHERE "view"."area_id" = "area"."id"; + RETURN; + END; + $$; + CREATE OR REPLACE FUNCTION "create_interest_snapshot" ( "issue_id_p" "issue"."id"%TYPE ) RETURNS VOID