33 lines
1.5 KiB
MySQL
33 lines
1.5 KiB
MySQL
|
-- Deploy camper:translate_campsite_type to pg
|
||
|
-- requires: roles
|
||
|
-- requires: schema_camper
|
||
|
-- requires: campsite_type_i18n
|
||
|
|
||
|
begin;
|
||
|
|
||
|
set search_path to camper, public;
|
||
|
|
||
|
drop function if exists translate_campsite_type (uuid, text, text, text, text, text, text);
|
||
|
|
||
|
create or replace function translate_campsite_type (slug uuid, lang_tag text, name text, spiel text, info text, facilities text, description text, additional_info text) returns void as
|
||
|
$$
|
||
|
insert into campsite_type_i18n (campsite_type_id, lang_tag, name, spiel, info, facilities, description, additional_info)
|
||
|
select campsite_type_id, translate_campsite_type.lang_tag, translate_campsite_type.name, xmlparse(content coalesce(translate_campsite_type.spiel, '')), xmlparse(content coalesce(translate_campsite_type.info, '')), xmlparse(content coalesce(translate_campsite_type.facilities, '')), xmlparse(content coalesce(translate_campsite_type.description, '')), xmlparse(content coalesce(translate_campsite_type.additional_info, ''))
|
||
|
from campsite_type
|
||
|
where slug = translate_campsite_type.slug
|
||
|
on conflict (campsite_type_id, lang_tag) do update
|
||
|
set name = excluded.name
|
||
|
, spiel = excluded.spiel
|
||
|
, info = excluded.info
|
||
|
, facilities = excluded.facilities
|
||
|
, description = excluded.description
|
||
|
, additional_info = excluded.additional_info
|
||
|
$$
|
||
|
language sql
|
||
|
;
|
||
|
|
||
|
revoke execute on function translate_campsite_type (uuid, text, text, text, text, text, text, text) from public;
|
||
|
grant execute on function translate_campsite_type(uuid, text, text, text, text, text, text, text) to admin;
|
||
|
|
||
|
commit;
|