From 9d41ec3b53945c17d3e262a76aea184f6cd79d98 Mon Sep 17 00:00:00 2001 From: Rikard Bartholf Date: Fri, 15 Oct 2021 13:48:20 +0200 Subject: [PATCH] Add prefix for UNACCENT in getsafexmlpath (#233) * Add prefix for UNACCENT in getsafexmlpath The restore of a backup won't work with UNACCENT without schema prefix. * Bugfix * Bugfix * Remove accidentally left over file --- migrations/000.341.sql | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 migrations/000.341.sql diff --git a/migrations/000.341.sql b/migrations/000.341.sql new file mode 100644 index 0000000..b4158f9 --- /dev/null +++ b/migrations/000.341.sql @@ -0,0 +1,25 @@ +-- Prefix UNACCENT with "public" + +CREATE OR REPLACE FUNCTION public.getsafexmlpath(val character varying, with_root integer DEFAULT 0) + RETURNS character varying + LANGUAGE plpgsql +AS $function$ +BEGIN + IF with_root = 1 THEN + val = regexp_replace(val, '^\w+', 'root'); + ELSIF with_root = 2 THEN + val = regexp_replace(val, '^\w+/', ''); + END IF; + + val = public.UNACCENT(val); + val = REGEXP_REPLACE(val, '[\., _]', '-', 'g'); + val = REPLACE(val, '&', '-'); /* ampersand should always be blank but it gets fixed in below */ + val = lower(val); + val = REGEXP_REPLACE(val, '-+', '-', 'g'); + val = REGEXP_REPLACE(val, '[^\/\w\-]', '', 'g'); + + RETURN val; + +END; +$function$ +;