Changeset 9458
- Timestamp:
- 04/26/08 12:49:25 (3 weeks ago)
- Location:
- trunk/Open-ILS
- Files:
-
- 3 modified
-
examples/fm_IDL.xml (modified) (2 diffs)
-
src/sql/Pg/reporter-schema.sql (modified) (3 diffs)
-
src/sql/Pg/upgrade_simple_record.sql (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Open-ILS/examples/fm_IDL.xml
r9447 r9458 1081 1081 <link field="editor" reltype="has_a" key="id" map="" class="au"/> 1082 1082 <link field="creator" reltype="has_a" key="id" map="" class="au"/> 1083 <link field="simple_record" reltype="might_have" key="id" map="" class="r ssr"/>1083 <link field="simple_record" reltype="might_have" key="id" map="" class="rmsr"/> 1084 1084 <link field="metarecord" reltype="might_have" key="source" map="metarecord" class="mmrsm"/> 1085 1085 <link field="call_numbers" reltype="has_many" key="record" map="" class="acn"/> … … 3232 3232 </links> 3233 3233 </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> 3234 3256 <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"> 3235 3257 <fields oils_persist:primary="id"> -
trunk/Open-ILS/src/sql/Pg/reporter-schema.sql
r9456 r9458 133 133 GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14; 134 134 135 CREATE OR REPLACE VIEW reporter. super_simple_record AS135 CREATE OR REPLACE VIEW reporter.old_super_simple_record AS 136 136 SELECT r.id, 137 137 r.fingerprint, … … 155 155 GROUP BY 1,2,3,4,5,6,8,9; 156 156 157 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter. simple_record WHERE 1=0;157 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.old_super_simple_record WHERE 1=0; 158 158 ALTER TABLE reporter.materialized_simple_record ADD PRIMARY KEY (id); 159 CREATE VIEW reporter.super_simple_record AS SELECT * FROM reporter.materialized_simple_record; 159 160 160 161 CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ … … 165 166 166 167 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; 168 169 END IF; 169 170 -
trunk/Open-ILS/src/sql/Pg/upgrade_simple_record.sql
r9453 r9458 2 2 BEGIN; 3 3 4 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.s imple_record WHERE 1=0;4 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.super_simple_record WHERE 1=0; 5 5 6 6 INSERT INTO reporter.materialized_simple_record … … 9 9 10 10 ALTER TABLE reporter.materialized_simple_record ADD PRIMARY KEY (id); 11 12 CREATE OR REPLACE VIEW reporter.super_simple_record AS SELECT * FROM reporter.materialized_simple_record; 13 14 CREATE OR REPLACE VIEW reporter.old_super_simple_record AS 15 SELECT 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; 11 35 12 36 CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ … … 17 41 18 42 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; 20 44 END IF; 21 45
