Changeset 9475
- Timestamp:
- 04/28/08 08:15:05 (3 months ago)
- Location:
- branches/rel_1_2/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
-
branches/rel_1_2/Open-ILS/src/sql/Pg/reporter-schema.sql
r9459 r9475 159 159 160 160 CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$ 161 DECLARE 162 r_id BIGINT; 163 new_data RECORD; 161 164 BEGIN 162 IF TG_OP IN ('UPDATE','DELETE') THEN 163 DELETE FROM reporter.materialized_simple_record WHERE id = OLD.record; 165 IF TG_OP IN ('DELETE') THEN 166 r_id := OLD.record; 167 ELSE 168 r_id := NEW.record; 164 169 END IF; 165 170 166 IF TG_OP IN ('INSERT','UPDATE') AND NOT NEW.deleted THEN 167 INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.old_super_simple_record WHERE id = NEW.record; 171 SELECT * INTO new_data FROM reporter.materialized_simple_record WHERE id = r_id FOR UPDATE; 172 DELETE FROM reporter.materialized_simple_record WHERE id = r_id; 173 174 IF TG_OP IN ('DELETE') THEN 175 RETURN OLD; 176 ELSE 177 INSERT INTO reporter.materialized_simple_record SELECT DISTINCT ON (id) * FROM reporter.old_super_simple_record WHERE id = NEW.record; 178 RETURN NEW; 168 179 END IF; 169 180 -
branches/rel_1_2/Open-ILS/src/sql/Pg/upgrade_simple_record.sql
r9459 r9475 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
