Changeset 9457
- Timestamp:
- 04/26/08 12:48:27 (2 months ago)
- Location:
- branches/rel_1_2/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
-
branches/rel_1_2/Open-ILS/examples/fm_IDL.xml
r8915 r9457 540 540 <link field="editor" reltype="has_a" key="id" map="" class="au"/> 541 541 <link field="creator" reltype="has_a" key="id" map="" class="au"/> 542 <link field="simple_record" reltype="might_have" key="id" map="" class="r ssr"/>542 <link field="simple_record" reltype="might_have" key="id" map="" class="rmsr"/> 543 543 <link field="metarecord" reltype="might_have" key="source" map="metarecord" class="mmrsm"/> 544 544 <link field="call_numbers" reltype="has_many" key="record" map="" class="acn"/> … … 2392 2392 </links> 2393 2393 </class> 2394 <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"> 2395 <fields oils_persist:primary="id"> 2396 <field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" /> 2397 <field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" /> 2398 <field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" /> 2399 <field reporter:label="Record ID" name="id" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="id" /> 2400 <field reporter:label="Fingerprint" name="fingerprint" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/> 2401 <field reporter:label="Overall Record Quality" name="quality" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="int"/> 2402 <field reporter:label="TCN Source" name="tcn_source" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/> 2403 <field reporter:label="TCN Value" name="tcn_value" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/> 2404 <field reporter:label="Title Proper (normalized)" name="title" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/> 2405 <field reporter:label="Author (normalized)" name="author" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/> 2406 <field reporter:label="Publisher (normalized)" name="publisher" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/> 2407 <field reporter:label="Publication Year (normalized)" name="pubdate" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="int"/> 2408 <field reporter:label="ISBN" name="isbn" oils_obj:array_position="12" oils_persist:virtual="false" reporter:datatype="text"/> 2409 <field reporter:label="ISSN" name="issn" oils_obj:array_position="13" oils_persist:virtual="false" reporter:datatype="text"/> 2410 <field reporter:label="Full Bibliographic record" name="biblio_record" oils_obj:array_position="14" oils_persist:virtual="true" reporter:datatype="link"/> 2411 </fields> 2412 <links> 2413 <link field="biblio_record" reltype="might_have" key="id" map="" class="bre"/> 2414 </links> 2415 </class> 2394 2416 <class id="rsr" controller="open-ils.reporter-store" oils_obj:fieldmapper="reporter::simple_record" oils_persist:tablename="reporter.simple_record"> 2395 2417 <fields oils_persist:primary="id"> -
branches/rel_1_2/Open-ILS/src/sql/Pg/reporter-schema.sql
r9455 r9457 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 160 CREATE VIEW reporter.super_simple_record AS SELECT * FROM reporter.materialized_simple_record; 159 161 160 162 CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ … … 165 167 166 168 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;169 INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.old_super_simple_record WHERE id = NEW.record; 168 170 END IF; 169 171 -
branches/rel_1_2/Open-ILS/src/sql/Pg/upgrade_simple_record.sql
r9454 r9457 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
