]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0505.schema.force_facets_to_NFC.sql
LP#1917826: tweaks to data update
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0505.schema.force_facets_to_NFC.sql
1 BEGIN;
2
3 INSERT INTO config.upgrade_log (version) VALUES ('0505'); --miker
4
5 CREATE OR REPLACE FUNCTION force_unicode_normal_form(string TEXT, form TEXT) RETURNS TEXT AS $func$
6 use Unicode::Normalize 'normalize';
7 return normalize($_[1],$_[0]); # reverse the params
8 $func$ LANGUAGE PLPERLU;
9
10 UPDATE metabib.facet_entry SET value = force_unicode_normal_form(value,'NFC');
11
12 CREATE OR REPLACE FUNCTION facet_force_nfc() RETURNS TRIGGER AS $$
13 BEGIN
14     NEW.value := force_unicode_normal_form(NEW.value,'NFC');
15     RETURN NEW;
16 END;
17 $$ LANGUAGE PLPGSQL;
18
19 CREATE TRIGGER facet_force_nfc_tgr
20         BEFORE UPDATE OR INSERT ON metabib.facet_entry
21         FOR EACH ROW EXECUTE PROCEDURE facet_force_nfc();
22
23 COMMIT;
24