[banshee] Future-proof INSERT INTO queries (bgo#585725)
- From: Alexander Kojevnikov <alexk src gnome org>
- To: svn-commits-list gnome org
- Subject: [banshee] Future-proof INSERT INTO queries (bgo#585725)
- Date: Mon, 15 Jun 2009 18:43:53 -0400 (EDT)
commit 736194e2a0982311de2ee29ca6382e57b4c506db
Author: Alexander Kojevnikov <alexander kojevnikov com>
Date: Tue Jun 16 08:39:21 2009 +1000
Future-proof INSERT INTO queries (bgo#585725)
Replaced all queries in this form:
INSERT INTO SomeTable
SELECT foo, bar FROM OtherTable
...with this form:
INSERT INTO SomeTable
(ham, spam)
SELECT foo, bar FROM OtherTable
Also fixed errors in MigrateFromLegacyBanshee(), recently added columns broke
those INSERT INTOs.
.../DatabaseConfigurationClient.cs | 2 +-
.../Banshee.Database/BansheeDbFormatMigrator.cs | 23 +++++++++++++------
.../Banshee.Playlist/PlaylistSource.cs | 3 ++
.../Banshee.SmartPlaylist/SmartPlaylistSource.cs | 3 +-
.../Banshee.Sources/PrimarySource.cs | 4 +-
5 files changed, 24 insertions(+), 11 deletions(-)
---
diff --git a/src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs b/src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs
index 19784e3..325fbae 100644
--- a/src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs
+++ b/src/Core/Banshee.Services/Banshee.Configuration/DatabaseConfigurationClient.cs
@@ -58,7 +58,7 @@ namespace Banshee.Configuration
"SELECT EntryID FROM {0} WHERE Key=?", TableName));
insert_command = new HyenaSqliteCommand (String.Format (
- "INSERT INTO {0} VALUES (NULL, ?, ?)", TableName));
+ "INSERT INTO {0} (EntryID, Key, Value) VALUES (NULL, ?, ?)", TableName));
update_command = new HyenaSqliteCommand (String.Format (
"UPDATE {0} SET Value=? WHERE Key=?", TableName));
diff --git a/src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs b/src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs
index 47e22f8..7c3bf20 100644
--- a/src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs
+++ b/src/Core/Banshee.Services/Banshee.Database/BansheeDbFormatMigrator.cs
@@ -338,7 +338,7 @@ namespace Banshee.Database
[DatabaseVersion (6)]
private bool Migrate_6 ()
{
- Execute ("INSERT INTO CoreConfiguration VALUES (null, 'MetadataVersion', 0)");
+ Execute ("INSERT INTO CoreConfiguration (EntryID, Key, Value) VALUES (null, 'MetadataVersion', 0)");
return true;
}
@@ -803,9 +803,9 @@ namespace Banshee.Database
Value TEXT
)
");
- Execute (String.Format ("INSERT INTO CoreConfiguration VALUES (null, 'DatabaseVersion', {0})", CURRENT_VERSION));
+ Execute (String.Format ("INSERT INTO CoreConfiguration (EntryID, Key, Value) VALUES (null, 'DatabaseVersion', {0})", CURRENT_VERSION));
if (!refresh_metadata) {
- Execute (String.Format ("INSERT INTO CoreConfiguration VALUES (null, 'MetadataVersion', {0})", CURRENT_METADATA_VERSION));
+ Execute (String.Format ("INSERT INTO CoreConfiguration (EntryID, Key, Value) VALUES (null, 'MetadataVersion', {0})", CURRENT_METADATA_VERSION));
}
Execute(@"
@@ -993,26 +993,34 @@ namespace Banshee.Database
private void MigrateFromLegacyBanshee()
{
Execute(@"
- INSERT INTO CoreArtists
- SELECT DISTINCT null, 0, null, Artist, NULL, 0
+ INSERT INTO CoreArtists
+ (ArtistID, TagSetID, MusicBrainzID, Name, NameLowered, NameSort, Rating)
+ SELECT DISTINCT null, 0, null, Artist, NULL, NULL, 0
FROM Tracks
ORDER BY Artist
");
Execute(@"
INSERT INTO CoreAlbums
+ (AlbumID, ArtistID, TagSetID, MusicBrainzID, Title, TitleLowered, TitleSort, ReleaseDate,
+ Duration, Year, IsCompilation, ArtistName, ArtistNameLowered, ArtistNameSort, Rating)
SELECT DISTINCT null,
(SELECT ArtistID
FROM CoreArtists
WHERE Name = Tracks.Artist
LIMIT 1),
- 0, null, AlbumTitle, NULL, ReleaseDate, 0, 0, 0, Artist, NULL, 0
+ 0, null, AlbumTitle, NULL, NULL, ReleaseDate, 0, 0, 0, Artist, NULL, NULL, 0
FROM Tracks
ORDER BY AlbumTitle
");
Execute (String.Format (@"
INSERT INTO CoreTracks
+ (PrimarySourceID, TrackID, ArtistID, AlbumID, TagSetID, ExternalID, MusicBrainzID, Uri, MimeType,
+ FileSize, BitRate, Attributes, LastStreamError, Title, TitleLowered, TrackNumber, TrackCount,
+ Disc, DiscCount, Duration, Year, Genre, Composer, Conductor, Grouping, Copyright, LicenseUri,
+ Comment, Rating, Score, PlayCount, SkipCount, LastPlayedStamp, LastSkippedStamp, DateAddedStamp,
+ DateUpdatedStamp, MetadataHash, BPM, LastSyncedStamp, FileModifiedStamp)
SELECT
1,
TrackID,
@@ -1060,6 +1068,7 @@ namespace Banshee.Database
INSERT INTO CorePlaylists (PlaylistID, Name, SortColumn, SortType)
SELECT * FROM Playlists;
INSERT INTO CorePlaylistEntries
+ (EntryID, PlaylistID, TrackID, ViewOrder)
SELECT * FROM PlaylistEntries
");
} catch (Exception e) {
@@ -1212,7 +1221,7 @@ namespace Banshee.Database
}
if (ServiceManager.DbConnection.Query<int> ("SELECT count(*) FROM CoreConfiguration WHERE Key = 'MetadataVersion'") == 0) {
- Execute (String.Format ("INSERT INTO CoreConfiguration VALUES (null, 'MetadataVersion', {0})", CURRENT_METADATA_VERSION));
+ Execute (String.Format ("INSERT INTO CoreConfiguration (EntryID, Key, Value) VALUES (null, 'MetadataVersion', {0})", CURRENT_METADATA_VERSION));
} else {
Execute (String.Format ("UPDATE CoreConfiguration SET Value = {0} WHERE Key = 'MetadataVersion'", CURRENT_METADATA_VERSION));
}
diff --git a/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs b/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
index ca33e5a..97b3902 100644
--- a/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
+++ b/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
@@ -81,6 +81,7 @@ namespace Banshee.Playlist
{
add_track_range_command = new HyenaSqliteCommand (@"
INSERT INTO CorePlaylistEntries
+ (EntryID, PlaylistID, TrackID, ViewOrder)
SELECT null, ?, ItemID, OrderId + ?
FROM CoreCache WHERE ModelID = ?
LIMIT ?, ?"
@@ -88,11 +89,13 @@ namespace Banshee.Playlist
add_track_command = new HyenaSqliteCommand (@"
INSERT INTO CorePlaylistEntries
+ (EntryID, PlaylistID, TrackID, ViewOrder)
VALUES (null, ?, ?, ?)"
);
add_track_range_from_joined_model_sql = @"
INSERT INTO CorePlaylistEntries
+ (EntryID, PlaylistID, TrackID, ViewOrder)
SELECT null, ?, TrackID, OrderId + ?
FROM CoreCache c INNER JOIN {0} e ON c.ItemID = e.{1}
WHERE ModelID = ?
diff --git a/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs b/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
index 84b0283..9322c33 100644
--- a/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
+++ b/src/Core/Banshee.Services/Banshee.SmartPlaylist/SmartPlaylistSource.cs
@@ -360,7 +360,8 @@ namespace Banshee.SmartPlaylist
// Wipe the member list clean and repopulate it
string reload_str = String.Format (
@"DELETE FROM CoreSmartPlaylistEntries WHERE SmartPlaylistID = {0};
- INSERT INTO CoreSmartPlaylistEntries
+ INSERT INTO CoreSmartPlaylistEntries
+ (EntryID, SmartPlaylistID, TrackID)
SELECT NULL, {0} as SmartPlaylistID, TrackId FROM {1}
WHERE {2} AND CoreTracks.PrimarySourceID = {3}
{4} {5} {6}",
diff --git a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
index 9bf98d6..f19049f 100644
--- a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
+++ b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
@@ -104,11 +104,11 @@ namespace Banshee.Sources
protected bool error_source_visible = false;
protected string remove_range_sql = @"
- INSERT INTO CoreRemovedTracks SELECT ?, TrackID, Uri FROM CoreTracks WHERE TrackID IN (SELECT {0});
+ INSERT INTO CoreRemovedTracks (DateRemovedStamp, TrackID, Uri) SELECT ?, TrackID, Uri FROM CoreTracks WHERE TrackID IN (SELECT {0});
DELETE FROM CoreTracks WHERE TrackID IN (SELECT {0})";
protected HyenaSqliteCommand remove_list_command = new HyenaSqliteCommand (@"
- INSERT INTO CoreRemovedTracks SELECT ?, TrackID, Uri FROM CoreTracks WHERE TrackID IN (SELECT ItemID FROM CoreCache WHERE ModelID = ?);
+ INSERT INTO CoreRemovedTracks (DateRemovedStamp, TrackID, Uri) SELECT ?, TrackID, Uri FROM CoreTracks WHERE TrackID IN (SELECT ItemID FROM CoreCache WHERE ModelID = ?);
DELETE FROM CoreTracks WHERE TrackID IN (SELECT ItemID FROM CoreCache WHERE ModelID = ?)
");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]