[open-ils-commits] [GIT] Evergreen ILS branch rel_2_1 updated. 74f5aad1b82aeb3bf8799d3b4c79cd9530e6bf33

Evergreen Git git at git.evergreen-ils.org
Fri Jul 1 12:06:40 EDT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, rel_2_1 has been updated
       via  74f5aad1b82aeb3bf8799d3b4c79cd9530e6bf33 (commit)
       via  b52b0864b45876466ec82dd7ec26fb733e023638 (commit)
       via  0fe4234b30606cf31178b8904bddcc51bc65a7c5 (commit)
      from  b9e582ca294de9e933c15a4398c306f57fbe17a2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 74f5aad1b82aeb3bf8799d3b4c79cd9530e6bf33
Author: Mike Rylander <mrylander at gmail.com>
Date:   Fri Jul 1 11:50:25 2011 -0400

    Normalize facet values
    
    Spotted by Lebbeous Fogle-Weekley, facet values were not being normalized.  This is due to changes in how facets are stored in 2.1+.  This alternate implementation mirrors the way search_field index definitions work, which is a bit cleaner than inserting normalization into the field extraction process.
    
    Signed-off-by: Mike Rylander <mrylander at gmail.com>

diff --git a/Open-ILS/src/sql/Pg/030.schema.metabib.sql b/Open-ILS/src/sql/Pg/030.schema.metabib.sql
index 17a2383..fb2c4cb 100644
--- a/Open-ILS/src/sql/Pg/030.schema.metabib.sql
+++ b/Open-ILS/src/sql/Pg/030.schema.metabib.sql
@@ -135,6 +135,43 @@ CREATE INDEX metabib_facet_entry_field_idx ON metabib.facet_entry (field);
 CREATE INDEX metabib_facet_entry_value_idx ON metabib.facet_entry (SUBSTRING(value,1,1024));
 CREATE INDEX metabib_facet_entry_source_idx ON metabib.facet_entry (source);
 
+CREATE OR REPLACE FUNCTION metabib.facet_normalize_trigger () RETURNS TRIGGER AS $$
+DECLARE
+    normalizer  RECORD;
+    facet_text  TEXT;
+BEGIN
+    facet_text := NEW.value;
+
+    FOR normalizer IN
+        SELECT  n.func AS func,
+                n.param_count AS param_count,
+                m.params AS params
+          FROM  config.index_normalizer n
+                JOIN config.metabib_field_index_norm_map m ON (m.norm = n.id)
+          WHERE m.field = NEW.field AND m.pos < 0
+          ORDER BY m.pos LOOP
+
+            EXECUTE 'SELECT ' || normalizer.func || '(' ||
+                quote_literal( facet_text ) ||
+                CASE
+                    WHEN normalizer.param_count > 0
+                        THEN ',' || REPLACE(REPLACE(BTRIM(normalizer.params,'[]'),E'\'',E'\\\''),E'"',E'\'')
+                        ELSE ''
+                    END ||
+                ')' INTO facet_text;
+
+    END LOOP;
+
+    NEW.value = facet_text;
+
+    RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER facet_normalize_tgr
+	BEFORE UPDATE OR INSERT ON metabib.facet_entry
+	FOR EACH ROW EXECUTE PROCEDURE metabib.facet_normalize_trigger();
+
 CREATE OR REPLACE FUNCTION evergreen.facet_force_nfc() RETURNS TRIGGER AS $$
 BEGIN
     NEW.value := force_unicode_normal_form(NEW.value,'NFC');
diff --git a/Open-ILS/src/sql/Pg/upgrade/0571.schema.facet_normalizer.sql b/Open-ILS/src/sql/Pg/upgrade/0571.schema.facet_normalizer.sql
new file mode 100644
index 0000000..d2966a1
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/0571.schema.facet_normalizer.sql
@@ -0,0 +1,51 @@
+-- Evergreen DB patch 0571.schema.facet_normalizer.sql
+--
+-- Alternate implementation of a regression fix for facet normalization
+--
+BEGIN;
+
+
+-- check whether patch can be applied
+INSERT INTO config.upgrade_log (version) VALUES ('0571');
+
+-- FIXME: add/check SQL statements to perform the upgrade
+CREATE OR REPLACE FUNCTION metabib.facet_normalize_trigger () RETURNS TRIGGER AS $$
+DECLARE
+    normalizer  RECORD;
+    facet_text  TEXT;
+BEGIN
+    facet_text := NEW.value;
+
+    FOR normalizer IN
+        SELECT  n.func AS func,
+                n.param_count AS param_count,
+                m.params AS params
+          FROM  config.index_normalizer n
+                JOIN config.metabib_field_index_norm_map m ON (m.norm = n.id)
+          WHERE m.field = NEW.field AND m.pos < 0
+          ORDER BY m.pos LOOP
+
+            EXECUTE 'SELECT ' || normalizer.func || '(' ||
+                quote_literal( facet_text ) ||
+                CASE
+                    WHEN normalizer.param_count > 0
+                        THEN ',' || REPLACE(REPLACE(BTRIM(normalizer.params,'[]'),E'\'',E'\\\''),E'"',E'\'')
+                        ELSE ''
+                    END ||
+                ')' INTO facet_text;
+
+    END LOOP;
+
+    NEW.value = facet_text;
+
+    RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER facet_normalize_tgr
+    BEFORE UPDATE OR INSERT ON metabib.facet_entry
+    FOR EACH ROW EXECUTE PROCEDURE metabib.facet_normalize_trigger();
+
+
+
+COMMIT;

