From: Vladislav Vaintroub Date: August 3 2010 4:04pm Subject: bzr commit into connector-net-trunk branch (vvaintroub:914) List-Archive: http://lists.mysql.com/commits/114953 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0367606130==" --===============0367606130== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///H:/connector_net/trunk/ based on revid:vvaintroub@stripped 914 Vladislav Vaintroub 2010-08-03 [merge] merge modified: CHANGES MySql.Data/Provider/Source/Types/MySqlDouble.cs MySql.Data/Tests/Source/DataTypeTests.cs === modified file 'CHANGES' --- a/CHANGES 2010-07-28 21:03:55 +0000 +++ b/CHANGES 2010-08-03 16:04:09 +0000 @@ -1,9 +1,17 @@ +- Handle cases where server returns unparsable (out-of-range) double values + (Bug#55644) - Fix DataAdapter.Update() slowdown due to many superfluous DataTable.AcceptChanges() calls (Bug #55609) - fixed visual studio plugin so that stored procedure editing works on older versions of MySQL (bug #55170) - Improve performance of write operaitons (e.g insert) if compression is enabled (Bug #48243) Version 6.3.3 (beta 2) - fix "There is already an open DataReader..." after exceptions in DataReader.Close() +- fix "There is already an open DataReader..." after exceptions in DataReader.Close() + (bug#55558) +- Improve performance of MySqlHelper.EscapeString() +- Improve performance of write operations (e.g insert) if compression is enabled + (Bug #48243) +- Improve performance of MySqlHelper.EscapeString() - Fix membership provider creation failure, when default database character set is different from latin1 (Bug #53174) - Fix "Connection must be valid and open" exception When UpdateBatchSize > 1 and MySqlDataAdapter is not using an open connection (Bug #38411) === modified file 'MySql.Data/Provider/Source/Types/MySqlDouble.cs' --- a/MySql.Data/Provider/Source/Types/MySqlDouble.cs 2010-02-26 21:18:30 +0000 +++ b/MySql.Data/Provider/Source/Types/MySqlDouble.cs 2010-08-03 15:55:53 +0000 @@ -101,8 +101,23 @@ namespace MySql.Data.Types packet.Read(b, 0, 8); return new MySqlDouble(BitConverter.ToDouble(b, 0)); } - return new MySqlDouble(Double.Parse(packet.ReadString(length), - CultureInfo.InvariantCulture)); + string s = packet.ReadString(); + double d; + try + { + d = Double.Parse(s, CultureInfo.InvariantCulture); + } + catch (OverflowException) + { + // MySQL server < 5.5 can return values not compatible with + // Double.Parse(), i.e out of range for double. + + if (s.StartsWith("-")) + d = double.MinValue; + else + d = double.MaxValue; + } + return new MySqlDouble(d); } void IMySqlValue.SkipValue(MySqlPacket packet) === modified file 'MySql.Data/Tests/Source/DataTypeTests.cs' --- a/MySql.Data/Tests/Source/DataTypeTests.cs 2010-02-12 18:58:16 +0000 +++ b/MySql.Data/Tests/Source/DataTypeTests.cs 2010-08-03 16:04:09 +0000 @@ -1058,5 +1058,33 @@ namespace MySql.Data.MySqlClient.Tests Assert.AreEqual(36, columnDefinition[SchemaTableColumn.NumericPrecision]); } } + + /// + /// Bug #55644 Value was either too large or too small for a Double + /// + [Test] + public void DoubleMinValue() + { + execSQL("DROP TABLE IF EXISTS test"); + execSQL("CREATE TABLE test(dbl double)"); + MySqlCommand cmd = new MySqlCommand("insert into test values(?param1)"); + cmd.Connection = conn; + cmd.Parameters.Add(new MySqlParameter("?param1", MySqlDbType.Double)); + cmd.Parameters["?param1"].Value = Double.MinValue; + cmd.ExecuteNonQuery(); + cmd.Parameters["?param1"].Value = Double.MaxValue; + cmd.ExecuteNonQuery(); + + cmd = new MySqlCommand("SELECT * FROM test", conn); + using (MySqlDataReader reader = cmd.ExecuteReader()) + { + reader.Read(); + double d = reader.GetDouble(0); + Assert.AreEqual(d, double.MinValue); + reader.Read(); + d = reader.GetDouble(0); + Assert.AreEqual(d, double.MaxValue); + } + } } } --===============0367606130== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/vvaintroub@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: vvaintroub@stripped # target_branch: file:///H:/connector_net/trunk/ # testament_sha1: 267259dcfd92c372bbdee99efe64eb4af2963ab5 # timestamp: 2010-08-03 18:04:10 +0200 # source_branch: file:///H:/connector_net/6.2/ # base_revision_id: vvaintroub@stripped\ # 123144e638crkdg1 # # Begin bundle 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 --===============0367606130==--