Mercurial > libervia-backend
changeset 1705:3765e10ec52f
core (sqlite storage): do explicit delete to profile linked tables for deleteProfile
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 30 Nov 2015 20:42:14 +0100 |
parents | 292f9c2712f2 |
children | aa60bd58ac23 |
files | src/memory/sqlite.py |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/memory/sqlite.py Mon Nov 30 20:40:55 2015 +0100 +++ b/src/memory/sqlite.py Mon Nov 30 20:42:14 2015 +0100 @@ -174,9 +174,16 @@ return failure def delete(txn): - del self.profiles[name] + profile_id = self.profiles.pop(name) txn.execute("PRAGMA foreign_keys = ON") txn.execute("DELETE FROM profiles WHERE name = ?", (name,)) + # FIXME: the following queries should be done by the ON DELETE CASCADE + # but it seems they are not, so we explicitly do them by security + # this need more investigation + txn.execute("DELETE FROM history WHERE profile_id = ?", (profile_id,)) + txn.execute("DELETE FROM param_ind WHERE profile_id = ?", (profile_id,)) + txn.execute("DELETE FROM private_ind WHERE profile_id = ?", (profile_id,)) + txn.execute("DELETE FROM private_ind_bin WHERE profile_id = ?", (profile_id,)) return None d = self.dbpool.runInteraction(delete)