From: miker Date: Mon, 11 Jun 2007 18:55:25 +0000 (+0000) Subject: adding experimental "non-filing" normalizing function X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=bc04290361734804f91b79accb12bc25201fe3e8;p=Evergreen.git adding experimental "non-filing" normalizing function git-svn-id: svn://svn.open-ils.org/ILS/trunk@7411 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/sql/Pg/020.schema.functions.sql b/Open-ILS/src/sql/Pg/020.schema.functions.sql index 88934fc397..2e802933de 100644 --- a/Open-ILS/src/sql/Pg/020.schema.functions.sql +++ b/Open-ILS/src/sql/Pg/020.schema.functions.sql @@ -1,3 +1,21 @@ +CREATE OR REPLACE FUNCTION public.non_filing_normalize ( TEXT, "char" ) RETURNS TEXT AS $$ + SELECT SUBSTRING( + REGEXP_REPLACE( + REGEXP_REPLACE( + $1, + '\\W*$', + '' + ), + ' ', + ' ' + ), + CASE + WHEN $2::INT NOT BETWEEN 48 AND 57 THEN 1 + ELSE $2::TEXT::INT + 1 + END + ); +$$ LANGUAGE SQL STRICT IMMUTABLE; + CREATE OR REPLACE FUNCTION public.call_number_dewey( TEXT ) RETURNS TEXT AS $$ my $txt = shift; $txt =~ s/^\s+//o;