Changeset 9458

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

base materialized simple record on old super_simple_record

Location:
trunk/Open-ILS
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/Open-ILS/examples/fm_IDL.xml

    r9447 r9458  
    10811081                        <link field="editor" reltype="has_a" key="id" map="" class="au"/> 
    10821082                        <link field="creator" reltype="has_a" key="id" map="" class="au"/> 
    1083                         <link field="simple_record" reltype="might_have" key="id" map="" class="rssr"/> 
     1083                        <link field="simple_record" reltype="might_have" key="id" map="" class="rmsr"/> 
    10841084                        <link field="metarecord" reltype="might_have" key="source" map="metarecord" class="mmrsm"/> 
    10851085                        <link field="call_numbers" reltype="has_many" key="record" map="" class="acn"/> 
     
    32323232                </links> 
    32333233        </class> 
     3234        <class id="rmsr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::materialized_simple_record" oils_persist:tablename="reporter.materialized_simple_record" reporter:label="Fast Simple Record Extracts"> 
     3235                <fields oils_persist:primary="id"> 
     3236                        <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" /> 
     3237                        <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" /> 
     3238                        <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" /> 
     3239                        <field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" /> 
     3240                        <field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/> 
     3241                        <field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/> 
     3242                        <field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/> 
     3243                        <field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/> 
     3244                        <field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/> 
     3245                        <field reporter:label="Author (normalized)" name="author" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/> 
     3246                        <field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/> 
     3247                        <field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int"/> 
     3248                        <field reporter:label="ISBN" name="isbn" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/> 
     3249                        <field reporter:label="ISSN" name="issn" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/> 
     3250                        <field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/> 
     3251                </fields> 
     3252                <links> 
     3253                        <link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/> 
     3254                </links> 
     3255        </class> 
    32343256        <class id="rssr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::super_simple_record" oils_persist:tablename="reporter.super_simple_record" reporter:label="Simple Record Extracts"> 
    32353257                <fields oils_persist:primary="id"> 
  • trunk/Open-ILS/src/sql/Pg/reporter-schema.sql

    r9456 r9458  
    133133  GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14; 
    134134 
    135 CREATE OR REPLACE VIEW reporter.super_simple_record AS 
     135CREATE OR REPLACE VIEW reporter.old_super_simple_record AS 
    136136SELECT  r.id, 
    137137        r.fingerprint, 
     
    155155  GROUP BY 1,2,3,4,5,6,8,9; 
    156156 
    157 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.simple_record WHERE 1=0; 
     157CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.old_super_simple_record WHERE 1=0; 
    158158ALTER TABLE reporter.materialized_simple_record ADD PRIMARY KEY (id); 
     159CREATE VIEW reporter.super_simple_record AS SELECT * FROM reporter.materialized_simple_record; 
    159160 
    160161CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ 
     
    165166 
    166167    IF TG_OP IN ('INSERT','UPDATE') AND NOT NEW.deleted THEN 
    167         INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.simple_record WHERE id = NEW.record; 
     168        INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.old_super_simple_record WHERE id = NEW.record; 
    168169    END IF; 
    169170 
  • 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