From: Date: December 14 2006 7:59pm
Subject: Connector/NET commit: r500 - in branches/1.0: . TestSuite mysqlclient
List-Archive: http://lists.mysql.com/commits/16979
X-Bug: 25013
Message-Id: <200612141859.kBEIxCgH019096@bk-internal.mysql.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Modified:
branches/1.0/CHANGES
branches/1.0/TestSuite/StoredProcedure.cs
branches/1.0/mysqlclient/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: branches/1.0/CHANGES
===================================================================
--- branches/1.0/CHANGES 2006-12-14 18:55:32 UTC (rev 499)
+++ branches/1.0/CHANGES 2006-12-14 18:59:11 UTC (rev 500)
@@ -10,6 +10,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 #23862 Problem with CommandBuilder 'GetInsertCommand' method
+ 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: branches/1.0/TestSuite/StoredProcedure.cs
===================================================================
--- branches/1.0/TestSuite/StoredProcedure.cs 2006-12-14 18:55:32 UTC (rev 499)
+++ branches/1.0/TestSuite/StoredProcedure.cs 2006-12-14 18:59:11 UTC (rev 500)
@@ -431,22 +431,26 @@
}
- ///
- /// Bug #10644 Cannot call a stored function directly from Connector/Net
- ///
- [Test]
- public void CallingStoredFunctionasProcedure()
- {
- execSQL("CREATE FUNCTION fnTest(valin int) RETURNS INT 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();
- Assert.AreEqual(44, cmd.Parameters[1].Value);
- }
+ ///
+ /// Bug #10644 Cannot call a stored function directly from Connector/Net
+ /// Bug #25013 Return Value parameter not found
+ ///
+ [Test]
+ public void CallingStoredFunctionasProcedure()
+ {
+ execSQL("CREATE FUNCTION fnTest(valin int) RETURNS INT " +
+ " LANGUAGE SQL DETERMINISTIC BEGIN return valin * 2; END");
+ MySqlCommand cmd = new MySqlCommand("fnTest", conn);
+ cmd.CommandType = CommandType.StoredProcedure;
+ 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);
+ }
///
/// Bug #11450 Connector/Net, current database and stored procedures
Modified: branches/1.0/mysqlclient/parameter_collection.cs
===================================================================
--- branches/1.0/mysqlclient/parameter_collection.cs 2006-12-14 18:55:32 UTC (rev 499)
+++ branches/1.0/mysqlclient/parameter_collection.cs 2006-12-14 18:59:11 UTC (rev 500)
@@ -338,8 +338,10 @@
_parms[i] = value;
return value;
}
- _parms.Add(value);
- return value;
+ int index = _parms.Add(value);
+ hash.Add(value.ParameterName, index);
+ ciHash.Add(value.ParameterName, index);
+ return value;
}
///