# HG changeset patch # User jbe # Date 1360520069 -3600 # Node ID ae0da58a985817ddad5178c8f8bc6acb9832fea2 # Parent d59d0c3e4a182818ac00dcf12c2a4a404556b973 Correct index usage when calculating "harmonic_weight" diff -r d59d0c3e4a18 -r ae0da58a9858 core.sql --- a/core.sql Sun Feb 10 18:49:01 2013 +0100 +++ b/core.sql Sun Feb 10 19:14:29 2013 +0100 @@ -3047,9 +3047,9 @@ -------------------------------------- --- Calculation of harmonic weights -- -------------------------------------- +------------------------------------ +-- Calculation of harmonic weight -- +------------------------------------ CREATE VIEW "remaining_harmonic_supporter_weight" AS @@ -3063,17 +3063,17 @@ JOIN "direct_interest_snapshot" ON "issue"."id" = "direct_interest_snapshot"."issue_id" AND "issue"."latest_snapshot_event" = "direct_interest_snapshot"."event" + JOIN "initiative" + ON "issue"."id" = "initiative"."issue_id" + AND "initiative"."harmonic_weight" ISNULL JOIN "direct_supporter_snapshot" - ON "direct_interest_snapshot"."issue_id" = "direct_supporter_snapshot"."issue_id" + ON "initiative"."id" = "direct_supporter_snapshot"."initiative_id" AND "direct_interest_snapshot"."event" = "direct_supporter_snapshot"."event" AND "direct_interest_snapshot"."member_id" = "direct_supporter_snapshot"."member_id" - JOIN "initiative" - ON "direct_supporter_snapshot"."initiative_id" = "initiative"."id" AND ( "direct_supporter_snapshot"."satisfied" = TRUE OR coalesce("initiative"."admitted", FALSE) = FALSE ) - AND "initiative"."harmonic_weight" ISNULL GROUP BY "direct_interest_snapshot"."issue_id", "direct_interest_snapshot"."event", @@ -3091,17 +3091,17 @@ sum("remaining_harmonic_supporter_weight"."weight_num") AS "weight_num", "remaining_harmonic_supporter_weight"."weight_den" FROM "remaining_harmonic_supporter_weight" + JOIN "initiative" + ON "remaining_harmonic_supporter_weight"."issue_id" = "initiative"."issue_id" + AND "initiative"."harmonic_weight" ISNULL JOIN "direct_supporter_snapshot" - ON "remaining_harmonic_supporter_weight"."issue_id" = "direct_supporter_snapshot"."issue_id" + ON "initiative"."id" = "direct_supporter_snapshot"."initiative_id" AND "remaining_harmonic_supporter_weight"."event" = "direct_supporter_snapshot"."event" AND "remaining_harmonic_supporter_weight"."member_id" = "direct_supporter_snapshot"."member_id" - JOIN "initiative" - ON "direct_supporter_snapshot"."initiative_id" = "initiative"."id" AND ( "direct_supporter_snapshot"."satisfied" = TRUE OR coalesce("initiative"."admitted", FALSE) = FALSE ) - AND "initiative"."harmonic_weight" ISNULL GROUP BY "initiative"."issue_id", "initiative"."id",