summaryrefslogtreecommitdiff
path: root/util/updates/update_20181002.sql
blob: d98ed7644a84c449d8e8de56c627bfd834e27e2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE TYPE resolution AS ENUM ('unknown', 'nonstandard', '640x480', '800x600', '1024x768', '1280x960', '1600x1200', '640x400', '960x600', '1024x576', '1024x600', '1024x640', '1280x720', '1280x800', '1366x768', '1600x900', '1920x1080');

CREATE OR REPLACE FUNCTION conv_resolution(integer) RETURNS resolution AS $$
SELECT CASE
  WHEN $1 =  0 THEN 'unknown'::resolution
  WHEN $1 =  1 THEN 'nonstandard'
  WHEN $1 =  2 THEN '640x480'
  WHEN $1 =  3 THEN '800x600'
  WHEN $1 =  4 THEN '1024x768'
  WHEN $1 =  5 THEN '1280x960'
  WHEN $1 =  6 THEN '1600x1200'
  WHEN $1 =  7 THEN '640x400'
  WHEN $1 =  8 THEN '960x600'
  WHEN $1 =  9 THEN '1024x576'
  WHEN $1 = 10 THEN '1024x600'
  WHEN $1 = 11 THEN '1024x640'
  WHEN $1 = 12 THEN '1280x720'
  WHEN $1 = 13 THEN '1280x800'
  WHEN $1 = 14 THEN '1366x768'
  WHEN $1 = 15 THEN '1600x900'
  WHEN $1 = 16 THEN '1920x1080'
END $$ LANGUAGE SQL;

ALTER TABLE releases ALTER COLUMN resolution DROP DEFAULT;
ALTER TABLE releases ALTER COLUMN resolution TYPE resolution USING conv_resolution(resolution);
ALTER TABLE releases ALTER COLUMN resolution SET DEFAULT 'unknown';

ALTER TABLE releases_hist ALTER COLUMN resolution DROP DEFAULT;
ALTER TABLE releases_hist ALTER COLUMN resolution TYPE resolution USING conv_resolution(resolution);
ALTER TABLE releases_hist ALTER COLUMN resolution SET DEFAULT 'unknown';

DROP FUNCTION conv_resolution(int);