From: APTX Date: Mon, 9 Nov 2015 15:09:57 +0000 (+0100) Subject: Filter unnecessary update notifications. X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=a6c34dd06712408784cd203a71d3ff9690e13549;p=localmylist.git Filter unnecessary update notifications. Only updates that actually change a column will trigger a notfication. --- diff --git a/localmylist/share/schema/schema.sql b/localmylist/share/schema/schema.sql index 7778218..873c2a5 100644 --- a/localmylist/share/schema/schema.sql +++ b/localmylist/share/schema/schema.sql @@ -373,19 +373,31 @@ CREATE OR REPLACE RULE watched_directory_insert_notify_rule AS -- Update rules CREATE OR REPLACE RULE anime_update_notify_rule AS - ON UPDATE TO anime DO SELECT pg_notify('rename_data_changed', ''), + ON UPDATE TO anime + WHERE old.aid = new.aid + AND (old.* IS DISTINCT FROM new.*) + DO SELECT pg_notify('rename_data_changed', ''), pg_notify('anime_update', new.aid::text); CREATE OR REPLACE RULE episode_update_notify_rule AS - ON UPDATE TO episode DO SELECT pg_notify('rename_data_changed', ''), + ON UPDATE TO episode + WHERE old.eid = new.eid + AND (old.* IS DISTINCT FROM new.*) + DO SELECT pg_notify('rename_data_changed', ''), pg_notify('episode_update', new.eid::text || ',' || new.aid::text); CREATE OR REPLACE RULE file_update_notify_rule AS - ON UPDATE TO file DO SELECT pg_notify('rename_data_changed', ''), + ON UPDATE TO file + WHERE old.fid = new.fid + AND (old.* IS DISTINCT FROM new.*) + DO SELECT pg_notify('rename_data_changed', ''), pg_notify('file_update', new.fid::text || ',' || new.eid::text || ',' || new.aid::text); CREATE OR REPLACE RULE file_location_update_notify_rule AS - ON UPDATE TO file_location DO SELECT pg_notify('rename_data_changed', ''), + ON UPDATE TO file_location + WHERE old.location_id = new.location_id + AND (old.* IS DISTINCT FROM new.*) + DO SELECT pg_notify('rename_data_changed', ''), pg_notify('file_location_update', new.location_id::text || ',' || new.fid::text); CREATE OR REPLACE RULE watched_directory_update_notify_rule AS