liquid_feedback_core
changeset 171:60aaf3b11ca3
Simplify one UPDATE in function "calculate_ranks"
author | jbe |
---|---|
date | Tue Jun 07 19:45:37 2011 +0200 (2011-06-07) |
parents | b52f3281e769 |
children | b8426100fd2d |
files | core.sql |
line diff
1.1 --- a/core.sql Tue Jun 07 19:39:22 2011 +0200 1.2 +++ b/core.sql Tue Jun 07 19:45:37 2011 +0200 1.3 @@ -3702,9 +3702,9 @@ 1.4 AND "positive_votes" >= "policy_row"."indirect_majority_positive" 1.5 AND "issue_row"."voter_count"-"negative_votes" >= 1.6 "policy_row"."indirect_majority_non_negative", 1.7 + "schulze_rank" = "rank_ary"["i"], 1.8 "better_than_status_quo" = "rank_ary"["i"] < "rank_ary"["dimension_v"], 1.9 "worse_than_status_quo" = "rank_ary"["i"] > "rank_ary"["dimension_v"], 1.10 - "schulze_rank" = "rank_ary"["i"], 1.11 "multistage_majority" = "rank_ary"["i"] >= "rank_ary"["dimension_v"], 1.12 "reverse_beat_path" = "matrix"["dimension_v"]["i"] >= 0 1.13 WHERE "id" = "initiative_id_v"; 1.14 @@ -3775,27 +3775,17 @@ 1.15 ) AS "subquery" 1.16 WHERE "id" = "subquery"."initiative_id"; 1.17 -- mark eligible initiatives: 1.18 - "rank_v" := 1; 1.19 UPDATE "initiative" SET "eligible" = TRUE 1.20 - FROM ( 1.21 - SELECT "initiative"."id" AS "initiative_id" 1.22 - FROM "issue" 1.23 - JOIN "policy" 1.24 - ON "issue"."policy_id" = "policy"."id" 1.25 - JOIN "initiative" 1.26 - ON "issue"."id" = "initiative"."issue_id" 1.27 - WHERE "issue_id" = "issue_id_p" 1.28 - AND "initiative"."direct_majority" 1.29 - AND "initiative"."indirect_majority" 1.30 - AND "initiative"."better_than_status_quo" 1.31 - AND ( 1.32 - "policy"."no_multistage_majority" = FALSE OR 1.33 - "initiative"."multistage_majority" = FALSE ) 1.34 - AND ( 1.35 - "policy"."no_reverse_beat_path" = FALSE OR 1.36 - "initiative"."reverse_beat_path" = FALSE ) 1.37 - ) AS "subquery" 1.38 - WHERE "id" = "subquery"."initiative_id"; 1.39 + WHERE "issue_id" = "issue_id_p" 1.40 + AND "initiative"."direct_majority" 1.41 + AND "initiative"."indirect_majority" 1.42 + AND "initiative"."better_than_status_quo" 1.43 + AND ( 1.44 + "policy_row"."no_multistage_majority" = FALSE OR 1.45 + "initiative"."multistage_majority" = FALSE ) 1.46 + AND ( 1.47 + "policy_row"."no_reverse_beat_path" = FALSE OR 1.48 + "initiative"."reverse_beat_path" = FALSE ); 1.49 -- mark final winner: 1.50 UPDATE "initiative" SET "winner" = TRUE 1.51 FROM (