Show
Ignore:
Timestamp:
04/26/08 12:49:25 (2 months ago)
Author:
miker
Message:

base materialized simple record on old super_simple_record

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/Open-ILS/src/sql/Pg/upgrade_simple_record.sql

    r9453 r9458  
    22BEGIN; 
    33 
    4 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.simple_record WHERE 1=0; 
     4CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.super_simple_record WHERE 1=0; 
    55 
    66INSERT INTO reporter.materialized_simple_record 
     
    99 
    1010ALTER TABLE reporter.materialized_simple_record ADD PRIMARY KEY (id); 
     11 
     12CREATE OR REPLACE VIEW reporter.super_simple_record AS SELECT * FROM reporter.materialized_simple_record; 
     13 
     14CREATE OR REPLACE VIEW reporter.old_super_simple_record AS 
     15SELECT  r.id, 
     16    r.fingerprint, 
     17    r.quality, 
     18    r.tcn_source, 
     19    r.tcn_value, 
     20    title.value AS title, 
     21    FIRST(author.value) AS author, 
     22    publisher.value AS publisher, 
     23    SUBSTRING(pubdate.value FROM $$\d+$$) AS pubdate, 
     24    ARRAY_ACCUM( SUBSTRING(isbn.value FROM $$^\S+$$) ) AS isbn, 
     25    ARRAY_ACCUM( SUBSTRING(issn.value FROM $$^\S+$$) ) AS issn 
     26  FROM  biblio.record_entry r 
     27    LEFT JOIN metabib.full_rec title ON (r.id = title.record AND title.tag = '245' AND title.subfield = 'a') 
     28    LEFT JOIN metabib.full_rec author ON (r.id = author.record AND author.tag IN ('100','110','111') AND author.subfield = 'a') 
     29    LEFT JOIN metabib.full_rec publisher ON (r.id = publisher.record AND publisher.tag = '260' AND publisher.subfield = 'b') 
     30    LEFT JOIN metabib.full_rec pubdate ON (r.id = pubdate.record AND pubdate.tag = '260' AND pubdate.subfield = 'c') 
     31    LEFT JOIN metabib.full_rec isbn ON (r.id = isbn.record AND isbn.tag IN ('024', '020') AND isbn.subfield IN ('a','z')) 
     32    LEFT JOIN metabib.full_rec issn ON (r.id = issn.record AND issn.tag = '022' AND issn.subfield = 'a') 
     33  WHERE r.deleted IS FALSE 
     34  GROUP BY 1,2,3,4,5,6,8,9; 
    1135 
    1236CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ 
     
    1741 
    1842    IF TG_OP IN ('INSERT','UPDATE') AND NOT NEW.deleted THEN 
    19         INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.simple_record WHERE id = NEW.record; 
     43        INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.old_super_simple_record WHERE id = NEW.record; 
    2044    END IF; 
    2145