Stamping upgrade script for dewey sort fix
authorBen Shum <bshum@biblio.org>
Tue, 20 Aug 2013 14:50:43 +0000 (10:50 -0400)
committerBen Shum <bshum@biblio.org>
Tue, 20 Aug 2013 14:50:43 +0000 (10:50 -0400)
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/upgrade/0819.schema.acn_dewey_normalizer.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acn_dewey_normalizer.sql [deleted file]

index 475ba18..61ea65b 100644 (file)
@@ -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 ('0818', :eg_version); -- senator/csharp
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0819', :eg_version); -- phasefx/bshum
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0819.schema.acn_dewey_normalizer.sql b/Open-ILS/src/sql/Pg/upgrade/0819.schema.acn_dewey_normalizer.sql
new file mode 100644 (file)
index 0000000..049fd87
--- /dev/null
@@ -0,0 +1,52 @@
+-- Evergreen DB patch 0819.schema.acn_dewey_normalizer.sql
+--
+-- Fixes Dewey call number sorting (per LP# 1150939)
+--
+BEGIN;
+
+-- check whether patch can be applied
+SELECT evergreen.upgrade_deps_block_check('0819', :eg_version);
+
+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;
+    my $first_digit_group_idx;
+    for (my $i = 0; $i <= $#tokens; $i++) {
+        if ($tokens[$i] =~ /^\d+$/) {
+            $digit_group_count++;
+            if ($digit_group_count == 1) {
+                $first_digit_group_idx = $i;
+            }
+            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[$first_digit_group_idx] .= '_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;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acn_dewey_normalizer.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.acn_dewey_normalizer.sql
deleted file mode 100644 (file)
index fa4d501..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
--- Evergreen DB patch XXXX.schema.acn_dewey_normalizer.sql
---
--- Fixes Dewey call number sorting (per LP# 1150939)
---
-BEGIN;
-
--- check whether patch can be applied
-SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
-
-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;
-    my $first_digit_group_idx;
-    for (my $i = 0; $i <= $#tokens; $i++) {
-        if ($tokens[$i] =~ /^\d+$/) {
-            $digit_group_count++;
-            if ($digit_group_count == 1) {
-                $first_digit_group_idx = $i;
-            }
-            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[$first_digit_group_idx] .= '_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;