diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/dump.sql | 17 | ||||
-rw-r--r-- | util/updates/update_2.10.sql | 17 |
2 files changed, 32 insertions, 2 deletions
diff --git a/util/dump.sql b/util/dump.sql index 70f79b2d..2e2b6cf7 100644 --- a/util/dump.sql +++ b/util/dump.sql @@ -701,7 +701,7 @@ CREATE TRIGGER vn_relgraph_notify AFTER UPDATE ON vn FOR EACH ROW EXECUTE PROCED -- Same as above for producers, with slight differences in the steps: -- There is no 2, and -- 3 = Producer edit of which the name, language or type differs from the previous revision -CREATE OR REPLACE FUNCTION vn_relgraph_notify() RETURNS trigger AS $$ +CREATE OR REPLACE FUNCTION producer_relgraph_notify() RETURNS trigger AS $$ BEGIN -- 1. IF NEW.rgraph IS DISTINCT FROM OLD.rgraph OR NEW.latest IS DISTINCT FROM OLD.latest THEN @@ -751,6 +751,21 @@ CREATE TRIGGER insert_notify AFTER INSERT ON threads_posts FOR EACH STATEMENT EX CREATE TRIGGER insert_notify AFTER INSERT ON tags FOR EACH STATEMENT EXECUTE PROCEDURE insert_notify(); +-- call update_vncache() when a release is added, edited, hidden or unhidden +CREATE OR REPLACE FUNCTION release_vncache_update() RETURNS trigger AS $$ +BEGIN + IF OLD.latest IS DISTINCT FROM NEW.latest OR OLD.hidden IS DISTINCT FROM NEW.hidden THEN + PERFORM update_vncache(vid) FROM ( + SELECT DISTINCT vid FROM releases_vn WHERE rid = OLD.latest OR rid = NEW.latest + ) AS v(vid); + END IF; + RETURN NULL; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER release_vncache_update AFTER UPDATE ON releases FOR EACH ROW EXECUTE PROCEDURE release_vncache_update(); + + diff --git a/util/updates/update_2.10.sql b/util/updates/update_2.10.sql index c2437136..e034b6e8 100644 --- a/util/updates/update_2.10.sql +++ b/util/updates/update_2.10.sql @@ -92,7 +92,7 @@ CREATE TRIGGER vn_relgraph_notify AFTER UPDATE ON vn FOR EACH ROW EXECUTE PROCED DROP TRIGGER vn_relgraph_notify ON producers; -CREATE OR REPLACE FUNCTION vn_relgraph_notify() RETURNS trigger AS $$ +CREATE OR REPLACE FUNCTION producer_relgraph_notify() RETURNS trigger AS $$ BEGIN -- 1. IF NEW.rgraph IS DISTINCT FROM OLD.rgraph OR NEW.latest IS DISTINCT FROM OLD.latest THEN @@ -167,3 +167,18 @@ CREATE OR REPLACE FUNCTION update_vncache(integer) RETURNS void AS $$ $$ LANGUAGE sql; +-- call update_vncache() when a release is added, edited, hidden or unhidden +CREATE OR REPLACE FUNCTION release_vncache_update() RETURNS trigger AS $$ +BEGIN + IF OLD.latest IS DISTINCT FROM NEW.latest OR OLD.hidden IS DISTINCT FROM NEW.hidden THEN + PERFORM update_vncache(vid) FROM ( + SELECT DISTINCT vid FROM releases_vn WHERE rid = OLD.latest OR rid = NEW.latest + ) AS v(vid); + END IF; + RETURN NULL; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER release_vncache_update AFTER UPDATE ON releases FOR EACH ROW EXECUTE PROCEDURE release_vncache_update(); + + |