Changeset 9476
- Timestamp:
- 04/28/08 08:15:25 (3 weeks ago)
- Location:
- trunk/Open-ILS/src/sql/Pg
- Files:
-
- 2 modified
-
reporter-schema.sql (modified) (1 diff)
-
upgrade_simple_record.sql (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Open-ILS/src/sql/Pg/reporter-schema.sql
r9460 r9476 158 158 159 159 CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ 160 DECLARE 161 r_id BIGINT; 162 new_data RECORD; 160 163 BEGIN 161 IF TG_OP IN ('UPDATE','DELETE') THEN 162 DELETE FROM reporter.materialized_simple_record WHERE id = OLD.record; 164 IF TG_OP IN ('DELETE') THEN 165 r_id := OLD.record; 166 ELSE 167 r_id := NEW.record; 163 168 END IF; 164 169 165 IF TG_OP IN ('INSERT','UPDATE') AND NOT NEW.deleted THEN 166 INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.old_super_simple_record WHERE id = NEW.record; 170 SELECT * INTO new_data FROM reporter.materialized_simple_record WHERE id = r_id FOR UPDATE; 171 DELETE FROM reporter.materialized_simple_record WHERE id = r_id; 172 173 IF TG_OP IN ('DELETE') THEN 174 RETURN OLD; 175 ELSE 176 INSERT INTO reporter.materialized_simple_record SELECT DISTINCT ON (id) * FROM reporter.old_super_simple_record WHERE id = NEW.record; 177 RETURN NEW; 167 178 END IF; 168 179 -
trunk/Open-ILS/src/sql/Pg/upgrade_simple_record.sql
r9460 r9476 34 34 35 35 CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ 36 DECLARE 37 r_id BIGINT; 38 new_data RECORD; 36 39 BEGIN 37 IF TG_OP IN ('UPDATE','DELETE') THEN 38 DELETE FROM reporter.materialized_simple_record WHERE id = OLD.record; 40 IF TG_OP IN ('DELETE') THEN 41 r_id := OLD.record; 42 ELSE 43 r_id := NEW.record; 39 44 END IF; 40 45 41 IF TG_OP IN ('INSERT','UPDATE') AND NOT NEW.deleted THEN 42 INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.old_super_simple_record WHERE id = NEW.record; 46 SELECT * INTO new_data FROM reporter.materialized_simple_record WHERE id = r_id FOR UPDATE; 47 DELETE FROM reporter.materialized_simple_record WHERE id = r_id; 48 49 IF TG_OP IN ('DELETE') THEN 50 RETURN OLD; 51 ELSE 52 INSERT INTO reporter.materialized_simple_record SELECT DISTINCT ON (id) * FROM reporter.old_super_simple_record WHERE id = NEW.record; 53 RETURN NEW; 43 54 END IF; 44 55
