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: