SCPL: bib cleanup script
[transitory.git] / Open-ILS / src / sql / Pg / version-upgrade / scpl_bib_cleanup.sql
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/scpl_bib_cleanup.sql b/Open-ILS/src/sql/Pg/version-upgrade/scpl_bib_cleanup.sql
new file mode 100644 (file)
index 0000000..f1b439e
--- /dev/null
@@ -0,0 +1,8 @@
+CREATE TEMPORARY TABLE bibs_to_fix AS 
+SELECT id 
+FROM biblio.record_entry
+WHERE (XPATH('//marc:datafield[@tag="901"][1]/marc:subfield[@code="c"]/text()', marc::XML, ARRAY[ARRAY['marc', 'http://www.loc.gov/MARC21/slim']]))[1]::TEXT IS NULL
+OR    (XPATH('//marc:datafield[@tag="901"][1]/marc:subfield[@code="c"]/text()', marc::XML, ARRAY[ARRAY['marc', 'http://www.loc.gov/MARC21/slim']]))[1]::TEXT <> id::TEXT;
+
+UPDATE biblio.record_entry SET id = id WHERE id IN (SELECT id FROM bibs_to_fix);
+