Author: gburt
Date: Mon Jan 28 21:12:15 2008
New Revision: 3066
URL: http://svn.gnome.org/viewvc/banshee?rev=3066&view=rev

Log:
2008-01-28  Gabriel Burt  <[EMAIL PROTECTED]>

        * src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs: Change API.
        Used to have ctor(command, int) where int was the number of paramters.
        This was used primarily for stored, reused commands.  But, this ctor was
        ambiguous with the ctor(command, params object [] values), used to 
create
        a command and immediately apply values to it.  So, instead of passing 
the
        int, you can now just pass the command, and it will be scanned for '?'.

        * 
src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs:
        * 
src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs:
        * 
src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs:
        * src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs:
        * src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs:
        * src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs:
        * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs:
        * src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs: Use new
        HyenaSqliteCommand API.


Modified:
   trunk/banshee/ChangeLog
   
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs
   
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs
   
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs
   trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs
==============================================================================
--- 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs
     (original)
+++ 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryAlbumInfo.cs
     Mon Jan 28 21:12:15 2008
@@ -49,7 +49,7 @@
         }
 
         private static HyenaSqliteCommand select_command = new 
HyenaSqliteCommand (
-            "SELECT AlbumID, Title FROM CoreAlbums WHERE ArtistID = ? AND 
Title = ?", 2
+            "SELECT AlbumID, Title FROM CoreAlbums WHERE ArtistID = ? AND 
Title = ?"
         );
 
         private enum Column : int {

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs
==============================================================================
--- 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs
    (original)
+++ 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryArtistInfo.cs
    Mon Jan 28 21:12:15 2008
@@ -49,7 +49,7 @@
         }
 
         private static HyenaSqliteCommand select_command = new 
HyenaSqliteCommand (
-            "SELECT ArtistID, Name FROM CoreArtists WHERE Name = ?", 1
+            "SELECT ArtistID, Name FROM CoreArtists WHERE Name = ?"
         );
 
         private enum Column : int {

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs
==============================================================================
--- 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs
     (original)
+++ 
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/LibraryTrackInfo.cs
     Mon Jan 28 21:12:15 2008
@@ -234,7 +234,8 @@
         }
 
         private static HyenaSqliteCommand check_command = new 
HyenaSqliteCommand (
-            "SELECT COUNT(*) FROM CoreTracks WHERE Uri = ? OR Uri = ?", 2);
+            "SELECT COUNT(*) FROM CoreTracks WHERE Uri = ? OR Uri = ?"
+        );
         
         public static bool ContainsUri (SafeUri uri)
         {

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs    
(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Library/LibrarySource.cs    
Mon Jan 28 21:12:15 2008
@@ -56,13 +56,13 @@
                     WHERE ModelID = ? LIMIT ?, ?);
             DELETE FROM CoreSmartPlaylistEntries WHERE TrackID IN
                 (SELECT ItemID FROM CoreCache
-                    WHERE ModelID = ? LIMIT ?, ?)", 9
+                    WHERE ModelID = ? LIMIT ?, ?)"
         );
 
         private HyenaSqliteCommand remove_track_command = new 
HyenaSqliteCommand (@"
             DELETE FROM CoreTracks WHERE TrackID = ?;
             DELETE FROM CorePlaylistEntries WHERE TrackID = ?;
-            DELETE FROM CoreSmartPlaylistEntries WHERE TrackID = ?", 3
+            DELETE FROM CoreSmartPlaylistEntries WHERE TrackID = ?"
         );
     
         public LibrarySource () : base (Catalog.GetString("Library"), 
Catalog.GetString ("Library"), "Library", 1)

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs
==============================================================================
--- 
trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs    
    (original)
+++ 
trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistFileUtil.cs    
    Mon Jan 28 21:12:15 2008
