Sync telesrv commits 49f9bab and 04d9563 into the public mirror. Exclude private docs and runtime key material per sync rules.
122 lines
4 KiB
SQL
122 lines
4 KiB
SQL
-- name: GetLangPackMeta :one
|
|
SELECT lang_pack, lang_code, version, strings_count
|
|
FROM lang_packs
|
|
WHERE lang_pack = $1 AND lang_code = $2;
|
|
|
|
-- name: UpsertLangPackMeta :exec
|
|
INSERT INTO lang_packs (lang_pack, lang_code, version, strings_count)
|
|
VALUES ($1, $2, $3, $4)
|
|
ON CONFLICT (lang_pack, lang_code) DO UPDATE SET
|
|
version = EXCLUDED.version,
|
|
strings_count = EXCLUDED.strings_count,
|
|
updated_at = now();
|
|
|
|
-- name: UpsertLangPackString :exec
|
|
INSERT INTO lang_pack_strings (
|
|
lang_pack, lang_code, key, version, pluralized, value,
|
|
zero_value, one_value, two_value, few_value, many_value, other_value, deleted
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)
|
|
ON CONFLICT (lang_pack, lang_code, key) DO UPDATE SET
|
|
version = EXCLUDED.version,
|
|
pluralized = EXCLUDED.pluralized,
|
|
value = EXCLUDED.value,
|
|
zero_value = EXCLUDED.zero_value,
|
|
one_value = EXCLUDED.one_value,
|
|
two_value = EXCLUDED.two_value,
|
|
few_value = EXCLUDED.few_value,
|
|
many_value = EXCLUDED.many_value,
|
|
other_value = EXCLUDED.other_value,
|
|
deleted = EXCLUDED.deleted,
|
|
updated_at = now();
|
|
|
|
-- name: ListLangPackCodes :many
|
|
SELECT lang_code
|
|
FROM lang_packs
|
|
WHERE lang_pack = $1
|
|
ORDER BY lang_code;
|
|
|
|
-- name: DeleteLangPackStrings :exec
|
|
DELETE FROM lang_pack_strings
|
|
WHERE lang_pack = $1 AND lang_code = $2;
|
|
|
|
-- name: DeleteLangPackMeta :exec
|
|
DELETE FROM lang_packs
|
|
WHERE lang_pack = $1 AND lang_code = $2;
|
|
|
|
-- name: GetLangPackSeedHash :one
|
|
SELECT content_hash
|
|
FROM seed_states
|
|
WHERE key = $1;
|
|
|
|
-- name: PutLangPackSeedHash :exec
|
|
INSERT INTO seed_states (key, content_hash)
|
|
VALUES ($1, $2)
|
|
ON CONFLICT (key) DO UPDATE SET
|
|
content_hash = EXCLUDED.content_hash,
|
|
updated_at = now();
|
|
|
|
-- name: DeleteLangPackSeedHash :exec
|
|
DELETE FROM seed_states
|
|
WHERE key = $1;
|
|
|
|
-- name: ListLangPackStrings :many
|
|
SELECT
|
|
lang_pack, lang_code, key, version, pluralized, value,
|
|
zero_value, one_value, two_value, few_value, many_value, other_value, deleted
|
|
FROM lang_pack_strings
|
|
WHERE lang_pack = $1 AND lang_code = $2 AND NOT deleted
|
|
ORDER BY key;
|
|
|
|
-- name: GetLangPackStringsByKeys :many
|
|
SELECT
|
|
lang_pack, lang_code, key, version, pluralized, value,
|
|
zero_value, one_value, two_value, few_value, many_value, other_value, deleted
|
|
FROM lang_pack_strings
|
|
WHERE lang_pack = $1 AND lang_code = $2 AND key = ANY(sqlc.arg(keys)::text[]) AND NOT deleted
|
|
ORDER BY key;
|
|
|
|
-- name: ListLangPackLanguages :many
|
|
SELECT
|
|
p.lang_pack,
|
|
p.lang_code,
|
|
p.version,
|
|
p.strings_count,
|
|
COALESCE(
|
|
MAX(s.value) FILTER (WHERE s.key = 'LanguageNameInEnglish'),
|
|
MAX(s.value) FILTER (WHERE s.key = 'Localization.EnglishLanguageName'),
|
|
''
|
|
)::text AS name,
|
|
CASE
|
|
WHEN p.lang_pack = 'android' THEN COALESCE(
|
|
MAX(s.value) FILTER (WHERE s.key = 'TranslateLanguage' || upper(split_part(replace(p.lang_code, '-', '_'), '_', 1))),
|
|
MAX(s.value) FILTER (WHERE s.key = 'PassportLanguage_' || upper(split_part(replace(p.lang_code, '-', '_'), '_', 1))),
|
|
MAX(s.value) FILTER (WHERE s.key = 'LanguageName'),
|
|
''
|
|
)
|
|
ELSE COALESCE(
|
|
MAX(s.value) FILTER (WHERE s.key = 'lng_language_name'),
|
|
MAX(s.value) FILTER (WHERE s.key = 'LanguageName'),
|
|
MAX(s.value) FILTER (WHERE s.key = 'Localization.LanguageName'),
|
|
MAX(s.value) FILTER (WHERE s.key = 'TranslateLanguage' || upper(split_part(replace(p.lang_code, '-', '_'), '_', 1))),
|
|
MAX(s.value) FILTER (WHERE s.key = 'PassportLanguage_' || upper(split_part(replace(p.lang_code, '-', '_'), '_', 1))),
|
|
''
|
|
)
|
|
END::text AS native_name
|
|
FROM lang_packs p
|
|
LEFT JOIN lang_pack_strings s
|
|
ON s.lang_pack = p.lang_pack
|
|
AND s.lang_code = p.lang_code
|
|
AND s.key = ANY(ARRAY[
|
|
'lng_language_name',
|
|
'LanguageName',
|
|
'LanguageNameInEnglish',
|
|
'Localization.LanguageName',
|
|
'Localization.EnglishLanguageName',
|
|
'TranslateLanguage' || upper(split_part(replace(p.lang_code, '-', '_'), '_', 1)),
|
|
'PassportLanguage_' || upper(split_part(replace(p.lang_code, '-', '_'), '_', 1))
|
|
]::text[])
|
|
AND NOT s.deleted
|
|
WHERE p.lang_pack = $1
|
|
GROUP BY p.lang_pack, p.lang_code, p.version, p.strings_count
|
|
ORDER BY p.lang_code;
|