From: Date: November 5 2007 8:44pm Subject: Connector/NET commit: r1068 - in branches/5.1: . Driver/Source TestSuite/Source List-Archive: http://lists.mysql.com/commits/37129 X-Bug: 31930 Message-Id: <200711051944.lA5JiKHl002596@bk-internal.mysql.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modified: branches/5.1/CHANGES branches/5.1/Driver/Source/datareader.cs branches/5.1/TestSuite/Source/StoredProcedure.cs Log: fixed problem where a syntax error in a set of batch statements could leave the data adapter in a state that appears hung (bug #31930) Modified: branches/5.1/CHANGES =================================================================== --- branches/5.1/CHANGES 2007-11-05 19:17:13 UTC (rev 1067) +++ branches/5.1/CHANGES 2007-11-05 19:44:20 UTC (rev 1068) @@ -100,6 +100,8 @@ (Bug #32094) - fixed problem where old code was preventing creating parameter objects with non-input direction using just a constructor (Bug #32093) + - fixed problem where a syntax error in a set of batch statements could leave the data adapter in a state + that appears hung (bug #31930) Version 5.0.8 8/16/2007 Bug #28706 Log messages are truncated Modified: branches/5.1/Driver/Source/datareader.cs =================================================================== --- branches/5.1/Driver/Source/datareader.cs 2007-11-05 19:17:13 UTC (rev 1067) +++ branches/5.1/Driver/Source/datareader.cs 2007-11-05 19:44:20 UTC (rev 1068) @@ -857,7 +857,9 @@ { if (ex.IsFatal) connection.Abort(); - throw; + nextResultDone = true; + hasRows = canRead = false; + throw; } } Modified: branches/5.1/TestSuite/Source/StoredProcedure.cs =================================================================== --- branches/5.1/TestSuite/Source/StoredProcedure.cs 2007-11-05 19:17:13 UTC (rev 1067) +++ branches/5.1/TestSuite/Source/StoredProcedure.cs 2007-11-05 19:44:20 UTC (rev 1068) @@ -1366,15 +1366,18 @@ { execSQL("CREATE TABLE t1 (id INT)"); execSQL("CREATE TABLE t2 (id1 INT, id INT)"); - execSQL("CREATE PROCEDURE spTest() BEGIN SELECT id FROM t1 JOIN t2 on t1.id=t2.id; END"); + execSQL(@"CREATE PROCEDURE spTest() BEGIN SELECT * FROM t1; + SELECT id FROM t1 JOIN t2 on t1.id=t2.id; + SELECT * FROM t2; END"); MySqlCommand cmd = new MySqlCommand("spTest", conn); cmd.CommandType = CommandType.StoredProcedure; + cmd.CommandTimeout = 0; MySqlDataAdapter da = new MySqlDataAdapter(cmd); - DataTable dt = new DataTable(); + DataSet ds = new DataSet(); try { - da.Fill(dt); + da.Fill(ds); Assert.Fail("The above should have thrown an exception"); } catch (Exception ex)