3 INSERT INTO config.upgrade_log (version) VALUES ('xxxx');
5 CREATE OR REPLACE FUNCTION asset.label_normalizer_dewey(TEXT) RETURNS TEXT AS $func$
6 # Derived from the Koha C4::ClassSortRoutine::Dewey module
7 # Copyright (C) 2007 LibLime
8 # Licensed under the GPL v2 or later
17 $init =~ s/^([\p{IsAlpha}]+)/$1 /;
18 my @tokens = split /\.|\s+/, $init;
19 my $digit_group_count = 0;
20 for (my $i = 0; $i <= $#tokens; $i++) {
21 if ($tokens[$i] =~ /^\d+$/) {
23 if (2 == $digit_group_count) {
24 $tokens[$i] = sprintf("%-15.15s", $tokens[$i]);
25 $tokens[$i] =~ tr/ /0/;
29 # Pad the first digit_group if there was only one
30 if (1 == $digit_group_count) {
31 $tokens[0] .= '_000000000000000'
33 my $key = join("_", @tokens);
34 $key =~ s/[^\p{IsAlnum}_]//g;
38 $func$ LANGUAGE PLPERLU;
40 -- regenerate sort keys for any dewey call numbers
41 UPDATE asset.call_number SET id = id WHERE label_class = 2;