Skip to content

Commit c94b61c

Browse files
authored
HotFix: De-duplicate PoolStat entries
Signed-off-by: Sudip Bhattarai <[email protected]>
1 parent f91a04e commit c94b61c

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

govtool/backend/sql/list-proposals.sql

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -122,26 +122,33 @@ RankedPoolVotes AS (
122122
vp.tx_id DESC,
123123
vp.id DESC
124124
),
125+
DistinctPoolStats as (
126+
SELECT
127+
DISTINCT ON (pool_hash_id, epoch_no) *
128+
FROM
129+
pool_stat
130+
WHERE
131+
epoch_no = (SELECT MAX(no) FROM epoch)
132+
ORDER BY
133+
pool_hash_id, epoch_no, id DESC
134+
),
125135
PoolVotes AS (
126136
SELECT
127137
rpv.gov_action_proposal_id,
128-
ps.epoch_no,
129-
COUNT(DISTINCT CASE WHEN vote = 'Yes' THEN rpv.pool_voter ELSE 0 END) AS total_yes_votes,
130-
COUNT(DISTINCT CASE WHEN vote = 'No' THEN rpv.pool_voter ELSE 0 END) AS total_no_votes,
131-
COUNT(DISTINCT CASE WHEN vote = 'Abstain' THEN rpv.pool_voter ELSE 0 END) AS total_abstain_votes,
132-
SUM(CASE WHEN rpv.vote = 'Yes' THEN ps.voting_power ELSE 0 END) AS poolYesVotes,
133-
SUM(CASE WHEN rpv.vote = 'No' THEN ps.voting_power ELSE 0 END) AS poolNoVotes,
134-
SUM(CASE WHEN rpv.vote = 'Abstain' THEN ps.voting_power ELSE 0 END) AS poolAbstainVotes
135-
FROM
136-
RankedPoolVotes rpv
137-
JOIN
138-
pool_stat ps
139-
ON rpv.pool_voter = ps.pool_hash_id
140-
WHERE
141-
ps.epoch_no = (SELECT MAX(no) FROM epoch)
138+
dps.epoch_no,
139+
COUNT(DISTINCT CASE WHEN vote = 'Yes' THEN rpv.pool_voter ELSE NULL END) AS total_yes_votes,
140+
COUNT(DISTINCT CASE WHEN vote = 'No' THEN rpv.pool_voter ELSE NULL END) AS total_no_votes,
141+
COUNT(DISTINCT CASE WHEN vote = 'Abstain' THEN rpv.pool_voter ELSE NULL END) AS total_abstain_votes,
142+
SUM(CASE WHEN rpv.vote = 'Yes' THEN dps.voting_power ELSE 0 END) AS poolYesVotes,
143+
SUM(CASE WHEN rpv.vote = 'No' THEN dps.voting_power ELSE 0 END) AS poolNoVotes,
144+
SUM(CASE WHEN rpv.vote = 'Abstain' THEN dps.voting_power ELSE 0 END) AS poolAbstainVotes
145+
FROM
146+
RankedPoolVotes rpv
147+
JOIN DistinctPoolStats dps
148+
ON rpv.pool_voter = dps.pool_hash_id
142149
GROUP BY
143-
rpv.gov_action_proposal_id, ps.epoch_no
144-
),
150+
rpv.gov_action_proposal_id, dps.epoch_no
151+
)
145152
RankedDRepVotes AS (
146153
SELECT DISTINCT ON (vp.drep_voter, vp.gov_action_proposal_id)
147154
vp.gov_action_proposal_id,

0 commit comments

Comments
 (0)