CREATE OR REPLACE FUNCTION localization.get_localization_table(culture_code text) RETURNS TABLE(row_number bigint, key text, invariant_resource text, value text)
CREATE OR REPLACE FUNCTION localization.get_localization_table(culture_code text)
RETURNS TABLE(row_number bigint, key text, invariant_resource text, value text)
LANGUAGE plpgsql
AS $function$
BEGIN
CREATE TEMPORARY TABLE t
(
key text,
invariant_resource text,
value text
);
INSERT INTO t(key, invariant_resource, value)
SELECT
DISTINCT localization.resources.key,
localization.resources.value as invariant_resource,
localization.localized_resources.value
FROM localization.resources
LEFT JOIN localization.localized_resources
ON localization.resources.key = localization.localized_resources.key
AND localization.localized_resources.culture_code = $1;
RETURN QUERY
SELECT
row_number() OVER(ORDER BY t.key ~ '^[[:upper:]][^[:upper:]]' DESC, t.key),
t.key,
t.invariant_resource,
t.value
FROM t
ORDER BY t.key ~ '^[[:upper:]][^[:upper:]]' DESC, t.key;
END
$function$