diff options
author | Jonathan Marshall <jmarshall@xbmc.org> | 2013-12-29 10:15:08 +1300 |
---|---|---|
committer | Jonathan Marshall <jmarshall@xbmc.org> | 2013-12-29 10:15:08 +1300 |
commit | a1f845c2f07504fb0fe2c04cef5597d0da6f7da0 (patch) | |
tree | d286da0e8f312b6cfc1df74fb1da32c0cc898c24 | |
parent | 30c9e1b15e5850648dfc647ed3a4140c84ba06c5 (diff) |
[musicdb] use a temporary table for the updating of strJoinPhrase in song_artist and album_artist, as mysql can't handle (potentially) circular updates
-rw-r--r-- | xbmc/music/MusicDatabase.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/xbmc/music/MusicDatabase.cpp b/xbmc/music/MusicDatabase.cpp index 3dbb28e49c..f53e1dd3ce 100644 --- a/xbmc/music/MusicDatabase.cpp +++ b/xbmc/music/MusicDatabase.cpp @@ -4098,8 +4098,8 @@ bool CMusicDatabase::UpdateOldVersion(int version) m_pDS->next(); } // drop the last separator if more than one - m_pDS->exec("UPDATE song_artist SET strJoinPhrase = '' WHERE 100*idSong+iOrder IN (select 100*idSong+max(iOrder) FROM song_artist GROUP BY idSong)"); - m_pDS->exec("UPDATE album_artist SET strJoinPhrase = '' WHERE 100*idAlbum+iOrder IN (select 100*idAlbum+max(iOrder) FROM album_artist GROUP BY idAlbum)"); + m_pDS->exec("UPDATE song_artist SET strJoinPhrase = '' WHERE 100*idSong+iOrder IN (SELECT id FROM (SELECT 100*idSong+max(iOrder) AS id FROM song_artist GROUP BY idSong) AS sub)"); + m_pDS->exec("UPDATE album_artist SET strJoinPhrase = '' WHERE 100*idAlbum+iOrder IN (SELECT id FROM (SELECT 100*idAlbum+max(iOrder) AS id FROM album_artist GROUP BY idAlbum) AS sub)"); } if (version < 43) { // (re)create triggers |