Support cascade deletion

This commit is contained in:
WQY\qiong
2023-02-04 13:45:14 +08:00
parent 633a616d39
commit 804e1c7796
38 changed files with 1272 additions and 707 deletions

View File

@@ -1,4 +1,4 @@
from .operation import *
from .database import *
def get_quality_schema(name: str) -> dict[str, dict[str, Any]]:
@@ -30,7 +30,7 @@ class Quality(object):
return { 'type': self.type, 'node': self.node, 'quality': self.quality }
def set_quality_cache(name: str, cs: ChangeSet) -> DbChangeSet:
def set_quality_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
old = Quality(get_quality(name, cs.operations[0]['node']))
raw_new = get_quality(name, cs.operations[0]['node'])
@@ -56,7 +56,7 @@ def set_quality_cache(name: str, cs: ChangeSet) -> DbChangeSet:
def set_quality(name: str, cs: ChangeSet) -> ChangeSet:
return execute_command(name, set_quality_cache(name, cs))
return execute_command(name, set_quality_cmd(name, cs))
class InpQuality:
@@ -90,3 +90,10 @@ def inp_out_quality(name: str) -> list[str]:
quality = obj['quality']
lines.append(f'{node} {quality}')
return lines
def delete_quality_by_node(name: str, node: str) -> ChangeSet:
row = try_read(name, f"select * from quality where node = '{node}'")
if row == None:
return ChangeSet()
return ChangeSet(g_update_prefix | {'type' : 'quality', 'node': node, 'quality': None})