[Digikam-devel] [digikam] [Bug 363697] Album visible even after deletion [patch]

Richard Mortimer via KDE Bugzilla bugzilla_noreply at kde.org
Fri Jun 24 09:21:36 BST 2016


https://bugs.kde.org/show_bug.cgi?id=363697

Richard Mortimer <richm+kde at oldelvet.org.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |richm+kde at oldelvet.org.uk

--- Comment #14 from Richard Mortimer <richm+kde at oldelvet.org.uk> ---
Disabling foreign key checks is pretty much the same as not using referential
integrity. It allows the database to get into "illegal" states. It is also
highly non-portable between database engines.

I just tried a quick test with MySQL 5.5 and simulated a crash halfway through
deleting an album. That left the database with an albumRoot set to a
non-existant value in the database.

mysql> set foreign_key_checks = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> update Albums set albumRoot = 0 where id = 1;
Query OK, 1 row affected (0.19 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> set foreign_key_checks = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from Albums;
+----+-----------+--------------+------------+---------+------------+------+
| id | albumRoot | relativePath | date       | caption | collection | icon |
+----+-----------+--------------+------------+---------+------------+------+
|  1 |         0 | /            | 2015-11-25 | NULL    | NULL       | NULL |
|  2 |         1 | /Capture     | 2015-11-25 | NULL    | NULL       | NULL |
|  3 |         1 | /Test        | 2015-11-25 | NULL    | NULL       | NULL |
|  4 |         1 | /Webcam      | 2015-11-03 | NULL    | NULL       | NULL |
+----+-----------+--------------+------------+---------+------------+------+
4 rows in set (0.00 sec)

I really do think that the fake, placeholder, album route is the correct way to
go. It is similar to dropping foreign key checks but it does not leave the
database in an inconsistent state.

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Digikam-devel mailing list