From: Mike Rylander Date: Thu, 17 Mar 2011 14:30:54 +0000 (-0400) Subject: Merge branch 'master' of git+ssh://yeti.esilibrary.com/home/evergreen/evergreen-equin... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=7345174d0902a27d586e7e554282b9440903700a;p=evergreen%2Fequinox.git Merge branch 'master' of git+ssh://yeti.esilibrary.com/home/evergreen/evergreen-equinox into masslnc-cataloging-enhancements --- 7345174d0902a27d586e7e554282b9440903700a diff --cc Open-ILS/src/sql/Pg/040.schema.asset.sql index 2c401451f9,6509bca19f..dbe0c09fb2 --- a/Open-ILS/src/sql/Pg/040.schema.asset.sql +++ b/Open-ILS/src/sql/Pg/040.schema.asset.sql @@@ -282,46 -275,10 +282,46 @@@ $func$ LANGUAGE PLPERLU INSERT INTO asset.call_number_class (name, normalizer, field) VALUES ('Generic', 'asset.label_normalizer_generic', '050ab,055ab,060ab,070ab,080ab,082ab,086ab,088ab,090,092,096,098,099'), - ('Dewey (DDC)', 'asset.label_normalizer_dewey', '080ab,082ab'), - ('Library of Congress (LC)', 'asset.label_normalizer_lc', '050ab,055ab') + ('Dewey (DDC)', 'asset.label_normalizer_dewey', '080ab,082ab,092abef'), + ('Library of Congress (LC)', 'asset.label_normalizer_lc', '050ab,055ab,090abef') ; +CREATE OR REPLACE FUNCTION asset.normalize_affix_sortkey () RETURNS TRIGGER AS $$ +BEGIN + NEW.label_sortkey := REGEXP_REPLACE( + lpad_number_substrings( + naco_normalize(NEW.label), + '0', + 10 + ), + E'\\s+', + '', + 'g' + ); + RETURN NEW; +END; +$$ LANGUAGE PLPGSQL; + +CREATE TABLE asset.call_number_prefix ( + id SERIAL PRIMARY KEY, + owning_lib INT NOT NULL REFERENCES actor.org_unit (id), + label TEXT NOT NULL, -- i18n + label_sortkey TEXT +); +CREATE TRIGGER prefix_normalize_tgr BEFORE INSERT OR UPDATE ON asset.call_number_prefix FOR EACH ROW EXECUTE PROCEDURE asset.normalize_affix_sortkey(); +CREATE UNIQUE INDEX asset_call_number_prefix_once_per_lib ON asset.call_number_prefix (label, owning_lib); +CREATE INDEX asset_call_number_prefix_sortkey_idx ON asset.call_number_prefix (label_sortkey); + +CREATE TABLE asset.call_number_suffix ( + id SERIAL PRIMARY KEY, + owning_lib INT NOT NULL REFERENCES actor.org_unit (id), + label TEXT NOT NULL, -- i18n + label_sortkey TEXT +); +CREATE TRIGGER suffix_normalize_tgr BEFORE INSERT OR UPDATE ON asset.call_number_suffix FOR EACH ROW EXECUTE PROCEDURE asset.normalize_affix_sortkey(); +CREATE UNIQUE INDEX asset_call_number_suffix_once_per_lib ON asset.call_number_suffix (label, owning_lib); +CREATE INDEX asset_call_number_suffix_sortkey_idx ON asset.call_number_suffix (label_sortkey); + CREATE TABLE asset.call_number ( id bigserial PRIMARY KEY, creator BIGINT NOT NULL,