commit b52b0864b45876466ec82dd7ec26fb733e023638
Author: Mike Rylander <mrylander at gmail.com>
Date:   Fri Jul 1 11:20:44 2011 -0400

    Stampping upgrade for authorsort fix from Lebbeous
    
    Signed-off-by: Mike Rylander <mrylander at gmail.com>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 840d7df..cf45060 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -57,7 +57,7 @@ CREATE TABLE config.upgrade_log (
     install_date    TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
 );
 
-INSERT INTO config.upgrade_log (version) VALUES ('0570'); -- miker
+INSERT INTO config.upgrade_log (version) VALUES ('0571'); -- miker
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0yyy.schema.fix-authsort.sql b/Open-ILS/src/sql/Pg/upgrade/0570.schema.fix-authsort.sql
similarity index 86%
rename from Open-ILS/src/sql/Pg/upgrade/0yyy.schema.fix-authsort.sql
rename to Open-ILS/src/sql/Pg/upgrade/0570.schema.fix-authsort.sql
index 33a2982..f9bb3c2 100644
--- a/Open-ILS/src/sql/Pg/upgrade/0yyy.schema.fix-authsort.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/0570.schema.fix-authsort.sql
@@ -1,6 +1,6 @@
 BEGIN;
 
-SELECT evergreen.upgrade_deps_block_check('0570', :eg_version);
+INSERT INTO config.upgrade_log (version) VALUES ('0570');
 
 -- Not everything in 1XX tags should become part of the authorsort field
 -- ($0 for example).  The list of subfields chosen here is a superset of all

commit 0fe4234b30606cf31178b8904bddcc51bc65a7c5
Author: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
Date:   Thu Jun 30 15:14:36 2011 -0400

    Fix the SVF authorsort field (metabib.record_attr->'authorsort')
    
    It's important not to include things like $0 that we wouldn't want in
    there.
    
    Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index e4cd101..840d7df 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -57,7 +57,7 @@ CREATE TABLE config.upgrade_log (
     install_date    TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
 );
 
-INSERT INTO config.upgrade_log (version) VALUES ('0569'); -- miker
+INSERT INTO config.upgrade_log (version) VALUES ('0570'); -- miker
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
index 32edf39..0767cae 100644
--- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql
+++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql
@@ -4164,7 +4164,7 @@ INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('type
 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('item_type','Type','Type');
 INSERT INTO config.record_attr_definition (name,label,phys_char_sf) values ('vr_format','Videorecording format',72);
 INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag) values ('titlesort','Title',TRUE,FALSE,'tnf');
-INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag) values ('authorsort','Author',TRUE,FALSE,'1%');
+INSERT INTO config.record_attr_definition (name,label,sorter,filter,tag,sf_list) values ('authorsort','Author',TRUE,FALSE,'1%','abcdefgklmnopqrstvxyz');
 
 -- TO-DO: Auto-generate these values from CLDR
 -- XXX These are the values used in MARC records ... does that match CLDR, including deprecated languages?
diff --git a/Open-ILS/src/sql/Pg/upgrade/0yyy.schema.fix-authsort.sql b/Open-ILS/src/sql/Pg/upgrade/0yyy.schema.fix-authsort.sql
new file mode 100644
index 0000000..33a2982
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/0yyy.schema.fix-authsort.sql
@@ -0,0 +1,14 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('0570', :eg_version);
+
+-- Not everything in 1XX tags should become part of the authorsort field
+-- ($0 for example).  The list of subfields chosen here is a superset of all
+-- the fields found in the LoC authority mappin definitions for 1XX fields.
+-- Anyway, if more fields should be here, add them.
+
+UPDATE config.record_attr_definition
+    SET sf_list = 'abcdefgklmnopqrstvxyz'
+    WHERE name='authorsort' AND sf_list IS NULL;
+
+COMMIT;

-----------------------------------------------------------------------

Summary of changes:
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 Open-ILS/src/sql/Pg/030.schema.metabib.sql         |   37 ++++++++++++++
 Open-ILS/src/sql/Pg/950.data.seed-values.sql       |    2 +-
 .../sql/Pg/upgrade/0570.schema.fix-authsort.sql    |   14 +++++
 .../Pg/upgrade/0571.schema.facet_normalizer.sql    |   51 ++++++++++++++++++++
 5 files changed, 104 insertions(+), 2 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/0570.schema.fix-authsort.sql
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/0571.schema.facet_normalizer.sql


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list