From a6c34dd06712408784cd203a71d3ff9690e13549 Mon Sep 17 00:00:00 2001 From: APTX Date: Mon, 9 Nov 2015 16:09:57 +0100 Subject: [PATCH] Filter unnecessary update notifications. Only updates that actually change a column will trigger a notfication. --- localmylist/share/schema/schema.sql | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) 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 -- 2.52.0