[open-ils-commits] r17245 - branches/rel_1_6/Open-ILS/src/sql/Pg (miker)

svn at svn.open-ils.org svn at svn.open-ils.org
Wed Aug 18 12:36:57 EDT 2010


Author: miker
Date: 2010-08-18 12:36:54 -0400 (Wed, 18 Aug 2010)
New Revision: 17245

Modified:
   branches/rel_1_6/Open-ILS/src/sql/Pg/1.6.1.1-1.6.1.2-upgrade-db.sql
   branches/rel_1_6/Open-ILS/src/sql/Pg/reporter-schema.sql
Log:
Backport of 17243: so, some datasets have records with multiple 245a subfields. yeah, really.

Modified: branches/rel_1_6/Open-ILS/src/sql/Pg/1.6.1.1-1.6.1.2-upgrade-db.sql
===================================================================
--- branches/rel_1_6/Open-ILS/src/sql/Pg/1.6.1.1-1.6.1.2-upgrade-db.sql	2010-08-18 16:33:47 UTC (rev 17244)
+++ branches/rel_1_6/Open-ILS/src/sql/Pg/1.6.1.1-1.6.1.2-upgrade-db.sql	2010-08-18 16:36:54 UTC (rev 17245)
@@ -149,19 +149,18 @@
 END;
 $func$ LANGUAGE plpgsql;
 
--- allow more than one 260 in summary data
 CREATE OR REPLACE VIEW reporter.old_super_simple_record AS
 SELECT  r.id,
     r.fingerprint,
     r.quality,
     r.tcn_source,
     r.tcn_value,
-    title.value AS title,
+    FIRST(title.value) AS title,
     FIRST(author.value) AS author,
     ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT publisher.value), ', ') AS publisher,
     ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT SUBSTRING(pubdate.value FROM $$\d+$$) ), ', ') AS pubdate,
     ARRAY_ACCUM( DISTINCT SUBSTRING(isbn.value FROM $$^\S+$$) ) AS isbn,
-    ARRAY_ACCUM( DISTINCT SUBSTRING(REGEXP_REPLACE(issn.value, E'^\\s*(\\d{4})[-\\s](\\d{3,4}x?)\\s*', E'\\1 \\2') FROM 1 FOR 9) ) AS issn
+    ARRAY_ACCUM( DISTINCT SUBSTRING(issn.value FROM $$^\S+$$) ) AS issn
   FROM  biblio.record_entry r
     LEFT JOIN metabib.full_rec title ON (r.id = title.record AND title.tag = '245' AND title.subfield = 'a')
     LEFT JOIN metabib.full_rec author ON (r.id = author.record AND author.tag IN ('100','110','111') AND author.subfield = 'a')
@@ -169,7 +168,7 @@
     LEFT JOIN metabib.full_rec pubdate ON (r.id = pubdate.record AND pubdate.tag = '260' AND pubdate.subfield = 'c')
     LEFT JOIN metabib.full_rec isbn ON (r.id = isbn.record AND isbn.tag IN ('024', '020') AND isbn.subfield IN ('a','z'))
     LEFT JOIN metabib.full_rec issn ON (r.id = issn.record AND issn.tag = '022' AND issn.subfield = 'a')
-  GROUP BY 1,2,3,4,5,6;
+  GROUP BY 1,2,3,4,5;
 
 CREATE OR REPLACE FUNCTION asset.merge_record_assets( target_record BIGINT, source_record BIGINT ) RETURNS INT AS $func$
 DECLARE

Modified: branches/rel_1_6/Open-ILS/src/sql/Pg/reporter-schema.sql
===================================================================
--- branches/rel_1_6/Open-ILS/src/sql/Pg/reporter-schema.sql	2010-08-18 16:33:47 UTC (rev 17244)
+++ branches/rel_1_6/Open-ILS/src/sql/Pg/reporter-schema.sql	2010-08-18 16:36:54 UTC (rev 17245)
@@ -149,25 +149,25 @@
   GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14;
 
 CREATE OR REPLACE VIEW reporter.old_super_simple_record AS
-SELECT	r.id,
-	r.fingerprint,
-	r.quality,
-	r.tcn_source,
-	r.tcn_value,
-	title.value AS title,
-	FIRST(author.value) AS author,
-	ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT publisher.value), ', ') AS publisher,
-	ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT SUBSTRING(pubdate.value FROM $$\d+$$) ), ', ') AS pubdate,
-	ARRAY_ACCUM( DISTINCT SUBSTRING(isbn.value FROM $$^\S+$$) ) AS isbn,
-	ARRAY_ACCUM( DISTINCT SUBSTRING(issn.value FROM $$^\S+$$) ) AS issn
-  FROM	biblio.record_entry r
-	LEFT JOIN metabib.full_rec title ON (r.id = title.record AND title.tag = '245' AND title.subfield = 'a')
-	LEFT JOIN metabib.full_rec author ON (r.id = author.record AND author.tag IN ('100','110','111') AND author.subfield = 'a')
-	LEFT JOIN metabib.full_rec publisher ON (r.id = publisher.record AND publisher.tag = '260' AND publisher.subfield = 'b')
-	LEFT JOIN metabib.full_rec pubdate ON (r.id = pubdate.record AND pubdate.tag = '260' AND pubdate.subfield = 'c')
-	LEFT JOIN metabib.full_rec isbn ON (r.id = isbn.record AND isbn.tag IN ('024', '020') AND isbn.subfield IN ('a','z'))
-	LEFT JOIN metabib.full_rec issn ON (r.id = issn.record AND issn.tag = '022' AND issn.subfield = 'a')
-  GROUP BY 1,2,3,4,5,6;
+SELECT  r.id,
+    r.fingerprint,
+    r.quality,
+    r.tcn_source,
+    r.tcn_value,
+    FIRST(title.value) AS title,
+    FIRST(author.value) AS author,
+    ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT publisher.value), ', ') AS publisher,
+    ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT SUBSTRING(pubdate.value FROM $$\d+$$) ), ', ') AS pubdate,
+    ARRAY_ACCUM( DISTINCT SUBSTRING(isbn.value FROM $$^\S+$$) ) AS isbn,
+    ARRAY_ACCUM( DISTINCT SUBSTRING(issn.value FROM $$^\S+$$) ) AS issn
+  FROM  biblio.record_entry r
+    LEFT JOIN metabib.full_rec title ON (r.id = title.record AND title.tag = '245' AND title.subfield = 'a')
+    LEFT JOIN metabib.full_rec author ON (r.id = author.record AND author.tag IN ('100','110','111') AND author.subfield = 'a')
+    LEFT JOIN metabib.full_rec publisher ON (r.id = publisher.record AND publisher.tag = '260' AND publisher.subfield = 'b')
+    LEFT JOIN metabib.full_rec pubdate ON (r.id = pubdate.record AND pubdate.tag = '260' AND pubdate.subfield = 'c')
+    LEFT JOIN metabib.full_rec isbn ON (r.id = isbn.record AND isbn.tag IN ('024', '020') AND isbn.subfield IN ('a','z'))
+    LEFT JOIN metabib.full_rec issn ON (r.id = issn.record AND issn.tag = '022' AND issn.subfield = 'a')
+  GROUP BY 1,2,3,4,5;
 
 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.old_super_simple_record WHERE 1=0;
 ALTER TABLE reporter.materialized_simple_record ADD PRIMARY KEY (id);



More information about the open-ils-commits mailing list