List:Commits« Previous MessageNext Message »
From:Reggie Burnett Date:November 3 2010 9:04pm
Subject:bzr commit into connector-net-trunk branch (reggie.burnett:941) Bug#36694
View as plain text  
#At file:///C:/Users/Reggie/work/connector-net/6.3/ based on revid:reggie.burnett@stripped

  941 Reggie Burnett	2010-11-03
      - added code that will attempt to enumerate procs via mysql.proc the first time. If we get an 1142 error then we
        mark that we don't have access to that table and use IS from then on. (bug #36694)

    modified:
      CHANGES
      MySql.Data/Provider/Source/ISSchemaProvider.cs
      MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs
=== modified file 'CHANGES'
=== modified file 'CHANGES'
--- a/CHANGES	2010-10-22 19:01:14 +0000
+++ b/CHANGES	2010-11-03 21:04:38 +0000
@@ -1,6 +1,8 @@
 Version 6.3.6
 - Fixed TracingDriver so that it normalizes long queries before truncation so we don't get exceptions when quoted
   tokens land on the 300th character (bug #57641)
+- added code that will attempt to enumerate procs via mysql.proc the first time. If we get an 1142 error then we
+  mark that we don't have access to that table and use IS from then on. (bug #36694)
 
 Version 6.3.5
 - Fix installer bug related to .NET FW 4.0 (bug #56580)

=== modified file 'MySql.Data/Provider/Source/ISSchemaProvider.cs'
--- a/MySql.Data/Provider/Source/ISSchemaProvider.cs	2010-11-03 20:35:00 +0000
+++ b/MySql.Data/Provider/Source/ISSchemaProvider.cs	2010-11-03 21:04:38 +0000
@@ -188,8 +188,18 @@
         /// <returns></returns>
         public override DataTable GetProcedures(string[] restrictions)
         {
-            if (connection.Settings.UseProcedureBodies)
-                return base.GetProcedures(restrictions); 
+            try
+            {
+                if (connection.Settings.HasRootAccess)
+                    return base.GetProcedures(restrictions);
+            }
+            catch (MySqlException ex)
+            {
+                if (ex.Number == (int)MySqlErrorCode.TableAccessDenied)
+                    connection.Settings.HasRootAccess = false;
+                else
+                    throw;
+            }
             
             string[] keys = new string[4];
             keys[0] = "ROUTINE_CATALOG";

=== modified file 'MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs'
--- a/MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs	2010-08-18 19:52:04 +0000
+++ b/MySql.Data/Provider/Source/MySqlConnectionStringBuilder.cs	2010-11-03 21:04:38 +0000
@@ -41,6 +41,7 @@
             new Dictionary<string, PropertyDefaultValue>(StringComparer.OrdinalIgnoreCase);
         private Dictionary<string, object> values =
             new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
+        private bool hasRootAccess = true;
 
         static MySqlConnectionStringBuilder()
         {
@@ -744,6 +745,12 @@
 
         #endregion
 
+        internal bool HasRootAccess
+        {
+            get { return hasRootAccess; }
+            set { hasRootAccess = value; }
+        }
+
         internal Regex GetBlobAsUTF8IncludeRegex()
         {
             if (String.IsNullOrEmpty(BlobAsUTF8IncludePattern)) return null;


Attachment: [text/bzr-bundle] bzr/reggie.burnett@oracle.com-20101103210438-bsdb38ujy9l2ho1a.bundle
Thread
bzr commit into connector-net-trunk branch (reggie.burnett:941) Bug#36694Reggie Burnett3 Nov