[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bamarok=5D_src/core-impl/collections/db/sql=3A_Fix_d?=
From:       "Peter C.Ndikuwera" <pndiku () gmail ! com>
Date:       2011-03-22 20:23:31
Message-ID: 20110322202331.A44E8A609B () git ! kde ! org
[Download RAW message or body]

Git commit 7a541b38dad5c4cf91a3e028c9d96d4681027d52 by Peter C. Ndikuwera.
Committed on 22/03/2011 at 21:21.
Pushed by pndiku into branch 'master'.

Fix deleting of redundant artist/album/etc.

SQL Standard says that "WHERE id NOT IN (NULL)" always returns NULL
meaning that these SQL statements were never running if you had an
artist name that was NULL (well, at least I do).

http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#function_in

M  +3    -3    src/core-impl/collections/db/sql/DatabaseUpdater.cpp     

http://commits.kde.org/amarok/7a541b38dad5c4cf91a3e028c9d96d4681027d52

diff --git a/src/core-impl/collections/db/sql/DatabaseUpdater.cpp \
b/src/core-impl/collections/db/sql/DatabaseUpdater.cpp index 3ede0e2..163b089 100644
--- a/src/core-impl/collections/db/sql/DatabaseUpdater.cpp
+++ b/src/core-impl/collections/db/sql/DatabaseUpdater.cpp
@@ -889,11 +889,11 @@ DatabaseUpdater::deleteAllRedundant( const QString &type )
     const QString tablename = type + 's';
     if( type == "artist" )
         storage->query( QString( "DELETE FROM artists "
-                                 "WHERE id NOT IN ( SELECT artist FROM tracks ) AND \
                "
-                                 "id NOT IN ( SELECT artist FROM albums )") );
+                                 "WHERE id NOT IN ( SELECT artist FROM tracks WHERE \
artist IS NOT NULL ) AND " +                                 "id NOT IN ( SELECT \
artist FROM albums WHERE artist IS NOT NULL )") );  else
         storage->query( QString( "DELETE FROM %1 "
-                                 "WHERE id NOT IN ( SELECT %2 FROM tracks )" ).
+                                 "WHERE id NOT IN ( SELECT %2 FROM tracks WHERE %2 \
IS NOT NULL )" ).  arg( tablename, type ) );
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic