[RT17143] Restriced selection of fixable MARC records
authorLiam Whalen <liam.whalen@bc.libraries.coop>
Tue, 27 Oct 2015 23:11:02 +0000 (16:11 -0700)
committerLiam Whalen <liam.whalen@bc.libraries.coop>
Tue, 27 Oct 2015 23:11:02 +0000 (16:11 -0700)
The code was selecting MARC records with a 260 or 264 $c that had 1 to 4
characters.  However, we only want 4 character dates.  On the off chance
that a record with a 3 year date has a bad 008 date1, we can update that
record manually.

Signed-off-by: Liam Whalen <liam.whalen@bc.libraries.coop>
data_cleanup/date1/date1_cleanup.pl

index 8911039..d6bdc6f 100644 (file)
@@ -62,7 +62,7 @@ sub clean_date1_records {
         WHERE mrfr.record IN (SELECT record
             FROM metabib.real_full_rec
             WHERE tag = '008' AND substring(value, 8, 4) ~ '(^\\s*\$|^\\d{1,3}\$|[^0-9\\su]|203[1-9])')
-        AND (tag = '260' OR tag = '264') AND subfield = 'c' AND value ~ '\\d{1,4}' AND bre.deleted = false AND aou.shortname NOT IN ('MWP', 'AB', 'LB', 'ITC', 'HBCA')");
+        AND (tag = '260' OR tag = '264') AND subfield = 'c' AND value ~ '\\d{4}' AND bre.deleted = false AND aou.shortname NOT IN ('MWP', 'AB', 'LB', 'ITC', 'HBCA')");
     $sth->execute;
     my $records = $sth->fetchall_arrayref([0]);
     $sth->finish;