List:Commits« Previous MessageNext Message »
From:rburnett Date:December 14 2006 7:55pm
Subject:Connector/NET commit: r499 - in trunk: . TestSuite mysqlclient/core
View as plain text  
Modified:
   trunk/CHANGES
   trunk/TestSuite/StoredProcedure.cs
   trunk/mysqlclient/core/parameter_collection.cs
Log:
Bug #25013 Return Value parameter not found 

Fixed this by making sure we add the return value to the internal hashes in the event that
the direction is set on the parameter before being added to the collection.

Modified: trunk/CHANGES
===================================================================
--- trunk/CHANGES	2006-12-13 17:56:02 UTC (rev 498)
+++ trunk/CHANGES	2006-12-14 18:55:32 UTC (rev 499)
@@ -6,6 +6,12 @@
   Bug #24565 Inferring DbType fails when reusing commands and the first time the value is
nul 
   Bug #24661 mysql-connector-net-5.0.2-beta Driver.IsTooOld() Error.... 
   Bug #23905 Stored procedure usages is not thread safe 
+  Bug #25033 Exception raised/ HANG if no SELECT privileges granted for stored procedure
call 
+      [this is a correction;  a previous change log entry indicated that Connector/Net
+       no longer required select privs on mysql database.  This is not true and select
privs
+       are required. This will be fixed when the server exposes procedure parameters via
+       information schema.]
+  Bug #25013 Return Value parameter not found 
 
   Other changes
   -------------

Modified: trunk/TestSuite/StoredProcedure.cs
===================================================================
--- trunk/TestSuite/StoredProcedure.cs	2006-12-13 17:56:02 UTC (rev 498)
+++ trunk/TestSuite/StoredProcedure.cs	2006-12-14 18:55:32 UTC (rev 499)
@@ -434,7 +434,8 @@
 
 		/// <summary>
 		/// Bug #10644 Cannot call a stored function directly from Connector/Net 
-		/// </summary>
+		/// Bug #25013 Return Value parameter not found 
+        /// </summary>
 		[Test]
 		public void CallingStoredFunctionasProcedure()
 		{
@@ -442,10 +443,13 @@
 				" LANGUAGE SQL DETERMINISTIC BEGIN return valin * 2; END");
 			MySqlCommand cmd = new MySqlCommand("fnTest", conn);
 			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?valin", 22);
-			cmd.Parameters.Add("?retval", MySqlDbType.Int32);
-			cmd.Parameters[1].Direction = ParameterDirection.ReturnValue;
-			cmd.ExecuteNonQuery();
+            cmd.Parameters.Add("?valin", 22);
+            MySqlParameter retVal = cmd.CreateParameter();
+            retVal.ParameterName = "?retval";
+            retVal.MySqlDbType = MySqlDbType.Int32;
+            retVal.Direction = ParameterDirection.ReturnValue;
+            cmd.Parameters.Add(retVal);
+            cmd.ExecuteNonQuery();
 			Assert.AreEqual(44, cmd.Parameters[1].Value);
 		}
 

Modified: trunk/mysqlclient/core/parameter_collection.cs
===================================================================
--- trunk/mysqlclient/core/parameter_collection.cs	2006-12-13 17:56:02 UTC (rev 498)
+++ trunk/mysqlclient/core/parameter_collection.cs	2006-12-14 18:55:32 UTC (rev 499)
@@ -126,8 +126,10 @@
 				items[i] = value;
 				return value;
 			}
-			items.Add(value);
-			return value;
+			int index = items.Add(value);
+            hash.Add(value.ParameterName, index);
+            ciHash.Add(value.ParameterName, index);
+            return value;
 		}
 
 		/// <summary>

Thread
Connector/NET commit: r499 - in trunk: . TestSuite mysqlclient/corerburnett14 Dec