]> git.evergreen-ils.org Git - contrib/Conifer.git/blob - Open-ILS/src/sql/Pg/upgrade/XXXX.schema.qualify_unaccent_refs.sql
LP#1671150 fix unqualified unaccent call
[contrib/Conifer.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.schema.qualify_unaccent_refs.sql
1 -- Evergreen DB patch XXXX.schema.qualify_unaccent_refs.sql
2 --
3 -- LP#1671150 Fix unaccent() function call in evergreen.unaccent_and_squash()
4 --
5 BEGIN;
6
7
8 -- check whether patch can be applied
9 -- FIXME: uncomment when we have an upgrade number
10 -- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
11
12 CREATE OR REPLACE FUNCTION evergreen.unaccent_and_squash ( IN arg text) RETURNS text
13     IMMUTABLE STRICT AS $$
14         BEGIN
15         RETURN evergreen.lowercase(public.unaccent('public.unaccent', regexp_replace(arg, '[\s[:punct:]]','','g')));
16         END;
17 $$ LANGUAGE PLPGSQL;
18
19 -- Drop indexes if present, so that we can re-create them
20 DROP INDEX IF EXISTS actor.actor_usr_first_given_name_unaccent_idx;
21 DROP INDEX IF EXISTS actor.actor_usr_second_given_name_unaccent_idx;
22 DROP INDEX IF EXISTS actor.actor_usr_family_name_unaccent_idx; 
23 DROP INDEX IF EXISTS actor.actor_usr_usrname_unaccent_idx; 
24
25 -- Create (or re-create) indexes -- they may be missing if pg_restore failed to create
26 -- them due to the previously unqualified call to unaccent()
27 CREATE INDEX actor_usr_first_given_name_unaccent_idx ON actor.usr (evergreen.unaccent_and_squash(first_given_name));
28 CREATE INDEX actor_usr_second_given_name_unaccent_idx ON actor.usr (evergreen.unaccent_and_squash(second_given_name));
29 CREATE INDEX actor_usr_family_name_unaccent_idx ON actor.usr (evergreen.unaccent_and_squash(family_name));
30 CREATE INDEX actor_usr_usrname_unaccent_idx ON actor.usr (evergreen.unaccent_and_squash(usrname));
31
32 COMMIT;