DROP TABLE reindex.to_do; CREATE TABLE reindex.to_do (id int); DROP TABLE reindex.failed; CREATE TABLE reindex.failed (id int, reason TEXT); -- INSERT ALL THE BIBS --INSERT INTO reindex.to_do SELECT id from biblio.record_entry where not deleted; CREATE OR REPLACE FUNCTION reindex.cleanup_marc(TEXT) RETURNS TEXT as $func$ use MARC::Record; use MARC::File::XML (BinaryEncoding => 'UTF-8'); use MARC::Charset; use Unicode::Normalize; use strict; MARC::Charset->assume_unicode(1); my $xml = shift; my $r = MARC::Record->new_from_xml( $xml ); for my $f ( $r->field('901') ) { $r->delete_field($f) } $xml = $r->as_xml_record(); $xml =~ s/\n//sgo; $xml =~ s/^<\?xml.+\?\s*>//go; $xml =~ s/>\s+