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

Evergreen Git git at git.evergreen-ils.org
Fri Dec 16 14:05:12 EST 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, master has been updated
       via  722e91ea874551fd00856241d3083da23fffd534 (commit)
       via  a769d4798a3b0500825d1cb3082f73d7e1a2c6b3 (commit)
      from  39ef430d3862277bcf0df977ac48985dd7f64f2c (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 722e91ea874551fd00856241d3083da23fffd534
Author: Dan Scott <dscott at laurentian.ca>
Date:   Fri Dec 16 14:00:24 2011 -0500

    LP# 902667 - Wrap upgrade script for Dewey sorting
    
    Signed-off-by: Dan Scott <dscott at laurentian.ca>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 15a1cae..1573edb 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -86,7 +86,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 ('0657', :eg_version); -- berick/tsbere
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0658', :eg_version); -- jamesrf/dbs
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/xxxx.dewey-sort-fix.sql b/Open-ILS/src/sql/Pg/upgrade/0658.schema.acn_dewey_sort_fix.sql
similarity index 83%
rename from Open-ILS/src/sql/Pg/upgrade/xxxx.dewey-sort-fix.sql
rename to Open-ILS/src/sql/Pg/upgrade/0658.schema.acn_dewey_sort_fix.sql
index 310bb2f..21ca1e2 100644
--- a/Open-ILS/src/sql/Pg/upgrade/xxxx.dewey-sort-fix.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/0658.schema.acn_dewey_sort_fix.sql
@@ -1,6 +1,11 @@
+-- Evergreen DB patch 0658.schema.acn_dewey_sort_fix.sql
+--
+-- Fixes Dewey call number sorting (per LP# 902667)
+--
 BEGIN;
 
-INSERT INTO config.upgrade_log (version) VALUES ('xxxx');
+-- check whether patch can be applied
+SELECT evergreen.upgrade_deps_block_check('0658', :eg_version);
 
 CREATE OR REPLACE FUNCTION asset.label_normalizer_dewey(TEXT) RETURNS TEXT AS $func$
     # Derived from the Koha C4::ClassSortRoutine::Dewey module

commit a769d4798a3b0500825d1cb3082f73d7e1a2c6b3
Author: James Fournie <jfournie at sitka.bclibraries.ca>
Date:   Sat Dec 10 16:49:01 2011 -0800

    Fix Dewey call number sorting
    
    Ported over Koha commit aef8358c - fix for Koha Bug 4265.
    Further documented in Evergreen LP # 902667
    Here's the description from the commit message by Magnus Enger:
    
    C4::ClassSortRoutine::Dewey turns "306 Les" into "306_Les"
    for items.cn_sort and MARC-field 952$6, which results in
    "306.46 Les" being sorted before "306 Les" in the OPAC.
    With this patch, "306 Les" is turned into "306_000000000000000_Les".
    
    Signed-off-by: James Fournie <jfournie at sitka.bclibraries.ca>
    Signed-off-by: Dan Scott <dscott at laurentian.ca>

diff --git a/Open-ILS/src/sql/Pg/040.schema.asset.sql b/Open-ILS/src/sql/Pg/040.schema.asset.sql
index f80b2d1..fef5ced 100644
--- a/Open-ILS/src/sql/Pg/040.schema.asset.sql
+++ b/Open-ILS/src/sql/Pg/040.schema.asset.sql
@@ -328,6 +328,10 @@ CREATE OR REPLACE FUNCTION asset.label_normalizer_dewey(TEXT) RETURNS TEXT AS $f
             }
         }
     }
+    # Pad the first digit_group if there was only one
+    if (1 == $digit_group_count) {
+        $tokens[0] .= '_000000000000000'
+    }
     my $key = join("_", @tokens);
     $key =~ s/[^\p{IsAlnum}_]//g;
 
diff --git a/Open-ILS/src/sql/Pg/upgrade/xxxx.dewey-sort-fix.sql b/Open-ILS/src/sql/Pg/upgrade/xxxx.dewey-sort-fix.sql
new file mode 100644
index 0000000..310bb2f
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/xxxx.dewey-sort-fix.sql
@@ -0,0 +1,43 @@
+BEGIN;
+
+INSERT INTO config.upgrade_log (version) VALUES ('xxxx');
+
+CREATE OR REPLACE FUNCTION asset.label_normalizer_dewey(TEXT) RETURNS TEXT AS $func$
+    # Derived from the Koha C4::ClassSortRoutine::Dewey module
+    # Copyright (C) 2007 LibLime
+    # Licensed under the GPL v2 or later
+
+    use strict;
+    use warnings;
+
+    my $init = uc(shift);
+    $init =~ s/^\s+//;
+    $init =~ s/\s+$//;
+    $init =~ s!/!!g;
+    $init =~ s/^([\p{IsAlpha}]+)/$1 /;
+    my @tokens = split /\.|\s+/, $init;
+    my $digit_group_count = 0;
+    for (my $i = 0; $i <= $#tokens; $i++) {
+        if ($tokens[$i] =~ /^\d+$/) {
+            $digit_group_count++;
+            if (2 == $digit_group_count) {
+                $tokens[$i] = sprintf("%-15.15s", $tokens[$i]);
+                $tokens[$i] =~ tr/ /0/;
+            }
+        }
+    }
+    # Pad the first digit_group if there was only one
+    if (1 == $digit_group_count) {
+        $tokens[0] .= '_000000000000000'
+    }
+    my $key = join("_", @tokens);
+    $key =~ s/[^\p{IsAlnum}_]//g;
+
+    return $key;
+
+$func$ LANGUAGE PLPERLU;
+
+-- regenerate sort keys for any dewey call numbers
+UPDATE asset.call_number SET id = id WHERE label_class = 2;
+
+COMMIT;

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

Summary of changes:
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 Open-ILS/src/sql/Pg/040.schema.asset.sql           |    4 ++
 .../Pg/upgrade/0658.schema.acn_dewey_sort_fix.sql  |   48 ++++++++++++++++++++
 3 files changed, 53 insertions(+), 1 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/0658.schema.acn_dewey_sort_fix.sql


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list