summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/sql/all.sql1
-rw-r--r--util/sql/func.sql4
-rw-r--r--util/sql/schema.sql6
-rw-r--r--util/updates/update_2.11.sql13
4 files changed, 19 insertions, 5 deletions
diff --git a/util/sql/all.sql b/util/sql/all.sql
index e4f66d91..c012eba2 100644
--- a/util/sql/all.sql
+++ b/util/sql/all.sql
@@ -9,6 +9,7 @@ CREATE LANGUAGE plpgsql;
CREATE TYPE anime_type AS ENUM ('tv', 'ova', 'mov', 'oth', 'web', 'spe', 'mv');
CREATE TYPE dbentry_type AS ENUM ('v', 'r', 'p');
CREATE TYPE edit_rettype AS (iid integer, cid integer, rev integer);
+CREATE TYPE language AS ENUM('cs', 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'ru', 'sk', 'sv', 'tr', 'vi', 'zh');
CREATE TYPE medium AS ENUM ('cd', 'dvd', 'gdr', 'blr', 'flp', 'mrt', 'mem', 'umd', 'nod', 'in', 'otc');
CREATE TYPE notification_ntype AS ENUM ('pm');
CREATE TYPE notification_ltype AS ENUM ('t');
diff --git a/util/sql/func.sql b/util/sql/func.sql
index a0fe2c2f..2c5c12b2 100644
--- a/util/sql/func.sql
+++ b/util/sql/func.sql
@@ -26,7 +26,7 @@ CREATE OR REPLACE FUNCTION update_vncache(integer) RETURNS void AS $$
AND rr1.released <> 0
GROUP BY rv1.vid
), 0),
- c_languages = COALESCE(ARRAY_TO_STRING(ARRAY(
+ c_languages = ARRAY(
SELECT rl2.lang
FROM releases_rev rr2
JOIN releases_lang rl2 ON rl2.rid = rr2.id
@@ -38,7 +38,7 @@ CREATE OR REPLACE FUNCTION update_vncache(integer) RETURNS void AS $$
AND r2.hidden = FALSE
GROUP BY rl2.lang
ORDER BY rl2.lang
- ), '/'), ''),
+ ),
c_platforms = COALESCE(ARRAY_TO_STRING(ARRAY(
SELECT rp3.platform
FROM releases_platforms rp3
diff --git a/util/sql/schema.sql b/util/sql/schema.sql
index c496e01d..d5766073 100644
--- a/util/sql/schema.sql
+++ b/util/sql/schema.sql
@@ -64,7 +64,7 @@ CREATE TABLE producers_rev (
name varchar(200) NOT NULL DEFAULT '',
original varchar(200) NOT NULL DEFAULT '',
website varchar(250) NOT NULL DEFAULT '',
- lang varchar NOT NULL DEFAULT 'ja',
+ lang language NOT NULL DEFAULT 'ja',
"desc" text NOT NULL DEFAULT '',
alias varchar(500) NOT NULL DEFAULT '',
l_wp varchar(150)
@@ -88,7 +88,7 @@ CREATE TABLE releases (
-- releases_lang
CREATE TABLE releases_lang (
rid integer NOT NULL,
- lang varchar NOT NULL,
+ lang language NOT NULL,
PRIMARY KEY(rid, lang)
);
@@ -286,7 +286,7 @@ CREATE TABLE vn (
hidden boolean NOT NULL DEFAULT FALSE,
rgraph integer,
c_released integer NOT NULL DEFAULT 0,
- c_languages varchar(32) NOT NULL DEFAULT '',
+ c_languages language[] NOT NULL DEFAULT '{}',
c_platforms varchar(32) NOT NULL DEFAULT '',
c_popularity real,
c_rating real,
diff --git a/util/updates/update_2.11.sql b/util/updates/update_2.11.sql
index 27b90c8f..f9601ce7 100644
--- a/util/updates/update_2.11.sql
+++ b/util/updates/update_2.11.sql
@@ -29,6 +29,19 @@ ALTER TABLE threads_boards DROP COLUMN lastread;
+-- languages -> ENUM
+CREATE TYPE language AS ENUM('cs', 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt', 'ru', 'sk', 'sv', 'tr', 'vi', 'zh');
+ALTER TABLE producers_rev ALTER COLUMN lang DROP DEFAULT;
+ALTER TABLE producers_rev ALTER COLUMN lang TYPE language USING lang::language;
+ALTER TABLE producers_rev ALTER COLUMN lang SET DEFAULT 'ja';
+ALTER TABLE releases_lang ALTER COLUMN lang TYPE language USING lang::language;
+-- c_languages is an now array of languages, rather than a serialized string
+ALTER TABLE vn ALTER COLUMN c_languages DROP DEFAULT;
+ALTER TABLE vn ALTER COLUMN c_languages TYPE language[] USING coalesce(string_to_array(c_languages, '/')::language[], '{}');
+ALTER TABLE vn ALTER COLUMN c_languages SET DEFAULT '{}';
+
+
+
ALTER TABLE changes ADD COLUMN ihid boolean NOT NULL DEFAULT FALSE;
ALTER TABLE changes ADD COLUMN ilock boolean NOT NULL DEFAULT FALSE;