# HG changeset patch # User jbe # Date 1307468737 -7200 # Node ID 60aaf3b11ca3b2769befe582c5ed3e6766e33fd7 # Parent b52f3281e769e22a8246bcbdc097e99022fc427f Simplify one UPDATE in function "calculate_ranks" diff -r b52f3281e769 -r 60aaf3b11ca3 core.sql --- a/core.sql Tue Jun 07 19:39:22 2011 +0200 +++ b/core.sql Tue Jun 07 19:45:37 2011 +0200 @@ -3702,9 +3702,9 @@ AND "positive_votes" >= "policy_row"."indirect_majority_positive" AND "issue_row"."voter_count"-"negative_votes" >= "policy_row"."indirect_majority_non_negative", + "schulze_rank" = "rank_ary"["i"], "better_than_status_quo" = "rank_ary"["i"] < "rank_ary"["dimension_v"], "worse_than_status_quo" = "rank_ary"["i"] > "rank_ary"["dimension_v"], - "schulze_rank" = "rank_ary"["i"], "multistage_majority" = "rank_ary"["i"] >= "rank_ary"["dimension_v"], "reverse_beat_path" = "matrix"["dimension_v"]["i"] >= 0 WHERE "id" = "initiative_id_v"; @@ -3775,27 +3775,17 @@ ) AS "subquery" WHERE "id" = "subquery"."initiative_id"; -- mark eligible initiatives: - "rank_v" := 1; UPDATE "initiative" SET "eligible" = TRUE - FROM ( - SELECT "initiative"."id" AS "initiative_id" - FROM "issue" - JOIN "policy" - ON "issue"."policy_id" = "policy"."id" - JOIN "initiative" - ON "issue"."id" = "initiative"."issue_id" - WHERE "issue_id" = "issue_id_p" - AND "initiative"."direct_majority" - AND "initiative"."indirect_majority" - AND "initiative"."better_than_status_quo" - AND ( - "policy"."no_multistage_majority" = FALSE OR - "initiative"."multistage_majority" = FALSE ) - AND ( - "policy"."no_reverse_beat_path" = FALSE OR - "initiative"."reverse_beat_path" = FALSE ) - ) AS "subquery" - WHERE "id" = "subquery"."initiative_id"; + WHERE "issue_id" = "issue_id_p" + AND "initiative"."direct_majority" + AND "initiative"."indirect_majority" + AND "initiative"."better_than_status_quo" + AND ( + "policy_row"."no_multistage_majority" = FALSE OR + "initiative"."multistage_majority" = FALSE ) + AND ( + "policy_row"."no_reverse_beat_path" = FALSE OR + "initiative"."reverse_beat_path" = FALSE ); -- mark final winner: UPDATE "initiative" SET "winner" = TRUE FROM (