|
@@ -1,3 +1,23 @@
|
|
|
+CREATE OR REPLACE FUNCTION public.getfallbacktext(p_translation character varying, p_fallback character varying, p_reference text) RETURNS TABLE(translation character varying, text character varying)
|
|
|
+ LANGUAGE SQL
|
|
|
+ AS $$
|
|
|
+SELECT translation, text FROM (SELECT
|
|
|
+ 0 AS ordinal,
|
|
|
+ p_translation AS translation,
|
|
|
+ gettext(p_translation, p_reference) AS text
|
|
|
+UNION SELECT
|
|
|
+ 1 AS ordinal,
|
|
|
+ p_fallback AS translation,
|
|
|
+ gettext(p_fallback, p_reference) AS text
|
|
|
+UNION SELECT
|
|
|
+ 3 AS ordinal,
|
|
|
+ getdefaulttranslation() AS translation,
|
|
|
+ getdefaulttext(p_reference) AS text
|
|
|
+) AS subq
|
|
|
+WHERE text IS NOT NULL
|
|
|
+ORDER BY ordinal ASC LIMIT 1;
|
|
|
+$$;
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -116,17 +136,11 @@ ALTER TABLE public.pg_random_view OWNER TO pgdb;
|
|
|
|
|
|
|
|
|
CREATE OR REPLACE VIEW public.pg_random_view_default_if_null AS
|
|
|
- SELECT subq.category,
|
|
|
- CASE
|
|
|
- WHEN (subq.txt IS NULL) THEN public.getdefaulttranslation()
|
|
|
- ELSE subq.translation
|
|
|
- END AS translation,
|
|
|
- subq.reference,
|
|
|
- CASE
|
|
|
- WHEN (subq.txt IS NULL) THEN public.getdefaulttext((subq.reference)::character varying)
|
|
|
- ELSE subq.txt
|
|
|
- END AS txt
|
|
|
- FROM public.pg_random_view subq;
|
|
|
+ SELECT category, (rec).translation, reference, (rec).text AS txt FROM (
|
|
|
+ SELECT subq.category,
|
|
|
+ subq.reference,
|
|
|
+ public.getfallbacktext(subq.translation, getdefaulttranslation(), subq.reference) AS rec
|
|
|
+ FROM public.pg_random_view subq) AS q;
|
|
|
|
|
|
ALTER TABLE public.pg_random_view_default_if_null OWNER TO pgdb;
|
|
|
|