From 5d7fdc7a824054375bfd693a3d394d57000289fa Mon Sep 17 00:00:00 2001 From: Ade Date: Tue, 6 Mar 2018 16:47:47 +1300 Subject: [PATCH] Speed up Choose Alternate Release Possible fix for #3078 --- headphones/__init__.py | 2 ++ headphones/albumswitcher.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/headphones/__init__.py b/headphones/__init__.py index c6acc763..2d622766 100644 --- a/headphones/__init__.py +++ b/headphones/__init__.py @@ -417,6 +417,8 @@ def dbcheck(): 'CREATE INDEX IF NOT EXISTS tracks_Location ON tracks(Location ASC)') c.execute( 'CREATE INDEX IF NOT EXISTS alltracks_Location ON alltracks(Location ASC)') + c.execute( + 'CREATE INDEX IF NOT EXISTS tracks_artistid ON tracks(ArtistID ASC)') try: c.execute('SELECT IncludeExtras from artists') diff --git a/headphones/albumswitcher.py b/headphones/albumswitcher.py index 74f1077f..89325ed7 100644 --- a/headphones/albumswitcher.py +++ b/headphones/albumswitcher.py @@ -85,8 +85,8 @@ def switch(AlbumID, ReleaseID): # Update have track counts on index totaltracks = len(myDB.select( - 'SELECT TrackTitle from tracks WHERE ArtistID=? AND AlbumID IN (SELECT AlbumID FROM albums WHERE Status != "Ignored")', - [newalbumdata['ArtistID']])) + 'SELECT TrackTitle from tracks AS tr INNER JOIN albums AS al ON al.AlbumID = tr.AlbumID WHERE al.ArtistID=? ' + 'AND al.Status != "Ignored"', [newalbumdata['ArtistID']])) havetracks = len(myDB.select( 'SELECT TrackTitle from tracks WHERE ArtistID=? AND Location IS NOT NULL', [newalbumdata['ArtistID']]))