| | 157 | CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.simple_record WHERE 1=0; |
| | 158 | ALTER TABLE reporter.materialized_simple_record ADD PRIMARY KEY (id); |
| | 159 | |
| | 160 | CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ |
| | 161 | BEGIN |
| | 162 | IF TG_OP IN ('UPDATE','DELETE') THEN |
| | 163 | DELETE FROM reporter.materialized_simple_record WHERE id = OLD.record; |
| | 164 | END IF; |
| | 165 | |
| | 166 | 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 | END IF; |
| | 169 | |
| | 170 | END; |
| | 171 | $$ LANGUAGE PLPGSQL; |
| | 172 | |
| | 173 | CREATE TRIGGER zzz_update_materialized_simple_record_tgr |
| | 174 | AFTER INSERT OR UPDATE OR DELETE ON metabib.full_rec |
| | 175 | FOR EACH ROW EXECUTE PROCEDURE reporter.simple_rec_sync(); |
| | 176 | |