]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/XXXX.schema.pre-calculate-prox-adjustment.sql
LP1272316 - Calculate proximity in the DB for speed
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.schema.pre-calculate-prox-adjustment.sql
1 BEGIN;
2
3 CREATE OR REPLACE FUNCTION action.hold_copy_calculated_proximity_update () RETURNS TRIGGER AS $f$
4 BEGIN
5     NEW.proximity := action.hold_copy_calculated_proximity(NEW.hold,NEW.target_copy);
6     RETURN NEW;
7 END;
8 $f$ LANGUAGE PLPGSQL;
9
10 CREATE TRIGGER hold_copy_proximity_update_tgr BEFORE INSERT OR UPDATE ON action.hold_copy_map FOR EACH ROW EXECUTE PROCEDURE action.hold_copy_calculated_proximity_update ();
11
12 -- Now, cause the update we need in a HOT-friendly manner (http://pgsql.tapoueh.org/site/html/misc/hot.html)
13 UPDATE action.hold_copy_map SET proximity = proximity WHERE proximity IS NULL;
14
15 COMMIT;
16