@@ -176,7 +176,7 @@
 
             HyenaSqliteCommand command = new HyenaSqliteCommand (
                 @"INSERT INTO CorePlaylistEntries (PlaylistID, TrackID)
-                    VALUES (?, (SELECT TrackID FROM CoreTracks WHERE Uri = 
?))", 2
+                    VALUES (?, (SELECT TrackID FROM CoreTracks WHERE Uri = ?))"
             );
 
             foreach (string uri in uris) {

Modified: 
trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs  
(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Playlist/PlaylistSource.cs  
Mon Jan 28 21:12:15 2008
@@ -72,24 +72,24 @@
         static PlaylistSource () 
         {
             add_track_command = new HyenaSqliteCommand (
-                "INSERT INTO CorePlaylistEntries (PlaylistID, TrackID) VALUES 
(?, ?)", 2
+                "INSERT INTO CorePlaylistEntries (PlaylistID, TrackID) VALUES 
(?, ?)"
             );
 
             remove_track_command = new HyenaSqliteCommand (
-                "DELETE FROM CorePlaylistEntries WHERE PlaylistID = ? AND 
TrackID = ?", 2
+                "DELETE FROM CorePlaylistEntries WHERE PlaylistID = ? AND 
TrackID = ?"
             );
 
             add_track_range_command = new HyenaSqliteCommand (@"
                 INSERT INTO CorePlaylistEntries
                     SELECT null, ?, ItemID, 0
                         FROM CoreCache WHERE ModelID = ?
-                        LIMIT ?, ?", 4
+                        LIMIT ?, ?"
             );
 
             remove_track_range_command = new HyenaSqliteCommand (@"
                 DELETE FROM CorePlaylistEntries WHERE PlaylistID = ? AND
                     TrackID IN (SELECT ItemID FROM CoreCache
-                        WHERE ModelID = ? LIMIT ?, ?)", 4
+                        WHERE ModelID = ? LIMIT ?, ?)"
             );
         }
 

Modified: trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs
==============================================================================
--- trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs        
(original)
+++ trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/HyenaSqliteCommand.cs        
Mon Jan 28 21:12:15 2008
@@ -57,20 +57,31 @@
         public HyenaSqliteCommand (string command)
         {
             this.command = new SqliteCommand (command);
-        }
 
-        public HyenaSqliteCommand (string command, int num_params) : this 
(command)
-        {
-            for (int i = 0; i < num_params; i++) {
-                Parameters.Add (new SqliteParameter ());
+            int num_params = 0;
+            foreach (char c in command) {
+                if (c == '?') {
+                    num_params++;
+                }
             }
+
+            CreateParameters (num_params);
         }
 
-        public HyenaSqliteCommand (string command, params object [] 
param_values) : this (command, param_values.Length)
+        public HyenaSqliteCommand (string command, params object [] 
param_values)
         {
+            this.command = new SqliteCommand (command);
+            CreateParameters (param_values.Length);
             ApplyValues (param_values);
         }
 
+        protected void CreateParameters (int num_params)
+        {
+            for (int i = 0; i < num_params; i++) {
+                Parameters.Add (new SqliteParameter ());
+            }
+        }
+
         public HyenaSqliteCommand ApplyValues (params object [] param_values)
         {
             if (param_values.Length != Parameters.Count) {

Modified: trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs
==============================================================================
--- trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs  
(original)
+++ trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelCache.cs  Mon Jan 
28 21:12:15 2008
@@ -63,7 +63,7 @@
             count_command = new HyenaSqliteCommand (
                 String.Format (
                     "SELECT COUNT(*) FROM {0} WHERE ModelID = ?", 
CacheTableName
-                ), 1
+                )
             );
 
             FindOrCreateCacheModelId (String.Format ("{0}-{1}", uuid, 
typeof(T).Name));
@@ -81,7 +81,7 @@
                     provider.PrimaryKey, uid,
                     String.IsNullOrEmpty (provider.Where) ? String.Empty : 
"AND",
                     provider.Where
-                ), 2
+                )
             );
             
             select_single_command = new HyenaSqliteCommand (
@@ -91,7 +91,7 @@
                             ModelID = {1} AND
                             ItemID = ?",
                     CacheTableName, uid
-                ), 1
+                )
             );
             
             select_first_command = new HyenaSqliteCommand (

Modified: trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs
==============================================================================
--- trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs       
(original)
+++ trunk/banshee/src/Core/Hyena/Hyena.Data.Sqlite/SqliteModelProvider.cs       
Mon Jan 28 21:12:15 2008
@@ -371,7 +371,6 @@
                 if (insert_command == null) {
                     StringBuilder cols = new StringBuilder ();
                     StringBuilder vals = new StringBuilder ();
-                    int count = 0;
                     bool first = true;
                     foreach (DatabaseColumn column in columns) {
                         if (first) {
@@ -382,12 +381,11 @@
                         }
                         cols.Append (column.Name);
                         vals.Append ('?');
-                        count++;
                     }
 
                     insert_command = new HyenaSqliteCommand (String.Format (
                         "INSERT INTO {0} ({1}) VALUES ({2})",
-                        TableName, cols.ToString (), vals.ToString ()), count
+                        TableName, cols.ToString (), vals.ToString ())
                     );
                 }
                 return insert_command;
@@ -401,7 +399,6 @@
                     builder.Append ("UPDATE ");
                     builder.Append (TableName);
                     builder.Append (" SET ");
-                    int count = 0;
                     bool first = true;
                     foreach (DatabaseColumn column in columns) {
                         if (first) {
@@ -411,13 +408,11 @@
                         }
                         builder.Append (column.Name);
                         builder.Append (" = ?");
-                        count++;
                     }
                     builder.Append (" WHERE ");
                     builder.Append (key.Name);
                     builder.Append (" = ?");
-                    count++;
-                    update_command = new HyenaSqliteCommand (builder.ToString 
(), count);
+                    update_command = new HyenaSqliteCommand (builder.ToString 
());
                 }
                 return update_command;
             }
@@ -448,7 +443,7 @@
                             Select, From,
                             (String.IsNullOrEmpty (Where) ? String.Empty : " 
WHERE "),
                             Where
-                        ), 2
+                        )
                     );
                 }
                 return select_range_command;
@@ -464,7 +459,7 @@
                             Select, From, Where,
                             (String.IsNullOrEmpty (Where) ? String.Empty : " 
AND "),
                             PrimaryKey
-                        ), 1
+                        )
                     );
                 }
                 return select_single_command;
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to