[open-ils-commits] [GIT] Evergreen ILS branch master updated. c6dc037017fd495966667ab20fc69b21ede013b4

Evergreen Git git at git.evergreen-ils.org
Thu Feb 9 18:30:20 EST 2017


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, master has been updated
       via  c6dc037017fd495966667ab20fc69b21ede013b4 (commit)
       via  adee7416a42a29072c76e7062e9e7bb0aee3376c (commit)
      from  5a2c49781018101e5abf783d89e03d43d10cd635 (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 c6dc037017fd495966667ab20fc69b21ede013b4
Author: Kathy Lussier <klussier at masslnc.org>
Date:   Thu Feb 9 18:28:12 2017 -0500

    LP#1613341: Stamping upgrade script for punctuation-insensitive patron search
    
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index a0c51b3..1c5b717 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -91,7 +91,7 @@ CREATE TRIGGER no_overlapping_deps
     BEFORE INSERT OR UPDATE ON config.db_patch_dependencies
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
-INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1007', :eg_version); -- gmcharlt/kmlussier
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1008', :eg_version); -- Dpearl/kmlussier
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_punct.sql b/Open-ILS/src/sql/Pg/upgrade/1008.schema.patron_punct.sql
similarity index 89%
rename from Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_punct.sql
rename to Open-ILS/src/sql/Pg/upgrade/1008.schema.patron_punct.sql
index 3713a3b..c7d6633 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_punct.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/1008.schema.patron_punct.sql
@@ -1,6 +1,6 @@
 BEGIN;
 
-SELECT evergreen.upgrade_deps_block_check('0986', :eg_version);
+SELECT evergreen.upgrade_deps_block_check('1008', :eg_version);
 
 CREATE OR REPLACE FUNCTION evergreen.unaccent_and_squash ( IN arg text) RETURNS text
     IMMUTABLE STRICT AS $$

commit adee7416a42a29072c76e7062e9e7bb0aee3376c
Author: Dan Pearl <dpearl at cwmars.org>
Date:   Wed Feb 8 17:57:20 2017 -0500

    LP#1613341 - Patron name search should be punctuation-insensitive
    
    O'Brien will be matched by Obrien, O'Brien, O Brien etc.
    Grubbly-Plank will be matched by Grubbly Plank, Grubbly-Plank, Grubblyplank, etc.
    This feature is controlled by the same org setting that controls ignoring
    of diacritical marks.
    
    Signed-off-by: Dan Pearl <dpearl at cwmars.org>
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>

diff --git a/Open-ILS/src/sql/Pg/000.functions.general.sql b/Open-ILS/src/sql/Pg/000.functions.general.sql
index 9b95af8..8b0dd63 100644
--- a/Open-ILS/src/sql/Pg/000.functions.general.sql
+++ b/Open-ILS/src/sql/Pg/000.functions.general.sql
@@ -89,7 +89,7 @@ LANGUAGE plpgsql;
 CREATE OR REPLACE FUNCTION evergreen.unaccent_and_squash ( IN arg text) RETURNS text
     IMMUTABLE STRICT AS $$
 	BEGIN
-	RETURN evergreen.lowercase(unaccent(regexp_replace(arg, '\s','','g')));
+	RETURN evergreen.lowercase(unaccent(regexp_replace(arg, '[\s[:punct:]]','','g')));
 	END;
 $$ LANGUAGE PLPGSQL;
 
diff --git a/Open-ILS/src/sql/Pg/t/lp1501781-unaccent_and_squash.pg b/Open-ILS/src/sql/Pg/t/lp1501781-unaccent_and_squash.pg
index f09dcf6..c90014f 100644
--- a/Open-ILS/src/sql/Pg/t/lp1501781-unaccent_and_squash.pg
+++ b/Open-ILS/src/sql/Pg/t/lp1501781-unaccent_and_squash.pg
@@ -2,7 +2,7 @@
 BEGIN;
 
 -- Number of tests that will be run
-SELECT plan(15);
+SELECT plan(18);
 
 -- Run the tests
 
@@ -27,7 +27,7 @@ SELECT is(evergreen.unaccent_and_squash('aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsSt
           'English Characters');
 
 SELECT is(evergreen.unaccent_and_squash('0123456789!@#$%^&*()-+'),
-          '0123456789!@#$%^&*()-+', 'Numbers and Symbols');
+          '0123456789', 'Numbers and Symbols');
 
 SELECT is(evergreen.unaccent_and_squash('ÁÉÍÑÓÚÜáéíñóúü¿¡'),
           'aeinouuaeinouu¿¡', 'Spanish');
@@ -56,6 +56,17 @@ SELECT is(evergreen.unaccent_and_squash('El Niño'),
 SELECT is(evergreen.unaccent_and_squash('Œuvres'),
           'euvres', 'oe ligature');
 
+-- Punctuation Tests
+
+SELECT is(evergreen.unaccent_and_squash('O''Brien'),
+          'obrien', 'Apostrophe');
+
+SELECT is(evergreen.unaccent_and_squash('Grubbly-Plank'),
+          'grubblyplank', 'Hyphen');
+
+SELECT is(evergreen.unaccent_and_squash('p&#$(a#*&$!s))(\\s'),
+          'pass', 'Punctuation hash');
+
 -- Finish the test and clean up.
 SELECT * FROM finish();
 ROLLBACK;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_punct.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_punct.sql
new file mode 100644
index 0000000..3713a3b
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_punct.sql
@@ -0,0 +1,21 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('0986', :eg_version);
+
+CREATE OR REPLACE FUNCTION evergreen.unaccent_and_squash ( IN arg text) RETURNS text
+    IMMUTABLE STRICT AS $$
+	BEGIN
+	RETURN evergreen.lowercase(unaccent(regexp_replace(arg, '[\s[:punct:]]','','g')));
+	END;
+$$ LANGUAGE PLPGSQL;
+
+-- Upon upgrade, we need to
+-- reindex because the definition of the unaccent_and_squash function
+-- has changed.
+REINDEX INDEX actor.actor_usr_first_given_name_unaccent_idx;
+REINDEX INDEX actor.actor_usr_second_given_name_unaccent_idx;
+REINDEX INDEX actor.actor_usr_family_name_unaccent_idx;
+
+COMMIT;
+
+
diff --git a/docs/RELEASE_NOTES_NEXT/Client/patron_punctuation b/docs/RELEASE_NOTES_NEXT/Client/patron_punctuation
new file mode 100644
index 0000000..75b160c
--- /dev/null
+++ b/docs/RELEASE_NOTES_NEXT/Client/patron_punctuation
@@ -0,0 +1,10 @@
+Punctuation Insensitive Patron Search
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When performing a patron search, punctuation characters will be
+ignored.  So if the patron is named O'Brien, then you can enter Obrien,
+O'Brien, O Brien, etc. in the search box.
+
+This behavior affects the Last Name (internally: family_name), First Name
+(first_given_name), and Middle Name (second_given_name) fields of the search.
+
+

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

Summary of changes:
 Open-ILS/src/sql/Pg/000.functions.general.sql      |    2 +-
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 .../src/sql/Pg/t/lp1501781-unaccent_and_squash.pg  |   15 ++++++++++++-
 .../sql/Pg/upgrade/1008.schema.patron_punct.sql    |   21 ++++++++++++++++++++
 docs/RELEASE_NOTES_NEXT/Client/patron_punctuation  |   10 +++++++++
 5 files changed, 46 insertions(+), 4 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/1008.schema.patron_punct.sql
 create mode 100644 docs/RELEASE_NOTES_NEXT/Client/patron_punctuation


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list