List:Commits« Previous MessageNext Message »
From:rburnett Date:February 22 2008 9:52pm
Subject:Connector/NET commit: r1191 - in branches/5.1: . Driver/Source TestSuite/Source
View as plain text  
Modified:
   branches/5.1/CHANGES
   branches/5.1/Driver/Source/MySqlPromotableTransaction.cs
   branches/5.1/TestSuite/Source/Transactions.cs
Log:
 - Fixed problem where attempting to use an isolation level other than the default with
   a transaction scope would use the default instead (bug #34448)


Modified: branches/5.1/CHANGES
===================================================================
--- branches/5.1/CHANGES	2008-02-22 19:41:59 UTC (rev 1190)
+++ branches/5.1/CHANGES	2008-02-22 20:52:07 UTC (rev 1191)
@@ -3,6 +3,8 @@
    in server explorer.  (bug #34359)
  - Fixed a problem in procedure cache where it was possible to get into a race condition
    and cause a memory leak (bug #34338)
+ - Fixed problem where attempting to use an isolation level other than the default with
+   a transaction scope would use the default instead (bug #34448)
    
 Version 5.1.5 - 
   - Fixed problem with membership provider where FindUserByEmail would fail trying to add

Modified: branches/5.1/Driver/Source/MySqlPromotableTransaction.cs
===================================================================
--- branches/5.1/Driver/Source/MySqlPromotableTransaction.cs	2008-02-22 19:41:59 UTC (rev
1190)
+++ branches/5.1/Driver/Source/MySqlPromotableTransaction.cs	2008-02-22 20:52:07 UTC (rev
1191)
@@ -44,7 +44,12 @@
 
         void IPromotableSinglePhaseNotification.Initialize()
         {
-            simpleTransaction = connection.BeginTransaction();
+            string valueName = Enum.GetName(
+                typeof(System.Transactions.IsolationLevel),
baseTransaction.IsolationLevel);
+            System.Data.IsolationLevel dataLevel =
(System.Data.IsolationLevel)Enum.Parse(
+                typeof(System.Data.IsolationLevel), valueName);
+
+            simpleTransaction = connection.BeginTransaction(dataLevel);
         }
 
         void IPromotableSinglePhaseNotification.Rollback(SinglePhaseEnlistment
singlePhaseEnlistment)

Modified: branches/5.1/TestSuite/Source/Transactions.cs
===================================================================
--- branches/5.1/TestSuite/Source/Transactions.cs	2008-02-22 19:41:59 UTC (rev 1190)
+++ branches/5.1/TestSuite/Source/Transactions.cs	2008-02-22 20:52:07 UTC (rev 1191)
@@ -140,7 +140,32 @@
             TransactionScopeMultipleInternal(true);
         }
 */
+        /// <summary>
+        /// Bug #34448 Connector .Net 5.2.0 with Transactionscope doesn+        /// </summary>
+        [Test]
+        public void TransactionScopeWithIsolationLevel()
+        {
+            TransactionOptions opts = new TransactionOptions();
+            opts.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
 
+            using (TransactionScope scope = new
TransactionScope(TransactionScopeOption.Required, opts))
+            {
+                string connStr = GetConnectionString(true);
+                using (MySqlConnection myconn = new MySqlConnection(connStr))
+                {
+                    myconn.Open();
+                    MySqlCommand cmd = new MySqlCommand("SHOW VARIABLES LIKE
'tx_isolation'", myconn);
+                    using (MySqlDataReader reader = cmd.ExecuteReader())
+                    {
+                        reader.Read();
+                        string level = reader.GetString(1);
+                        Assert.AreEqual("READ-COMMITTED", level);
+                    }
+                }
+            }
+        }
+
 #endif
 
         /// <summary>

Thread
Connector/NET commit: r1191 - in branches/5.1: . Driver/Source TestSuite/Sourcerburnett22 Feb