From b5e409f7da8a3bc34f20814eb031c7712e52ac12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20M=C3=A1t=C3=A9?= Date: Fri, 20 Sep 2013 23:06:25 +1200 Subject: [PATCH] fix to rename/delete the collection properties during the collection renaming/deleting --- dba/caldav_functions.sql | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dba/caldav_functions.sql b/dba/caldav_functions.sql index 0d361d9c..5be1fc1e 100644 --- a/dba/caldav_functions.sql +++ b/dba/caldav_functions.sql @@ -423,12 +423,19 @@ BEGIN SET dav_name = replace( dav_name, OLD.dav_name, NEW.dav_name), user_no = NEW.user_no WHERE substring(dav_name from 1 for char_length(OLD.dav_name)) = OLD.dav_name; + + -- On rename we also need to rename all properties + UPDATE property SET dav_name=NEW.dav_name WHERE dav_name=OLD.dav_name; END IF; + RETURN NEW; + ELSIF TG_OP = 'DELETE' THEN + -- On delete we remove all properties for the collection + DELETE FROM property WHERE dav_name=OLD.dav_name; + RETURN OLD; END IF; - RETURN NEW; END; $$ LANGUAGE plpgsql; -CREATE TRIGGER collection_modified AFTER UPDATE ON collection +CREATE TRIGGER collection_modified AFTER UPDATE OR DELETE ON collection FOR EACH ROW EXECUTE PROCEDURE collection_modified();