]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0914.schema.lpad-number-repair.sql
LP2042879 Shelving Location Groups Admin accessibility
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0914.schema.lpad-number-repair.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('0914', :eg_version);
4
5 CREATE OR REPLACE FUNCTION evergreen.lpad_number_substrings( TEXT, TEXT, INT ) RETURNS TEXT AS $$
6     my $string = shift;            # Source string
7     my $pad = shift;               # string to fill.  Typically '0'. This should be a single character.
8     my $len = shift;               # length of resultant padded field
9     my $find = $len - 1;
10
11     while ($string =~ /(^|\D)(\d{1,$find})($|\D)/) {
12         my $padded = $2;
13         $padded = $pad x ($len - length($padded)) . $padded;
14         $string = $` . $1 . $padded . $3 . $';
15     }
16
17     return $string;
18 $$ LANGUAGE PLPERLU;
19
20 COMMIT;
21
22 -- recompute the various normalized label fields that use lpad_number_substrings()
23 UPDATE biblio.monograph_part SET id = id;
24 UPDATE asset.call_number_prefix SET id = id;
25 UPDATE asset.call_number_suffix SET id = id;