From 621c6b3ffa823e1ffec8275c535358ae8579b8ad Mon Sep 17 00:00:00 2001 From: Goffi Date: Fri, 26 Apr 2019 11:57:26 +0200 Subject: [PATCH] memory (sqlite): fixed fileUpdate when original value is not set (NULL) --- sat/memory/sqlite.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sat/memory/sqlite.py b/sat/memory/sqlite.py index d1345fb4..ed5b7bb1 100644 --- a/sat/memory/sqlite.py +++ b/sat/memory/sqlite.py @@ -905,11 +905,18 @@ class SqliteStorage(object): older_value_raw = cursor.fetchone()[0] except TypeError: raise exceptions.NotFound - value = json.loads(older_value_raw) + if older_value_raw is None: + value = {} + else: + value = json.loads(older_value_raw) update_cb(value) value_raw = json.dumps(value) - update_query = 'UPDATE files SET {column}=? WHERE id=? AND {column}=?'.format(column=column) - update_args = (value_raw, file_id, older_value_raw) + if older_value_raw is None: + update_query = 'UPDATE files SET {column}=? WHERE id=? AND {column} is NULL'.format(column=column) + update_args = (value_raw, file_id) + else: + update_query = 'UPDATE files SET {column}=? WHERE id=? AND {column}=?'.format(column=column) + update_args = (value_raw, file_id, older_value_raw) try: cursor.execute(update_query, update_args) except sqlite3.Error: