Fix plus tier view when many results w/ suggests

This commit is contained in:
Kalle
2022-07-04 13:17:05 +03:00
parent cf7ec172c9
commit 35018a091a

View File

@@ -0,0 +1,103 @@
// add missing min() call to handle multiple results w/ suggests correctly
module.exports.up = function (db) {
db.prepare(`drop view "PlusTier"`).run();
db.prepare(
`
create view "PlusTier" as
select
"votedId" as "userId",
min(
case
when "passedVoting" = 0
and "wasSuggested" = 1 then null
when "passedVoting" = 1 then "tier"
when "passedVoting" = 0
and "tier" != 3 then "tier" + 1
end
) as "tier"
from
"PlusVotingResult"
where
year = (
select
"year"
from
"PlusVote"
where
"validAfter" < strftime('%s', 'now')
order by
"year" desc,
"month" desc
limit
1
)
and "month" = (
select
"month"
from
"PlusVote"
where
"validAfter" < strftime('%s', 'now')
order by
"year" desc,
"month" desc
limit
1
)
group by
"votedId";
`
).run();
};
module.exports.down = function (db) {
db.prepare(`drop view "PlusTier"`).run();
db.prepare(
`
create view "PlusTier" as
select
"votedId" as "userId",
case
when "passedVoting" = 0
and "wasSuggested" = 1 then null
when "passedVoting" = 1 then "tier"
when "passedVoting" = 0
and "tier" != 3 then "tier" + 1
end "tier"
from
"PlusVotingResult"
where
year = (
select
"year"
from
"PlusVote"
where
"validAfter" < strftime('%s', 'now')
order by
"year" desc,
"month" desc
limit
1
)
and "month" = (
select
"month"
from
"PlusVote"
where
"validAfter" < strftime('%s', 'now')
order by
"year" desc,
"month" desc
limit
1
)
group by
"votedId";
`
).run();
};