]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0541.schema.call_number_honor_default_class.sql
Fix 0752 and 0756 upgrade scripts
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0541.schema.call_number_honor_default_class.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('0541', :eg_version); -- dbwells
4
5 ALTER TABLE asset.call_number ALTER COLUMN label_class DROP DEFAULT;
6
7 CREATE OR REPLACE FUNCTION asset.label_normalizer() RETURNS TRIGGER AS $func$
8 DECLARE
9     sortkey        TEXT := '';
10 BEGIN
11     sortkey := NEW.label_sortkey;
12
13     IF NEW.label_class IS NULL THEN
14         NEW.label_class := COALESCE(
15             (
16                 SELECT substring(value from E'\\d+')::integer
17                 FROM actor.org_unit_setting
18                 WHERE name = 'cat.default_classification_scheme'
19                 AND org_unit = NEW.owning_lib
20             ), 1
21         );
22     END IF;
23
24     EXECUTE 'SELECT ' || acnc.normalizer || '(' ||
25        quote_literal( NEW.label ) || ')'
26        FROM asset.call_number_class acnc
27        WHERE acnc.id = NEW.label_class
28        INTO sortkey;
29     NEW.label_sortkey = sortkey;
30     RETURN NEW;
31 END;
32 $func$ LANGUAGE PLPGSQL;
33
34 COMMIT;