Liron Aravot has uploaded a new change for review.

Change subject: core: deleted trigger on db upgrade
......................................................................

core: deleted trigger on db upgrade

The upgrade script 03_05_0730_drop_disk_image_dynamic_fk.sql replaces
the use of a cascade delete of a foregin key with a trigger.
When performing a further update to the db, the functions are being
deleted with CASCADE, which will cause the trigger to be deleted and
never be added again.

The quick solution is to move the trigger/function creation to
disk_image_dynamic_sp as we currently don't have any trigger creation
infrastructure after update is performed.

Upgrade script is provided as well to perform cleanup of orphand records
that might have been left in disk_image_dynamic.

Change-Id: I594cddb968795a5a6a0d04e2c6bed9002c025ef9
Signed-off-by: Liron Aravot <lara...@redhat.com>
---
M packaging/dbscripts/disk_image_dynamic_sp.sql
A 
packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql
2 files changed, 16 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/47/29547/1

diff --git a/packaging/dbscripts/disk_image_dynamic_sp.sql 
b/packaging/dbscripts/disk_image_dynamic_sp.sql
index 817e9b1..17673e2 100644
--- a/packaging/dbscripts/disk_image_dynamic_sp.sql
+++ b/packaging/dbscripts/disk_image_dynamic_sp.sql
@@ -110,3 +110,17 @@
 LANGUAGE plpgsql;
 
 
+
+
+
+CREATE OR REPLACE FUNCTION fn_image_deleted() RETURNS TRIGGER AS $$
+BEGIN
+    DELETE FROM disk_image_dynamic dim WHERE DIM.image_id = OLD.image_guid;
+    RETURN OLD;
+END;
+$$ LANGUAGE plpgsql;
+
+DROP TRIGGER IF EXISTS delete_disk_image_dynamic_for_image ON 
disk_image_dynamic;
+
+CREATE TRIGGER delete_disk_image_dynamic_for_image BEFORE DELETE ON IMAGES FOR 
EACH ROW
+EXECUTE PROCEDURE fn_image_deleted();
\ No newline at end of file
diff --git 
a/packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql
 
b/packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql
new file mode 100644
index 0000000..5ddad16
--- /dev/null
+++ 
b/packaging/dbscripts/upgrade/03_05_0750_delete_orphand_disk_image_dynamic_records.sql
@@ -0,0 +1,2 @@
+DELETE FROM disk_image_dynamic
+WHERE image_id NOT IN (SELECT image_guid FROM images);


-- 
To view, visit http://gerrit.ovirt.org/29547
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I594cddb968795a5a6a0d04e2c6bed9002c025ef9
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liron Aravot <lara...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to