[banshee] Handle all values from a rowid database column as long (bgo#696520)



commit f847cb0c742b2d993dad71dba373bd81bb457afa
Author: Bertrand Lorentz <bertrand lorentz gmail com>
Date:   Mon May 20 12:19:43 2013 +0200

    Handle all values from a rowid database column as long (bgo#696520)
    
    Update to the latest Hyena from git master, to bring in the underlying
    fix for bgo#696520.
    
    As a consequence, all values coming from a database column defined as
    'INTEGER PRIMARY KEY' should now be stored in variables typed as 'long".
    
    This is overkill for some cases, like PrimarySourceId, and brings some
    slight increase in memory usage. But I think the benefits are worth it:
    consistency in the codebase, no Convert.ToInt32 calls here and there,
    and no strange bugs like bgo#696520.

 .../Banshee.Collection.Database/Bookmark.cs        |    2 +-
 .../DatabaseAlbumArtistInfo.cs                     |    4 +-
 .../DatabaseAlbumInfo.cs                           |   12 +++---
 .../DatabaseArtistInfo.cs                          |    4 +-
 .../DatabaseImportManager.cs                       |   12 +++---
 .../DatabaseTrackInfo.cs                           |   34 ++++++++++----------
 .../DatabaseYearInfo.cs                            |    4 +-
 .../Banshee.Collection.Database/RandomByAlbum.cs   |    2 +-
 .../Banshee.Collection.Database/RandomByArtist.cs  |    2 +-
 .../Banshee.Collection.Database/Shuffler.cs        |    8 ++--
 .../Banshee.Library/LibraryImportManager.cs        |    4 +-
 .../Banshee.Library/LibrarySource.cs               |    4 +-
 .../Banshee.MediaEngine/PlayerEngineService.cs     |    2 +-
 .../Banshee.Playlist/AbstractPlaylistSource.cs     |   10 +++---
 .../Banshee.Playlist/PlaylistFileUtil.cs           |    2 +-
 .../Banshee.Playlist/PlaylistSource.cs             |   12 +++---
 .../Banshee.SmartPlaylist/SmartPlaylistSource.cs   |    6 ++--
 .../Banshee.Sources/PrimarySource.cs               |   12 +++---
 .../Banshee.Gui.TrackEditor/TrackEditorDialog.cs   |    6 ++--
 .../Banshee.Dap.AppleDevice/AppleDeviceSource.cs   |    4 +-
 .../Banshee.Dap.MassStorage/MassStorageSource.cs   |    2 +-
 .../Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs   |    6 ++--
 src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs       |    2 +-
 .../Banshee.Audiobook/AudiobookLibrarySource.cs    |    2 +-
 .../Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs        |    4 +-
 .../Banshee.CoverArt/CoverArtJob.cs                |    6 ++--
 .../FileSystemQueueSource.cs                       |    4 +-
 .../Banshee.Fixup/Banshee.Fixup/Problem.cs         |    6 ++--
 .../Banshee.InternetArchive/Item.cs                |    2 +-
 .../Banshee.LastfmStreaming/StationSource.cs       |    6 ++--
 .../Banshee.LibraryWatcher/SourceWatcher.cs        |    4 +-
 .../Banshee.PlayQueue/PlayQueueSource.cs           |    4 +-
 .../ItunesPlayerImportSource.cs                    |    4 +-
 .../RhythmboxPlayerImportSource.cs                 |    2 +-
 .../PodcastTrackListModel.cs                       |    2 +-
 .../Banshee.Podcasting/PodcastService.cs           |    2 +-
 src/Hyena                                          |    2 +-
 37 files changed, 103 insertions(+), 103 deletions(-)
---
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/Bookmark.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/Bookmark.cs
index 4fe4a70..e0a0385 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/Bookmark.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/Bookmark.cs
@@ -55,7 +55,7 @@ namespace Banshee.Collection.Database
         public long BookmarkId { get; private set; }
 
         [DatabaseColumn]
-        protected int TrackId {
+        protected long TrackId {
             get { return Track.TrackId; }
             set {
                 Track = DatabaseTrackInfo.Provider.FetchSingle (value);
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistInfo.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistInfo.cs
index 3448cb9..8dc1e66 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistInfo.cs
@@ -51,8 +51,8 @@ namespace Banshee.Collection.Database
         }
 
         [DatabaseColumn("ArtistID", Constraints = DatabaseColumnConstraints.PrimaryKey)]
-        private int dbid;
-        public int DbId {
+        private long dbid;
+        public long DbId {
             get { return dbid; }
         }
 
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs
index b973796..a30a2f4 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumInfo.cs
@@ -60,7 +60,7 @@ namespace Banshee.Collection.Database
             (String.IsNullOrEmpty (provider.Where) ? "1=1" : provider.Where)
         ));
 
-        private static int last_artist_id;
+        private static long last_artist_id;
         private static string last_title;
         private static DatabaseAlbumInfo last_album;
 
@@ -86,7 +86,7 @@ namespace Banshee.Collection.Database
             return FindOrCreate (artist, album);
         }
 
-        private static IDataReader FindExistingArtists (int artist_id, string title)
+        private static IDataReader FindExistingArtists (long artist_id, string title)
         {
             HyenaSqliteConnection db = ServiceManager.DbConnection;
             if (title == null) {
@@ -192,14 +192,14 @@ namespace Banshee.Collection.Database
         }
 
         [DatabaseColumn("AlbumID", Constraints = DatabaseColumnConstraints.PrimaryKey)]
-        private int dbid;
-        public int DbId {
+        private long dbid;
+        public long DbId {
             get { return dbid; }
         }
 
         [DatabaseColumn("ArtistID")]
-        private int artist_id;
-        public int ArtistId {
+        private long artist_id;
+        public long ArtistId {
             get { return artist_id; }
             set { artist_id = value; }
         }
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs
index 3ebf54f..e2d7cd0 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistInfo.cs
@@ -151,8 +151,8 @@ namespace Banshee.Collection.Database
         }
 
         [DatabaseColumn("ArtistID", Constraints = DatabaseColumnConstraints.PrimaryKey)]
-        private int dbid;
-        public int DbId {
+        private long dbid;
+        public long DbId {
             get { return dbid; }
         }
 
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs
index 5500dbd..8750579 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs
@@ -78,21 +78,21 @@ namespace Banshee.Collection.Database
         public delegate PrimarySource TrackPrimarySourceChooser (DatabaseTrackInfo track);
 
         private TrackPrimarySourceChooser trackPrimarySourceChooser;
-        private Dictionary<int, int> counts;
+        private Dictionary<long, int> counts;
         private ErrorSource error_source;
-        private int [] primary_source_ids;
+        private long [] primary_source_ids;
         private string base_directory;
         private bool force_copy;
 
         public event DatabaseImportResultHandler ImportResult;
 
         public DatabaseImportManager (PrimarySource psource) :
-            this (psource.ErrorSource, delegate { return psource; }, new int [] {psource.DbId}, 
psource.BaseDirectory)
+            this (psource.ErrorSource, delegate { return psource; }, new long [] {psource.DbId}, 
psource.BaseDirectory)
         {
         }
 
         public DatabaseImportManager (ErrorSource error_source, TrackPrimarySourceChooser chooser,
-            int [] primarySourceIds, string baseDirectory) : this (chooser)
+            long [] primarySourceIds, string baseDirectory) : this (chooser)
         {
             this.error_source = error_source;
             primary_source_ids = primarySourceIds;
@@ -102,14 +102,14 @@ namespace Banshee.Collection.Database
         public DatabaseImportManager (TrackPrimarySourceChooser chooser)
         {
             trackPrimarySourceChooser = chooser;
-            counts = new Dictionary<int, int> ();
+            counts = new Dictionary<long, int> ();
         }
 
         protected virtual ErrorSource ErrorSource {
             get { return error_source; }
         }
 
-        protected virtual int [] PrimarySourceIds {
+        protected virtual long [] PrimarySourceIds {
             get { return primary_source_ids; }
             set { primary_source_ids = value; }
         }
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
index e44b5aa..20162e5 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
@@ -242,16 +242,16 @@ namespace Banshee.Collection.Database
             return Provider.Refresh (this);
         }
 
-        private int track_id;
+        private long track_id;
         [DatabaseColumn ("TrackID", Constraints = DatabaseColumnConstraints.PrimaryKey)]
-        public int TrackId {
+        public long TrackId {
             get { return track_id; }
             protected set { track_id = value; }
         }
 
-        private int primary_source_id;
+        private long primary_source_id;
         [DatabaseColumn ("PrimarySourceID")]
-        public int PrimarySourceId {
+        public long PrimarySourceId {
             get { return primary_source_id; }
             set { primary_source_id = value; }
         }
@@ -261,16 +261,16 @@ namespace Banshee.Collection.Database
             set { PrimarySourceId = value.DbId; }
         }
 
-        private int artist_id;
+        private long artist_id;
         [DatabaseColumn ("ArtistID")]
-        public int ArtistId {
+        public long ArtistId {
             get { return artist_id; }
             set { artist_id = value; }
         }
 
-        private int album_id;
+        private long album_id;
         [DatabaseColumn ("AlbumID")]
-        public int AlbumId {
+        public long AlbumId {
             get { return album_id; }
             set { album_id = value; }
         }
@@ -794,27 +794,27 @@ namespace Banshee.Collection.Database
             "SELECT COUNT('x') FROM CoreTracks WHERE PrimarySourceId IN (?) AND MetadataHash = ?"
         );
 
-        public static int GetTrackIdForUri (string uri)
+        public static long GetTrackIdForUri (string uri)
         {
             return GetTrackIdForUri (new SafeUri (uri));
         }
 
-        public static int GetTrackIdForUri (SafeUri uri, params int [] primary_sources)
+        public static long GetTrackIdForUri (SafeUri uri, params long [] primary_sources)
         {
             return GetTrackIdForUri (uri.AbsoluteUri, primary_sources);
         }
 
-        public static int GetTrackIdForUri (string absoluteUri, params int [] primary_sources)
+        public static long GetTrackIdForUri (string absoluteUri, params long [] primary_sources)
         {
             if (primary_sources == null || primary_sources.Length == 0) {
-                return ServiceManager.DbConnection.Query<int> (get_track_id_by_uri_plain, absoluteUri);
+                return ServiceManager.DbConnection.Query<long> (get_track_id_by_uri_plain, absoluteUri);
             }
-            return ServiceManager.DbConnection.Query<int> (
+            return ServiceManager.DbConnection.Query<long> (
                 get_track_id_by_uri_primarysources, primary_sources, absoluteUri
             );
         }
 
-        private static IDataReader FindTrackByMetadataHash (string metadata_hash, int [] primary_sources)
+        private static IDataReader FindTrackByMetadataHash (string metadata_hash, long [] primary_sources)
         {
             var command = new HyenaSqliteCommand (String.Format (
                 get_track_by_metadata_hash,
@@ -823,12 +823,12 @@ namespace Banshee.Collection.Database
                 primary_sources, metadata_hash);
         }
 
-        public static bool ContainsUri (SafeUri uri, int [] primary_sources)
+        public static bool ContainsUri (SafeUri uri, long [] primary_sources)
         {
             return GetTrackIdForUri (uri, primary_sources) > 0;
         }
 
-        internal static DatabaseTrackInfo GetTrackForMetadataHash (string metadata_hash, int [] 
primary_sources)
+        internal static DatabaseTrackInfo GetTrackForMetadataHash (string metadata_hash, long [] 
primary_sources)
         {
             using (IDataReader reader = FindTrackByMetadataHash (metadata_hash, primary_sources)) {
                 if (reader.Read ()) {
@@ -838,7 +838,7 @@ namespace Banshee.Collection.Database
             }
         }
 
-        internal static int MetadataHashCount (string metadata_hash, int [] primary_sources)
+        internal static int MetadataHashCount (string metadata_hash, long [] primary_sources)
         {
             return ServiceManager.DbConnection.Query<int> (get_track_count_by_metadata_hash,
                 primary_sources, metadata_hash);
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearInfo.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearInfo.cs
index 063650b..04a52ea 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearInfo.cs
@@ -50,9 +50,9 @@ namespace Banshee.Collection.Database
         {
         }
 
-        private int track_id;
+        private long track_id;
         [DatabaseColumn ("TrackID", Constraints = DatabaseColumnConstraints.PrimaryKey)]
-        public int TrackId {
+        public long TrackId {
             get { return track_id; }
             protected set { track_id = value; }
         }
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByAlbum.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByAlbum.cs
index 4d93928..d37d079 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByAlbum.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByAlbum.cs
@@ -43,7 +43,7 @@ namespace Banshee.Collection.Database
     public class RandomByAlbum : RandomBy
     {
         private HyenaSqliteCommand album_query;
-        private int? album_id;
+        private long? album_id;
 
         public RandomByAlbum () : base ("album")
         {
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByArtist.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByArtist.cs
index b621501..455d0af 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByArtist.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/RandomByArtist.cs
@@ -43,7 +43,7 @@ namespace Banshee.Collection.Database
     public class RandomByArtist : RandomBy
     {
         private HyenaSqliteCommand query;
-        private int? id;
+        private long? id;
 
         public RandomByArtist () : base ("artist")
         {
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs 
b/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs
index 296d496..0cdfb7b 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/Shuffler.cs
@@ -65,7 +65,7 @@ namespace Banshee.Collection.Database
         private TrackInfo last_track;
 
         public string Id { get; private set; }
-        public int DbId { get; private set; }
+        public long DbId { get; private set; }
 
         public Action<RandomBy> RandomModeAdded;
         public Action<RandomBy> RandomModeRemoved;
@@ -185,12 +185,12 @@ namespace Banshee.Collection.Database
             }
         }
 
-        internal void RecordShuffle (int trackId)
+        internal void RecordShuffle (long trackId)
         {
             ServiceManager.DbConnection.Execute (add_shuffle_cmd, this.DbId, DateTime.Now, trackId);
         }
 
-        public void RecordShuffleModification (int trackId, ShuffleModificationType type)
+        public void RecordShuffleModification (long trackId, ShuffleModificationType type)
         {
             ServiceManager.DbConnection.Execute (add_discard_cmd, this.DbId, DateTime.Now, (int)type, 
trackId);
         }
@@ -239,7 +239,7 @@ namespace Banshee.Collection.Database
         {
             var db = ServiceManager.DbConnection;
 
-            int res = db.Query<int> ("SELECT ShufflerID FROM CoreShufflers WHERE ID = ?", Id);
+            long res = db.Query<long> ("SELECT ShufflerID FROM CoreShufflers WHERE ID = ?", Id);
             if (res > 0) {
                 DbId = res;
             } else {
diff --git a/src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs 
b/src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs
index 25ba9c6..a05a901 100644
--- a/src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/LibraryImportManager.cs
@@ -60,10 +60,10 @@ namespace Banshee.Library
             get { return ServiceManager.SourceManager.MusicLibrary.ErrorSource; }
         }
 
-        protected override int [] PrimarySourceIds {
+        protected override long [] PrimarySourceIds {
             get {
                 if (base.PrimarySourceIds == null) {
-                    base.PrimarySourceIds = new int [] {
+                    base.PrimarySourceIds = new long [] {
                         ServiceManager.SourceManager.VideoLibrary.DbId,
                         ServiceManager.SourceManager.MusicLibrary.DbId
                     };
diff --git a/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs 
b/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
index 7a4a0fc..835f099 100644
--- a/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
+++ b/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
@@ -201,8 +201,8 @@ namespace Banshee.Library
                 SafeUri uri = new SafeUri (path);
 
                 // Make sure it's not already in the library
-                // TODO optimize - no need to recreate this int [] every time
-                if (DatabaseTrackInfo.ContainsUri (uri, new int [] {DbId})) {
+                // TODO optimize - no need to recreate this long [] every time
+                if (DatabaseTrackInfo.ContainsUri (uri, new long [] {DbId})) {
                     return;
                 }
 
diff --git a/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs 
b/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs
index 2311595..e5ef2f1 100644
--- a/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs
+++ b/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs
@@ -294,7 +294,7 @@ namespace Banshee.MediaEngine
             bool found = false;
             if (ServiceManager.DbConnection != null) {
                 // Try to find uri in the library
-                int track_id = DatabaseTrackInfo.GetTrackIdForUri (uri);
+                long track_id = DatabaseTrackInfo.GetTrackIdForUri (uri);
                 if (track_id > 0) {
                     DatabaseTrackInfo track_db = DatabaseTrackInfo.Provider.FetchSingle (track_id);
                     found = true;
diff --git a/src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs 
b/src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs
index f9659ce..d4cc668 100644
--- a/src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs
+++ b/src/Core/Banshee.Services/Banshee.Playlist/AbstractPlaylistSource.cs
@@ -50,7 +50,7 @@ namespace Banshee.Playlist
 {
     public abstract class AbstractPlaylistSource : DatabaseSource
     {
-        protected int? dbid;
+        protected long? dbid;
 
         protected abstract string SourceTable { get; }
         protected abstract string SourcePrimaryKey { get; }
@@ -77,7 +77,7 @@ namespace Banshee.Playlist
             get { return true; }
         }
 
-        public int? DbId {
+        public long? DbId {
             get { return dbid; }
             protected set {
                 if (value != null && value != dbid) {
@@ -86,8 +86,8 @@ namespace Banshee.Playlist
             }
         }
 
-        protected int primary_source_id;
-        public int PrimarySourceId {
+        protected long primary_source_id;
+        public long PrimarySourceId {
             get { return primary_source_id; }
         }
 
@@ -134,7 +134,7 @@ namespace Banshee.Playlist
             }
         }
 
-        public AbstractPlaylistSource (string generic_name, string name, int dbid, int sortColumn, int 
sortType, PrimarySource parent, bool is_temp)
+        public AbstractPlaylistSource (string generic_name, string name, long dbid, int sortColumn, int 
sortType, PrimarySource parent, bool is_temp)
             : base (generic_name, name, dbid.ToString (), 500, parent)
         {
             primary_source_id = parent.DbId;
diff --git a/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs 
b/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs
index f305494..e2df84e 100644
--- a/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs
+++ b/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs
@@ -271,7 +271,7 @@ namespace Banshee.Playlist
                 //ServiceManager.DbConnection.BeginTransaction ();
                 foreach (string uri in uris) {
                     // FIXME: Does the following call work if the source is just a PrimarySource (not 
LibrarySource)?
-                    int track_id = source.GetTrackIdForUri (uri);
+                    long track_id = source.GetTrackIdForUri (uri);
                     if (track_id > 0) {
                         ServiceManager.DbConnection.Execute (insert_command, track_id);
                     }
diff --git a/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs 
b/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
index f912964..8966aff 100644
--- a/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
+++ b/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
@@ -114,11 +114,11 @@ namespace Banshee.Playlist
             SetProperties ();
         }
 
-        protected PlaylistSource (string name, int dbid, PrimarySource parent) : this (name, dbid, -1, 0, 
parent, 0, false)
+        protected PlaylistSource (string name, long dbid, PrimarySource parent) : this (name, dbid, -1, 0, 
parent, 0, false)
         {
         }
 
-        protected PlaylistSource (string name, int dbid, int sortColumn, int sortType, PrimarySource parent, 
int count, bool is_temp)
+        protected PlaylistSource (string name, long dbid, int sortColumn, int sortType, PrimarySource 
parent, int count, bool is_temp)
             : base (generic_name, name, dbid, sortColumn, sortType, parent, is_temp)
         {
             SetProperties ();
@@ -232,7 +232,7 @@ namespace Banshee.Playlist
 
 #endregion
 
-        protected void AddTrack (int track_id)
+        protected void AddTrack (long track_id)
         {
             ServiceManager.DbConnection.Execute (add_track_command, DbId, track_id, MaxViewOrder);
             OnTracksAdded ();
@@ -350,7 +350,7 @@ namespace Banshee.Playlist
                     WHERE Special = 0 AND PrimarySourceID = ?", parent.DbId))) {
                 while (reader.Read ()) {
                     yield return new PlaylistSource (
-                        reader.Get<string> (1), reader.Get<int> (0),
+                        reader.Get<string> (1), reader.Get<long> (0),
                         reader.Get<int> (2), reader.Get<int> (3), parent,
                         reader.Get<int> (5), reader.Get<bool> (6)
                     );
@@ -380,9 +380,9 @@ namespace Banshee.Playlist
             }
         }
 
-        private static int GetPlaylistId (string name)
+        private static long GetPlaylistId (string name)
         {
-            return ServiceManager.DbConnection.Query<int> (
+            return ServiceManager.DbConnection.Query<long> (
                 "SELECT PlaylistID FROM Playlists WHERE Name = ? LIMIT 1", name
             );
         }
diff --git a/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs 
b/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
index 4200d46..878e33d 100644
--- a/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
+++ b/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
@@ -232,7 +232,7 @@ namespace Banshee.SmartPlaylist
         }
 
         // For existing smart playlists that we're loading from the database
-        protected SmartPlaylistSource (int dbid, string name, string condition_xml, string order_by, string 
limit_number, string limit_criterion, PrimarySource parent, int count, bool is_temp, bool hiddenWhenEmpty) :
+        protected SmartPlaylistSource (long dbid, string name, string condition_xml, string order_by, string 
limit_number, string limit_criterion, PrimarySource parent, int count, bool is_temp, bool hiddenWhenEmpty) :
             base (generic_name, name, dbid, -1, 0, parent, is_temp)
         {
             ConditionXml = condition_xml;
@@ -542,7 +542,7 @@ namespace Banshee.SmartPlaylist
                     SmartPlaylistSource playlist = null;
                     try {
                         playlist = new SmartPlaylistSource (
-                            reader.Get<int> (0), reader.Get<string> (1),
+                            reader.Get<long> (0), reader.Get<string> (1),
                             reader.Get<string> (2), reader.Get<string> (3),
                             reader.Get<string> (4), reader.Get<string> (5),
                             parent, reader.Get<int> (7), reader.Get<bool> (8),
@@ -644,7 +644,7 @@ namespace Banshee.SmartPlaylist
             playlists.Sort (new DependencyComparer ());
         }
 
-        public static SmartPlaylistSource GetById (int dbId)
+        public static SmartPlaylistSource GetById (long dbId)
         {
             // TODO use a dictionary
             foreach (SmartPlaylistSource sp in playlists) {
diff --git a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs 
b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
index 3653c6d..b96ccde 100644
--- a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
+++ b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
@@ -119,14 +119,14 @@ namespace Banshee.Sources
             get { return expanded_schema; }
         }
 
-        private int dbid;
-        public int DbId {
+        private long dbid;
+        public long DbId {
             get {
                 if (dbid > 0) {
                     return dbid;
                 }
 
-                dbid = ServiceManager.DbConnection.Query<int> ("SELECT PrimarySourceID FROM 
CorePrimarySources WHERE StringID = ?", UniqueId);
+                dbid = ServiceManager.DbConnection.Query<long> ("SELECT PrimarySourceID FROM 
CorePrimarySources WHERE StringID = ?", UniqueId);
                 if (dbid == 0) {
                     dbid = ServiceManager.DbConnection.Execute ("INSERT INTO CorePrimarySources (StringID, 
IsTemporary) VALUES (?, ?)", UniqueId, IsTemporary);
                 } else {
@@ -190,8 +190,8 @@ namespace Banshee.Sources
         public event TrackEventHandler TracksChanged;
         public event TrackEventHandler TracksDeleted;
 
-        private static Dictionary<int, PrimarySource> primary_sources = new Dictionary<int, PrimarySource> 
();
-        public static PrimarySource GetById (int id)
+        private static Dictionary<long, PrimarySource> primary_sources = new Dictionary<long, PrimarySource> 
();
+        public static PrimarySource GetById (long id)
         {
             return (primary_sources.ContainsKey (id)) ? primary_sources[id] : null;
         }
@@ -602,7 +602,7 @@ namespace Banshee.Sources
             return true;
         }
 
-        public int GetTrackIdForUri (string uri)
+        public long GetTrackIdForUri (string uri)
         {
             return DatabaseTrackInfo.GetTrackIdForUri (new SafeUri (uri), DbId);
         }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs 
b/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs
index 5fc5048..7dc3c38 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.TrackEditor/TrackEditorDialog.cs
@@ -599,7 +599,7 @@ namespace Banshee.Gui.TrackEditor
 
         public void Save ()
         {
-            List<int> primary_sources = new List<int> ();
+            List<long> primary_sources = new List<long> ();
 
             // TODO: wrap in db transaction
             try {
@@ -616,7 +616,7 @@ namespace Banshee.Gui.TrackEditor
 
                     if (track.SourceTrack is DatabaseTrackInfo) {
                         // If the source track is from the database, save its parent for notification later
-                        int id = (track.SourceTrack as DatabaseTrackInfo).PrimarySourceId;
+                        long id = (track.SourceTrack as DatabaseTrackInfo).PrimarySourceId;
                         if (!primary_sources.Contains (id)) {
                             primary_sources.Add (id);
                         }
@@ -624,7 +624,7 @@ namespace Banshee.Gui.TrackEditor
                 }
 
                 // Finally, notify the affected primary sources
-                foreach (int id in primary_sources) {
+                foreach (long id in primary_sources) {
                     PrimarySource psrc = PrimarySource.GetById (id);
                     if (psrc != null) {
                         psrc.NotifyTracksChanged ();
diff --git a/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceSource.cs 
b/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceSource.cs
index a16f0e9..2cbf9ac 100644
--- a/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceSource.cs
+++ b/src/Dap/Banshee.Dap.AppleDevice/Banshee.Dap.AppleDevice/AppleDeviceSource.cs
@@ -64,7 +64,7 @@ namespace Banshee.Dap.AppleDevice
             get; set;
         }
 
-        private Dictionary<int, AppleDeviceTrackInfo> tracks_map = new Dictionary<int, AppleDeviceTrackInfo> 
(); // FIXME: EPIC FAIL
+        private Dictionary<long, AppleDeviceTrackInfo> tracks_map = new Dictionary<long, 
AppleDeviceTrackInfo> (); // FIXME: EPIC FAIL
 
         public event EventHandler<ScrobblingBatchEventArgs> ReadyToScrobble;
 
@@ -699,7 +699,7 @@ namespace Banshee.Dap.AppleDevice
                 if (from != null && from.Count > 0) {
                     var playlist = new GPod.Playlist (from.Name);
                     MediaDatabase.Playlists.Add (playlist);
-                    foreach (int track_id in ServiceManager.DbConnection.QueryEnumerable<int> (String.Format 
(
+                    foreach (long track_id in ServiceManager.DbConnection.QueryEnumerable<long> 
(String.Format (
                         "SELECT CoreTracks.TrackID FROM {0} WHERE {1}",
                         from.DatabaseTrackModel.ConditionFromFragment, from.DatabaseTrackModel.Condition)))
                     {
diff --git a/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs 
b/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs
index 338275f..3c54f36 100644
--- a/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs
+++ b/src/Dap/Banshee.Dap.MassStorage/Banshee.Dap.MassStorage/MassStorageSource.cs
@@ -183,7 +183,7 @@ namespace Banshee.Dap.MassStorage
                     //Hyena.Data.Sqlite.HyenaSqliteCommand.LogAll = true;
                     foreach (PlaylistElement element in loaded_playlist.Elements) {
                         string track_path = element.Uri.LocalPath;
-                        int track_id = DatabaseTrackInfo.GetTrackIdForUri (new SafeUri (track_path), DbId);
+                        long track_id = DatabaseTrackInfo.GetTrackIdForUri (new SafeUri (track_path), DbId);
                         if (track_id == 0) {
                             Log.DebugFormat ("Failed to find track {0} in DAP library to load it into 
playlist {1}", track_path, playlist_path);
                         } else {
diff --git a/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs 
b/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs
index 766f066..e7cd000 100644
--- a/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs
+++ b/src/Dap/Banshee.Dap.Mtp/Banshee.Dap.Mtp/MtpSource.cs
@@ -53,7 +53,7 @@ namespace Banshee.Dap.Mtp
     {
                private MtpDevice mtp_device;
         //private bool supports_jpegs = false;
-        private Dictionary<int, Track> track_map;
+        private Dictionary<long, Track> track_map;
 
         private Dictionary<string, Album> album_cache = new Dictionary<string, Album> ();
 
@@ -149,7 +149,7 @@ namespace Banshee.Dap.Mtp
 
         protected override void LoadFromDevice ()
         {
-            track_map = new Dictionary<int, Track> ();
+            track_map = new Dictionary<long, Track> ();
             try {
                 List<Track> files = null;
                 lock (mtp_device) {
@@ -176,7 +176,7 @@ namespace Banshee.Dap.Mtp
                 }
 
                 foreach (Track mtp_track in files) {
-                    int track_id;
+                    long track_id;
                     if ((track_id = DatabaseTrackInfo.GetTrackIdForUri (MtpTrackInfo.GetPathFromMtpTrack 
(mtp_track), DbId )) > 0) {
                         track_map[track_id] = mtp_track;
                     } else {
diff --git a/src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs b/src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs
index 85470bf..eac1bd2 100644
--- a/src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs
+++ b/src/Dap/Banshee.Dap/Banshee.Dap/DapSource.cs
@@ -347,7 +347,7 @@ namespace Banshee.Dap
             // Ensure there's enough space
             if (BytesAvailable - Banshee.IO.File.GetSize (fromUri) >= 0) {
                 // Ensure it's not already on the device
-                if (ServiceManager.DbConnection.Query<int> (track_on_dap_query, DbId, track.MetadataHash) == 
0) {
+                if (ServiceManager.DbConnection.Query<long> (track_on_dap_query, DbId, track.MetadataHash) 
== 0) {
                     AddTrackToDevice (track, fromUri);
                 }
             }
diff --git a/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs 
b/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs
index 9335fc0..bae11ac 100644
--- a/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs
+++ b/src/Extensions/Banshee.Audiobook/Banshee.Audiobook/AudiobookLibrarySource.cs
@@ -290,7 +290,7 @@ namespace Banshee.Audiobook
             }
         }
 
-        public Bookmark GetLastPlayedBookmark (int book_id)
+        public Bookmark GetLastPlayedBookmark (long book_id)
         {
             return Bookmark.Provider.FetchFirstMatching (
                 "Type = ? AND TrackID IN (SELECT TrackID FROM CoreTracks WHERE PrimarySourceID = ? AND 
AlbumID = ?)",
diff --git a/src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs 
b/src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs
index 6cb1fbb..06f519b 100644
--- a/src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs
+++ b/src/Extensions/Banshee.Bpm/Banshee.Bpm/BpmDetectJob.cs
@@ -51,7 +51,7 @@ namespace Banshee.Bpm
 {
     public class BpmDetectJob : DbIteratorJob
     {
-        private int current_track_id;
+        private long current_track_id;
         private IBpmDetector detector;
         private PrimarySource music_library;
         private ManualResetEvent result_ready_event = new ManualResetEvent (false);
@@ -111,7 +111,7 @@ namespace Banshee.Bpm
         protected override void IterateCore (HyenaDataReader reader)
         {
             SafeUri uri = new SafeUri (reader.Get<string> (0));
-            current_track_id = reader.Get<int> (1);
+            current_track_id = reader.Get<long> (1);
 
             // Wait for the result to be ready
             result_ready_event.Reset ();
diff --git a/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs 
b/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs
index f42f1f2..a579ea6 100644
--- a/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs
+++ b/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtJob.cs
@@ -110,7 +110,7 @@ namespace Banshee.CoverArt
 
         private class CoverartTrackInfo : DatabaseTrackInfo
         {
-            public int DbId {
+            public long DbId {
                 set { TrackId = value; }
             }
         }
@@ -122,8 +122,8 @@ namespace Banshee.CoverArt
                 ArtistName = reader.Get<string> (2),
                 PrimarySource = ServiceManager.SourceManager.MusicLibrary,
                 Uri = new SafeUri (reader.Get<string> (3)),
-                DbId = reader.Get<int> (4),
-                AlbumId = reader.Get<int> (0)
+                DbId = reader.Get<long> (4),
+                AlbumId = reader.Get<long> (0)
             };
 
             Status = String.Format (Catalog.GetString ("{0} - {1}"), track.ArtistName, track.AlbumTitle);
diff --git a/src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs 
b/src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs
index 386d1b2..7346d96 100644
--- a/src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs
+++ b/src/Extensions/Banshee.FileSystemQueue/Banshee.FileSystemQueue/FileSystemQueueSource.cs
@@ -194,9 +194,9 @@ namespace Banshee.FileSystemQueue
                 return;
             }
 
-            int id = DatabaseTrackInfo.GetTrackIdForUri (uri, DbId);
+            long id = DatabaseTrackInfo.GetTrackIdForUri (uri, DbId);
             if (id >= 0) {
-                int index = (int)TrackCache.IndexOf ((long)id);
+                int index = (int)TrackCache.IndexOf (id);
                 if (index >= 0) {
                     TrackInfo track = TrackModel[index];
                     if (track != null) {
diff --git a/src/Extensions/Banshee.Fixup/Banshee.Fixup/Problem.cs 
b/src/Extensions/Banshee.Fixup/Banshee.Fixup/Problem.cs
index a0505c7..5550360 100644
--- a/src/Extensions/Banshee.Fixup/Banshee.Fixup/Problem.cs
+++ b/src/Extensions/Banshee.Fixup/Banshee.Fixup/Problem.cs
@@ -48,11 +48,11 @@ namespace Banshee.Fixup
         }
 
         [DatabaseColumn ("ProblemID", Constraints = DatabaseColumnConstraints.PrimaryKey)]
-        public int Id { get; private set; }
+        public long Id { get; private set; }
 
         public override long DbId {
             get { return Id; }
-            protected set { Id = (int)value; }
+            protected set { Id = value; }
         }
 
         [DatabaseColumn ("ProblemType")]
@@ -115,7 +115,7 @@ namespace Banshee.Fixup
 
         public override int GetHashCode ()
         {
-            return Id;
+            return ((int)Id ^ (int)(Id >> 32));
         }
 
         public override string ToString ()
diff --git a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/Item.cs 
b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/Item.cs
index e6b65c2..c8242fb 100644
--- a/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/Item.cs
+++ b/src/Extensions/Banshee.InternetArchive/Banshee.InternetArchive/Item.cs
@@ -72,7 +72,7 @@ namespace Banshee.InternetArchive
         }
 
         [DatabaseColumn("ItemId", Constraints = DatabaseColumnConstraints.PrimaryKey)]
-        private int DbId { get; set; }
+        private long DbId { get; set; }
 
         [DatabaseColumn]
         private string DetailsJson { get; set; }
diff --git a/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationSource.cs 
b/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationSource.cs
index 3d1dcf6..376c579 100644
--- a/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationSource.cs
+++ b/src/Extensions/Banshee.LastfmStreaming/Banshee.LastfmStreaming/StationSource.cs
@@ -113,10 +113,10 @@ namespace Banshee.LastfmStreaming.Radio
             set { play_count = value; }
         }
 
-        private int dbid;
+        private long dbid;
 
         // For StationSources that already exist in the db
-        protected StationSource (LastfmSource lastfm, int dbId, string name, string type, string arg, int 
playCount) : base (generic_name, name, 150, dbId.ToString ())
+        protected StationSource (LastfmSource lastfm, long dbId, string name, string type, string arg, int 
playCount) : base (generic_name, name, 150, dbId.ToString ())
         {
             this.lastfm = lastfm;
             dbid = dbId;
@@ -566,7 +566,7 @@ namespace Banshee.LastfmStreaming.Radio
                 while (reader.Read ()) {
                     try {
                         stations.Add (new StationSource (lastfm,
-                            Convert.ToInt32 (reader[0]),
+                            Convert.ToInt64 (reader[0]),
                             reader[1] as string,
                             reader[2] as string,
                             reader[3] as string,
diff --git a/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher/SourceWatcher.cs 
b/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher/SourceWatcher.cs
index 8bcba5d..a874549 100644
--- a/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher/SourceWatcher.cs
+++ b/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher/SourceWatcher.cs
@@ -298,11 +298,11 @@ namespace Banshee.LibraryWatcher
                 @"SELECT TrackID, MetadataHash FROM CoreTracks WHERE {0} = ? LIMIT 1",
                 BansheeQuery.UriField.Column
             );
-            int track_id = 0;
+            long track_id = 0;
             string hash = null;
             using (var reader = new HyenaDataReader (ServiceManager.DbConnection.Query (hash_sql, uri))) {
                 if (reader.Read ()) {
-                    track_id = reader.Get<int> (0);
+                    track_id = reader.Get<long> (0);
                     hash = reader.Get<string> (1);
                 }
             }
diff --git a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs 
b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
index a62d8ed..bc1093f 100644
--- a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
+++ b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
@@ -237,7 +237,7 @@ namespace Banshee.PlayQueue
             }
         }
 
-        private void EnqueueId (int trackId, bool prepend, bool generated)
+        private void EnqueueId (long trackId, bool prepend, bool generated)
         {
             if (trackId <= 0) {
                 return;
@@ -549,7 +549,7 @@ namespace Banshee.PlayQueue
 
         private void BindToDatabase ()
         {
-            int result = ServiceManager.DbConnection.Query<int> (
+            long result = ServiceManager.DbConnection.Query<long> (
                 "SELECT PlaylistID FROM CorePlaylists WHERE Special = 1 AND Name = ? LIMIT 1",
                 special_playlist_name
             );
diff --git a/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportSource.cs 
b/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportSource.cs
index 0034c0d..db7f2aa 100644
--- a/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportSource.cs
+++ b/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/ItunesPlayerImportSource.cs
@@ -62,7 +62,7 @@ namespace Banshee.PlayerMigration
             public string[] query_dirs;
             public bool get_ratings, get_stats, get_playlists, user_provided_prefix, empty_library;
             public int total_songs, total_processed;
-            public Dictionary<int, int> track_ids = new Dictionary<int, int> (); // key=itunes_id, 
value=banshee_id
+            public Dictionary<int, long> track_ids = new Dictionary<int, long> (); // key=itunes_id, 
value=banshee_id
         }
 
         private readonly object mutex = new object ();
@@ -574,7 +574,7 @@ namespace Banshee.PlayerMigration
                 while (xml_reader.ReadToFollowing ("integer") && !CheckForCanceled ()) {
                     xml_reader.Read ();
                     int itunes_id = Int32.Parse (xml_reader.ReadContentAsString ());
-                    int track_id;
+                    long track_id;
                     if (data.track_ids.TryGetValue (itunes_id, out track_id)) {
                         try {
                             ServiceManager.DbConnection.Execute (
diff --git a/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/RhythmboxPlayerImportSource.cs 
b/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/RhythmboxPlayerImportSource.cs
index b915f2e..060f939 100644
--- a/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/RhythmboxPlayerImportSource.cs
+++ b/src/Extensions/Banshee.PlayerMigration/Banshee.PlayerMigration/RhythmboxPlayerImportSource.cs
@@ -347,7 +347,7 @@ namespace Banshee.PlayerMigration
                             continue;
                         }
 
-                        int track_id = ServiceManager.SourceManager.MusicLibrary.GetTrackIdForUri 
(entry.InnerText);
+                        long track_id = ServiceManager.SourceManager.MusicLibrary.GetTrackIdForUri 
(entry.InnerText);
                         if (track_id > 0) {
                             ServiceManager.DbConnection.Execute (insert_command, track_id);
                         }
diff --git a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs 
b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs
index 50e0b6e..7cc2a58 100644
--- a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs
+++ b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting.Data/PodcastTrackListModel.cs
@@ -61,7 +61,7 @@ namespace Banshee.Podcasting.Gui
         {
             From = String.Format ("{0}, {1}, {2}, {3}", provider.From, Feed.Provider.TableName, 
FeedItem.Provider.TableName, FeedEnclosure.Provider.TableName);
 
-            int podcast_library_dbid = (source as PodcastSource ?? source.Parent as PodcastSource).DbId;
+            long podcast_library_dbid = (source as PodcastSource ?? source.Parent as PodcastSource).DbId;
             AddCondition (From, String.Format (
                 "CoreTracks.PrimarySourceID = {3} AND {0}.FeedID = {1}.FeedID AND CoreTracks.ExternalID = 
{1}.ItemID AND {1}.ItemID = {2}.ItemID",
                 Feed.Provider.TableName, FeedItem.Provider.TableName, FeedEnclosure.Provider.TableName, 
podcast_library_dbid
diff --git a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs 
b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs
index 5131f2b..c45a7d1 100644
--- a/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs
+++ b/src/Extensions/Banshee.Podcasting/Banshee.Podcasting/PodcastService.cs
@@ -132,7 +132,7 @@ namespace Banshee.Podcasting
                     int moved = 0;
                     foreach (FeedEnclosure enclosure in FeedEnclosure.Provider.FetchAllMatching ("LocalPath 
IS NOT NULL AND LocalPath != ''")) {
                         SafeUri uri = new SafeUri (enclosure.LocalPath);
-                        int track_id = DatabaseTrackInfo.GetTrackIdForUri (uri, 
ServiceManager.SourceManager.MusicLibrary.DbId);
+                        long track_id = DatabaseTrackInfo.GetTrackIdForUri (uri, 
ServiceManager.SourceManager.MusicLibrary.DbId);
 
                         if (track_id > 0) {
                             PodcastTrackInfo pi = new PodcastTrackInfo 
(DatabaseTrackInfo.Provider.FetchSingle (track_id));
diff --git a/src/Hyena b/src/Hyena
index fec01af..11687d9 160000
--- a/src/Hyena
+++ b/src/Hyena
@@ -1 +1 @@
-Subproject commit fec01af8d9602fd72a59219cd7a55da435c1be97
+Subproject commit 11687d9788fe585f4b3ae743d3e1b6bd86729f75



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]