rendered paste bodydiff --git a/src/collection/sqlcollection/ScanResultProcessor.cpp b/src/collection/sqlcollection/ScanResultProcessor.cpp
index 0056c42..c36009f 100644
--- a/src/collection/sqlcollection/ScanResultProcessor.cpp
+++ b/src/collection/sqlcollection/ScanResultProcessor.cpp
@@ -389,7 +389,8 @@ ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId )
if( !m_artists.contains( trackData.value( Field::ARTIST ).toString() ) ||
!m_genre.contains( trackData.value( Field::GENRE ).toString() ) ||
!m_composer.contains( trackData.value( Field::COMPOSER ).toString() ) ||
- !m_year.contains( trackData.value( Field::YEAR ).toString() ) )
+ !m_year.contains( trackData.value( Field::YEAR ).toString() ) ||
+ !compilationId )
needToQuery = true;
if( needToQuery )
@@ -590,10 +591,17 @@ ScanResultProcessor::databaseIdFetch( const QString &artist, const QString &genr
query += QString( "SELECT id, CONCAT('ALBUMNAME_', name) AS name FROM albums_temp WHERE artist = %1 AND name = '%2' " )
.arg( QString::number( albumArtistId ), m_collection->escape( album ) );
*/
- query += QString( "SELECT id, CONCAT('ARTISTNAME_', name) AS name FROM artists_temp WHERE name = '%1' " ).arg( m_collection->escape( artist ) );
- query += QString( "UNION ALL SELECT id, CONCAT('GENRENAME_', name) AS name FROM genres_temp WHERE name = '%1' " ).arg( m_collection->escape( genre ) );
- query += QString( "UNION ALL SELECT id, CONCAT('COMPOSERNAME_', name) AS name FROM composers_temp WHERE name = '%1' " ).arg( m_collection->escape( composer ) );
- query += QString( "UNION ALL SELECT id, CONCAT('YEARSNAME_', name) AS name FROM years_temp WHERE name = '%1';" ).arg( m_collection->escape( year ) );
+ if( !m_artists.contains( artist ) )
+ query += QString( "UNION ALL SELECT id, CONCAT('ARTISTNAME_', name) AS name FROM artists_temp WHERE name = '%1' " ).arg( m_collection->escape( artist ) );
+ if( !m_genres.contains( genre ) )
+ query += QString( "UNION ALL SELECT id, CONCAT('GENRENAME_', name) AS name FROM genres_temp WHERE name = '%1' " ).arg( m_collection->escape( genre ) );
+ if( !m_composers.contains( composer ) )
+ query += QString( "UNION ALL SELECT id, CONCAT('COMPOSERNAME_', name) AS name FROM composers_temp WHERE name = '%1' " ).arg( m_collection->escape( composer ) );
+ if( !m_years.contains( year ) )
+ query += QString( "UNION ALL SELECT id, CONCAT('YEARSNAME_', name) AS name FROM years_temp WHERE name = '%1';" ).arg( m_collection->escape( year ) );
+ if( query.startsWith( "UNION ALL " ) )
+ query.remove( 0, 10 );
+
QStringList res = m_collection->query( query );
int index = 0;
QString first;