r4233 database.php: delete container relationships when an object is deleted (#398)
authorAaron Dummer <aaron@dummer.info>
Wed, 16 Feb 2011 03:56:22 +0000 (03:56 +0000)
committerAaron Dummer <aaron@dummer.info>
Wed, 16 Feb 2011 03:56:22 +0000 (03:56 +0000)
ChangeLog
wwwroot/inc/database.php

index 0ee8a9b..d5d1d92 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
        bugfix: adding object throw "Same type, same tags" was broken since 0.19.0 (#394)
        bugfix: IPv6 functionality was not working with PHP prior to 5.2 (#396)
        bugfix: change Config.varvalue column type to accommodate contents > 255 characters (#397)
+       bugfix: delete container relationships when an object is deleted (#398)
 0.19.0 2011-02-12
        new feature: IPv6 support, except of LivePTR, NAT and SLB functionality (by Alexey Andriyanov)
        new feature: cable ID column for links (#328, by Giovani Zamboni and Jens Weibler)
index 2c3c9cb..3c0c151 100644 (file)
@@ -835,6 +835,13 @@ function commitResetObject ($object_id = 0)
        usePreparedDeleteBlade ('IPv4Allocation', array ('object_id' => $object_id));
        usePreparedDeleteBlade ('IPv6Allocation', array ('object_id' => $object_id));
        usePreparedDeleteBlade ('IPv4NAT', array ('object_id' => $object_id));
+       // Parent-child relationships
+       usePreparedExecuteBlade
+       (
+               'DELETE FROM EntityLink WHERE ' .
+               "(parent_entity_type = 'object' AND parent_entity_id = ?) OR (child_entity_type = 'object' AND child_entity_id = ?)",
+               array ($object_id, $object_id)
+       );
        // Rack space
        usePreparedExecuteBlade ('DELETE FROM Atom WHERE molecule_id IN (SELECT new_molecule_id FROM MountOperation WHERE object_id = ?)', array ($object_id));
        usePreparedExecuteBlade ('DELETE FROM Molecule WHERE id IN (SELECT new_molecule_id FROM MountOperation WHERE object_id = ?)', array ($object_id));