Script now handles Jr and Sr without a trailing period, and the suffix IV.
authorBen Ostrowsky <ben@esilibrary.com>
Mon, 28 Dec 2009 17:34:46 +0000 (17:34 +0000)
committerBen Ostrowsky <ben@esilibrary.com>
Mon, 28 Dec 2009 17:34:46 +0000 (17:34 +0000)
sql/base/base.sql

index 745e538..e5c5d2f 100644 (file)
@@ -302,10 +302,18 @@ CREATE OR REPLACE FUNCTION migration_tools.name_parse_out_last_comma_prefix_firs
             suffix := 'Jr.';
             temp := REGEXP_REPLACE( temp, E'JR\.?\\s*', '', 'i' );
         END IF;
+        IF temp ilike '%JR,%' THEN
+            suffix := 'Jr.';
+            temp := REGEXP_REPLACE( temp, E'JR,\\s*', ',', 'i' );
+        END IF;
         IF temp ilike '%SR%' THEN
             suffix := 'Sr.';
             temp := REGEXP_REPLACE( temp, E'SR\.?\\s*', '', 'i' );
         END IF;
+        IF temp ilike '%SR,%' THEN
+            suffix := 'Sr.';
+            temp := REGEXP_REPLACE( temp, E'SR,\\s*', ',', 'i' );
+        END IF;
         IF temp ~ E'\\sII$' THEN
             suffix := 'II';
             temp := REGEXP_REPLACE( temp, E'II$', '', 'i' );
@@ -314,6 +322,10 @@ CREATE OR REPLACE FUNCTION migration_tools.name_parse_out_last_comma_prefix_firs
             suffix := 'III';
             temp := REGEXP_REPLACE( temp, E'III$', '', 'i' );
         END IF;
+        IF temp ~ E'\\sIV$' THEN
+            suffix := 'IV';
+            temp := REGEXP_REPLACE( temp, E'IV$', '', 'i' );
+        END IF;
 
         family_name := BTRIM( REGEXP_REPLACE(temp,E'^([^,]*)\\s*,.*$',E'\\1') );
         first_given_name := BTRIM( CASE WHEN temp ~ ',' THEN REGEXP_REPLACE(temp,E'^[^,]*\\s*,\\s*([^,\\s]*)\\s*.*$',E'\\1') ELSE 'N/A' END );