Modified:
branches/5.0/CHANGES
branches/5.0/Driver/Source/MySqlConnectionStringBuilder.cs
branches/5.0/TestSuite/Source/ConnectionStringBuilder.cs
Log:
- Fixed MySqlConnectionStringBuilder to first remove old keyword settings when setting
a value that was previously set (bug #37955)
Modified: branches/5.0/CHANGES
===================================================================
--- branches/5.0/CHANGES 2008-07-08 16:37:50 UTC (rev 1328)
+++ branches/5.0/CHANGES 2008-07-08 18:06:02 UTC (rev 1329)
@@ -5,6 +5,8 @@
a non-existant pool. (bug #36432)
- Fixed problem where supplying the connection reset config option can cause login to
fail
when there is room to make a new connection and the pool has no idle connections.
+ - Fixed MySqlConnectionStringBuilder to first remove old keyword settings when setting
+ a value that was previously set (bug #37955)
Version 5.0.9 - 4/14/08
Modified: branches/5.0/Driver/Source/MySqlConnectionStringBuilder.cs
===================================================================
--- branches/5.0/Driver/Source/MySqlConnectionStringBuilder.cs 2008-07-08 16:37:50 UTC
(rev 1328)
+++ branches/5.0/Driver/Source/MySqlConnectionStringBuilder.cs 2008-07-08 18:06:02 UTC
(rev 1329)
@@ -944,11 +944,18 @@
{
if (value == null)
throw new ArgumentException(Resources.KeywordNoNull, keyword);
+ object out_obj;
+ TryGetValue(keyword, out out_obj);
+
Keyword kw = GetKey(keyword);
SetValue(kw, value);
base[keyword] = value;
if (kw != Keyword.Password)
+ {
+ /* Nothing bad happens if the substring is not found */
+ persistConnString.Replace(keyword + "=" + out_obj + ";", "");
persistConnString.AppendFormat("{0}={1};", keyword, value);
+ }
}
private void SetValue(Keyword kw, object value)
Modified: branches/5.0/TestSuite/Source/ConnectionStringBuilder.cs
===================================================================
--- branches/5.0/TestSuite/Source/ConnectionStringBuilder.cs 2008-07-08 16:37:50 UTC (rev
1328)
+++ branches/5.0/TestSuite/Source/ConnectionStringBuilder.cs 2008-07-08 18:06:02 UTC (rev
1329)
@@ -94,5 +94,17 @@
Assert.IsFalse(sb.UsePerformanceMonitor);
Assert.AreEqual(25, sb.ProcedureCacheSize);
}
+
+ /// <summary>
+ /// Bug #37955 Connector/NET keeps adding the same option to the connection
string
+ /// </summary>
+ [Test]
+ public void SettingValueMultipeTimes()
+ {
+ MySqlConnectionStringBuilder s = new MySqlConnectionStringBuilder();
+ s["database"] = "test";
+ s["database"] = "test2";
+ Assert.AreEqual("database=test2", s.GetConnectionString(false));
+ }
}
}
| Thread |
|---|
| • Connector/NET commit: r1329 - in branches/5.0: . Driver/Source TestSuite/Source | rburnett | 8 Jul |