Blob Blame History Raw
diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs
--- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs.sqlite-hints	2014-02-18 15:35:23.000000000 -0500
+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs	2016-02-12 13:49:54.560806549 -0500
@@ -46,7 +46,7 @@ namespace Banshee.Collection.Database
             ReloadFragmentFormat = @"
                 FROM CoreArtists WHERE CoreArtists.ArtistID IN
                     (SELECT CoreAlbums.ArtistID FROM CoreAlbums, CoreTracks, CoreCache{0}
-                        WHERE CoreCache.ModelID = {1} AND
+                        WHERE {4}(CoreCache.ModelID = {1}) AND
                               CoreTracks.AlbumID = CoreAlbums.AlbumID AND
                               EXISTS (SELECT 1 FROM CoreArtists WHERE ArtistID = CoreAlbums.ArtistID) AND
                               CoreCache.ItemID = {2} {3})
diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs
--- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs.sqlite-hints	2014-02-18 15:40:14.000000000 -0500
+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs	2016-02-12 13:49:54.560806549 -0500
@@ -56,7 +56,7 @@ namespace Banshee.Collection.Database
             ReloadFragmentFormat = @"
                 FROM CoreAlbums WHERE CoreAlbums.AlbumID IN
                         (SELECT CoreTracks.AlbumID FROM CoreTracks, CoreCache{0}
-                            WHERE CoreCache.ModelID = {1} AND
+                            WHERE {4}(CoreCache.ModelID = {1}) AND
                                   CoreCache.ItemId = {2} {3})
                     ORDER BY CoreAlbums.TitleSortKey, CoreAlbums.ArtistNameSortKey";
         }
diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs
--- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs.sqlite-hints	2014-02-18 15:35:23.000000000 -0500
+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs	2016-02-12 13:49:54.560806549 -0500
@@ -49,7 +49,7 @@ namespace Banshee.Collection.Database
             ReloadFragmentFormat = @"
                 FROM CoreArtists WHERE CoreArtists.ArtistID IN
                     (SELECT CoreTracks.ArtistID FROM CoreTracks, CoreCache{0}
-                        WHERE CoreCache.ModelID = {1} AND
+                        WHERE {4}(CoreCache.ModelID = {1}) AND
                               CoreCache.ItemID = {2} {3})
                     ORDER BY NameSortKey";
         }
diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs
--- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs.sqlite-hints	2014-02-18 15:35:23.000000000 -0500
+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs	2016-02-12 13:54:24.530444339 -0500
@@ -57,10 +57,10 @@ namespace Banshee.Collection.Database
         }
 
         protected readonly U select_all_item;
-        private HyenaSqliteConnection connection;
+        private BansheeDbConnection connection;
 
         public DatabaseFilterListModel (string name, string label, Banshee.Sources.DatabaseSource source,
-                                        DatabaseTrackListModel trackModel, HyenaSqliteConnection connection, SqliteModelProvider<T> provider, U selectAllItem, string uuid)
+                                        DatabaseTrackListModel trackModel, BansheeDbConnection connection, SqliteModelProvider<T> provider, U selectAllItem, string uuid)
             : base (trackModel)
         {
             this.source = source;
@@ -124,7 +124,8 @@ namespace Banshee.Collection.Database
                         "{0}.{1} AND CoreTracks.TrackID = {0}.{2}",
                         FilteredModel.JoinTable, FilteredModel.JoinPrimaryKey, FilteredModel.JoinColumn)
                     : "CoreTracks.TrackID",
-                filtered ? GetFilterFragment () : ""
+                filtered ? GetFilterFragment () : "",
+                connection.LikelihoodSupport ? "UNLIKELY" : ""
             );
         }
 
diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs
--- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs.sqlite-hints	2014-02-18 15:35:23.000000000 -0500
+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs	2016-02-12 13:52:27.749466163 -0500
@@ -37,6 +37,7 @@ using Hyena.Data.Sqlite;
 using Mono.Unix;
 
 using Banshee.ServiceStack;
+using Banshee.Database;
 
 namespace Banshee.Collection.Database
 {
@@ -51,7 +52,7 @@ namespace Banshee.Collection.Database
         private string select_all_fmt;
 
         public DatabaseQueryFilterModel (Banshee.Sources.DatabaseSource source, DatabaseTrackListModel trackModel,
-            HyenaSqliteConnection connection, string select_all_fmt, string uuid, QueryField field, string filter_column)
+            BansheeDbConnection connection, string select_all_fmt, string uuid, QueryField field, string filter_column)
             : base (field.Name, field.Label, source, trackModel, connection, QueryFilterInfo<T>.CreateProvider (filter_column, field), new QueryFilterInfo<T> (), String.Format ("{0}-{1}", uuid, field.Name))
         {
             this.field = field;
@@ -59,7 +60,7 @@ namespace Banshee.Collection.Database
 
             ReloadFragmentFormat = @"
                 FROM CoreTracks, CoreCache{0}
-                    WHERE CoreCache.ModelID = {1} AND CoreCache.ItemID = {2} {3}
+                    WHERE {4}(CoreCache.ModelID = {1}) AND CoreCache.ItemID = {2} {3}
                     ORDER BY Value";
 
             QueryFields = new QueryFieldSet (query_filter_field);
diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs
--- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs.sqlite-hints	2014-02-18 15:35:23.000000000 -0500
+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs	2016-02-12 13:49:54.561806540 -0500
@@ -47,7 +47,7 @@ namespace Banshee.Collection.Database
                 FROM (SELECT MIN(CoreTracks.TrackID) AS TrackID, CoreTracks.Year FROM CoreTracks GROUP BY CoreTracks.Year) AS CoreTracks
                 WHERE CoreTracks.Year IN
                     (SELECT CoreTracks.Year FROM CoreTracks, CoreCache{0}
-                        WHERE CoreCache.ModelID = {1} AND
+                        WHERE {4}(CoreCache.ModelID = {1}) AND
                               CoreCache.ItemID = {2} {3})
                     ORDER BY Year";
         }
diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs
--- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs.sqlite-hints	2016-02-12 13:50:42.853383993 -0500
+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs	2016-02-12 13:56:29.789348335 -0500
@@ -52,6 +52,20 @@ namespace Banshee.Database
             get { return configuration; }
         }
 
+        private bool? likelihood_support = null;
+        public bool LikelihoodSupport {
+            get {
+                if (!likelihood_support.HasValue) {
+                    // emulate the SQLITE_VERSION_NUMBER macro
+                    string[] v = Query<string> ("SELECT sqlite_version ()").Split ('.');
+                    likelihood_support = (Int32.Parse (v[0]) * 1000000 +
+                                          Int32.Parse (v[1]) * 1000 +
+                                          Int32.Parse (v[2])) >= 3008001;
+                }
+                return likelihood_support.Value;
+            }
+        }
+
         public BansheeDbConnection () : this (DatabaseFile)
         {
             validate_schema = ApplicationContext.CommandLine.Contains ("validate-db-schema");