summaryrefslogtreecommitdiff
path: root/sql/func.sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql/func.sql')
-rw-r--r--sql/func.sql30
1 files changed, 18 insertions, 12 deletions
diff --git a/sql/func.sql b/sql/func.sql
index 6cb3735d..6b77d30a 100644
--- a/sql/func.sql
+++ b/sql/func.sql
@@ -61,18 +61,24 @@ CREATE OR REPLACE FUNCTION update_vncache(integer) RETURNS void AS $$
GROUP BY rv.vid
), 0),
c_olang = ARRAY(
- SELECT lang
- FROM releases_lang
- WHERE id = (
- SELECT r.id
- FROM releases_vn rv
- JOIN releases r ON rv.id = r.id
- WHERE r.released > 0
- AND NOT r.hidden
- AND rv.vid = $1
- ORDER BY r.released
- LIMIT 1
- )
+ SELECT rl.lang
+ FROM releases_lang rl
+ JOIN releases r ON r.id = rl.id
+ JOIN releases_vn rv ON r.id = rv.id
+ WHERE rv.vid = $1
+ AND NOT r.hidden
+ AND r.released > 0
+ AND NOT EXISTS(
+ SELECT 1
+ FROM releases r2
+ JOIN releases_vn rv2 ON r2.id = rv2.id
+ WHERE rv2.vid = $1
+ AND NOT r2.hidden
+ AND r2.released > 0
+ AND r2.released < r.released
+ )
+ GROUP BY rl.lang
+ ORDER BY rl.lang
),
c_languages = ARRAY(
SELECT rl.lang