List:Commits« Previous MessageNext Message »
From:rburnett Date:June 30 2009 9:54pm
Subject:Connector/NET commit: r1665 - in branches/5.2: . MySql.Data/Provider/Source
View as plain text  
Modified:
   branches/5.2/CHANGES
   branches/5.2/MySql.Data/Provider/Source/MySqlHelper.cs
Log:
- applied performance improvement to MySqlHelper.EscapeString (bug #45699) 


Modified: branches/5.2/CHANGES
===================================================================
--- branches/5.2/CHANGES	2009-06-30 20:24:02 UTC (rev 1664)
+++ branches/5.2/CHANGES	2009-06-30 21:54:47 UTC (rev 1665)
@@ -21,6 +21,7 @@
   the compiler in VS2005 (bug #42261)
 - fix small bug in SchemaManager that would prevent the schema from being updated if the
   autogenerateschema option was given in anything but lower case  
+- applied performance improvement to MySqlHelper.EscapeString (thanks Franco!) (bug #45699) 
   
 Version 5.2.6
 - cleaned up how stored procedure execution operated when the user does or does not have execute privs

Modified: branches/5.2/MySql.Data/Provider/Source/MySqlHelper.cs
===================================================================
--- branches/5.2/MySql.Data/Provider/Source/MySqlHelper.cs	2009-06-30 20:24:02 UTC (rev 1664)
+++ branches/5.2/MySql.Data/Provider/Source/MySqlHelper.cs	2009-06-30 21:54:47 UTC (rev 1665)
@@ -20,6 +20,7 @@
 
 using System.Data;
 using MySql.Data.MySqlClient;
+using System.Text;
 
 namespace MySql.Data.MySqlClient
 {
@@ -369,14 +370,21 @@
         /// <returns>The string with all quotes escaped.</returns>
 		public static string EscapeString(string value)
 		{
-			value = value.Replace("\\", "\\\\");
-			value = value.Replace("\'", "\\\'");
-			value = value.Replace("\"", "\\\"");
-			value = value.Replace("`", "\\`");
-			value = value.Replace("-			value = value.Replace("-			value = value.Replace("-			return value;
+            StringBuilder sb = new StringBuilder();
+            foreach (char c in value)
+            {
+                if (c == '\\' ||
+                    c == '\'' ||
+                    c == '\"' ||
+                    c == '`'  ||
+                    c == '+                    c == '+                    c == '+                    sb.Append("\\");
+                sb.Append(c);
+            }
+            return sb.ToString();
+
 		}
 
         #endregion

Thread
Connector/NET commit: r1665 - in branches/5.2: . MySql.Data/Provider/Sourcerburnett30 Jun