From b25e943e4e4d384c9a6609ab43cd106404c64be7 Mon Sep 17 00:00:00 2001 From: spl0k Date: Sun, 29 Jul 2018 17:58:20 +0200 Subject: [PATCH] Removed bulk deletes from scanner Was causing either cache issues or constraint errors Fixes #103, #102 --- supysonic/db.py | 6 +++--- supysonic/scanner.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/supysonic/db.py b/supysonic/db.py index 179b2ff..e5e46ec 100644 --- a/supysonic/db.py +++ b/supysonic/db.py @@ -107,7 +107,7 @@ class Folder(PathMixin, db.Entity): not exists(f for f in Folder if f.parent == self) and not self.root) total = 0 while True: - count = query.delete() # Non-bulk, MariaDB<10.3.1 doesn't like it + count = query.delete() total += count if not count: return total @@ -140,7 +140,7 @@ class Artist(db.Entity): @classmethod def prune(cls): return cls.select(lambda self: not exists(a for a in Album if a.artist == self) and \ - not exists(t for t in Track if t.artist == self)).delete(bulk = True) + not exists(t for t in Track if t.artist == self)).delete() class Album(db.Entity): _table_ = 'album' @@ -180,7 +180,7 @@ class Album(db.Entity): @classmethod def prune(cls): - return cls.select(lambda self: not exists(t for t in Track if t.album == self)).delete(bulk = True) + return cls.select(lambda self: not exists(t for t in Track if t.album == self)).delete() class Track(PathMixin, db.Entity): _table_ = 'track' diff --git a/supysonic/scanner.py b/supysonic/scanner.py index 43e049e..1c2f718 100644 --- a/supysonic/scanner.py +++ b/supysonic/scanner.py @@ -87,7 +87,7 @@ class Scanner: f = folders.pop() if not f.root and not os.path.isdir(f.path): - Folder.select(lambda sub: sub.path.startswith(f.path)).delete(bulk = True) + f.delete() # Pony will cascade continue album_name = None