fix (data): Handle overflow in session save.

This commit is contained in:
2022-09-09 23:08:55 +10:00
parent b4da2e3650
commit d7ee675561

View File

@@ -553,14 +553,14 @@ AS $$
) SELECT ) SELECT
guildid, userid, channelid, rating, tag, channel_type, start_time, guildid, userid, channelid, rating, tag, channel_type, start_time,
total_duration, total_stream_duration, total_video_duration, total_live_duration, total_duration, total_stream_duration, total_video_duration, total_live_duration,
((total_duration * hourly_coins + live_duration * hourly_live_coins) * bonus_userid.bonus )/ 3600 LEAST(((total_duration * hourly_coins::bigint + live_duration * hourly_live_coins::bigint) * bonus_userid.bonus )/ 3600, 2147483647)
FROM current_sesh, bonus_userid FROM current_sesh, bonus_userid
RETURNING * RETURNING *
) )
UPDATE members UPDATE members
SET SET
tracked_time=(tracked_time + saved_sesh.duration), tracked_time=(tracked_time + saved_sesh.duration),
coins=LEAST(coins + saved_sesh.coins_earned, 2147483647) coins=LEAST(coins::bigint + saved_sesh.coins_earned::bigint, 2147483647)
FROM saved_sesh FROM saved_sesh
WHERE members.guildid=saved_sesh.guildid AND members.userid=saved_sesh.userid WHERE members.guildid=saved_sesh.guildid AND members.userid=saved_sesh.userid
RETURNING members.*; RETURNING members.*;