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 (

Impressum / About Us