adding experimental "non-filing" normalizing function
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 11 Jun 2007 18:55:25 +0000 (18:55 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 11 Jun 2007 18:55:25 +0000 (18:55 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@7411 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/020.schema.functions.sql

index 88934fc..2e80293 100644 (file)
@@ -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;