[Slim-Checkins] r10103 - /trunk/server/Plugins/RandomPlay/Plugin.pm
dsully at svn.slimdevices.com
dsully at svn.slimdevices.com
Fri Sep 29 14:18:21 PDT 2006
Author: dsully
Date: Fri Sep 29 14:18:21 2006
New Revision: 10103
URL: http://svn.slimdevices.com?rev=10103&view=rev
Log:
Bug: N/A
Description: Optimize SQL query for case when either all or none of the genres are selected.
Modified:
trunk/server/Plugins/RandomPlay/Plugin.pm
Modified: trunk/server/Plugins/RandomPlay/Plugin.pm
URL: http://svn.slimdevices.com/trunk/server/Plugins/RandomPlay/Plugin.pm?rev=10103&r1=10102&r2=10103&view=diff
==============================================================================
--- trunk/server/Plugins/RandomPlay/Plugin.pm (original)
+++ trunk/server/Plugins/RandomPlay/Plugin.pm Fri Sep 29 14:18:21 2006
@@ -282,8 +282,12 @@
# Initialize find to only include user's selected genres. If they've deselected
# all genres, this clause will be ignored by find, so all genres will be used.
my $filteredGenres = getFilteredGenres($client);
-
- if (ref($filteredGenres) eq 'ARRAY' && scalar @$filteredGenres > 0) {
+ my $excludedGenres = getFilteredGenres($client, 1);
+
+ # Only look for genre tracks if we have some, but not all
+ # genres selected. Or no genres selected.
+ if ((scalar @$filteredGenres > 0 && scalar @$excludedGenres != 0) ||
+ scalar @$filteredGenres != 0 && scalar @$excludedGenres > 0) {
$find->{'genreTracks.genre'} = { 'in' => $filteredGenres };
}
More information about the checkins
mailing list