core (memory/sqla): fix fileUpdate
This commit is contained in:
parent
f40dbe8604
commit
4ca6c043ac
1 changed files with 7 additions and 5 deletions
|
|
@ -19,6 +19,7 @@
|
|||
import sys
|
||||
import time
|
||||
import asyncio
|
||||
import copy
|
||||
from datetime import datetime
|
||||
from asyncio.subprocess import PIPE
|
||||
from pathlib import Path
|
||||
|
|
@ -981,14 +982,15 @@ class Storage:
|
|||
)).scalar_one()
|
||||
except NoResultFound:
|
||||
raise exceptions.NotFound
|
||||
old_value = copy.deepcopy(value)
|
||||
update_cb(value)
|
||||
stmt = update(orm_col).filter_by(id=file_id)
|
||||
if not value:
|
||||
stmt = update(File).filter_by(id=file_id).values({column: value})
|
||||
if not old_value:
|
||||
# because JsonDefaultDict convert NULL to an empty dict, we have to
|
||||
# test both for empty dict and None when we have and empty dict
|
||||
stmt = stmt.where((orm_col == None) | (orm_col == value))
|
||||
# test both for empty dict and None when we have an empty dict
|
||||
stmt = stmt.where((orm_col == None) | (orm_col == old_value))
|
||||
else:
|
||||
stmt = stmt.where(orm_col == value)
|
||||
stmt = stmt.where(orm_col == old_value)
|
||||
result = await session.execute(stmt)
|
||||
await session.commit()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue