List:Commits« Previous MessageNext Message »
From:Reggie Burnett Date:July 29 2009 10:16pm
Subject:bzr push into connector-net-trunk branch (reggie.burnett:713 to 714)
View as plain text  
  714 Reggie Burnett	2009-07-29 [merge]
      merged

    modified:
      CHANGES
      MySql.Data/Provider/Source/SchemaProvider.cs
      MySql.Data/Tests/Source/GetSchemaTests.cs
  713 Reggie Burnett	2009-07-29 [merge]
      merged

    modified:
      CHANGES
      MySql.Data/Provider/Source/MySqlScript.cs
      MySql.Data/Tests/Source/ScriptExecution.cs
=== modified file 'CHANGES'
=== modified file 'CHANGES'
--- a/CHANGES	2009-07-29 21:40:37 +0000
+++ b/CHANGES	2009-07-29 22:14:40 +0000
@@ -70,6 +70,7 @@
 - fixed situation where TreatTinyAsBoolean had no effect with default database character set to UTF8
     (bug#46205)
 - fixed MySqlScript class so that it respects delimiter statements (bug #46429)
+- fixed "column" schema collection so that it will return set and enum datatypes correctly (bug #46270)
 
 Version 5.2.7  7/13/09
 - fixed procedure parameters collection so that an exception is thrown if we can't get the 

=== modified file 'MySql.Data/Provider/Source/SchemaProvider.cs'
--- a/MySql.Data/Provider/Source/SchemaProvider.cs	2009-07-28 20:40:35 +0000
+++ b/MySql.Data/Provider/Source/SchemaProvider.cs	2009-07-29 22:14:26 +0000
@@ -236,7 +236,9 @@
             int stop = dataType.IndexOf(')', index);
             string dataLen = dataType.Substring(index + 1, stop - (index + 1));
             string lowerType = row["DATA_TYPE"].ToString().ToLower();
-            if (lowerType == "char" || lowerType == "varchar")
+            if (lowerType == "set" || lowerType == "enum")
+                row["DATA_TYPE"] = dataType; 
+            else if (lowerType == "char" || lowerType == "varchar")
                 row["CHARACTER_MAXIMUM_LENGTH"] = dataLen;
             else
             {

=== modified file 'MySql.Data/Tests/Source/GetSchemaTests.cs'
--- a/MySql.Data/Tests/Source/GetSchemaTests.cs	2009-07-28 20:40:35 +0000
+++ b/MySql.Data/Tests/Source/GetSchemaTests.cs	2009-07-29 22:14:26 +0000
@@ -237,6 +237,21 @@
 			Assert.AreEqual("TINYINT", dt.Rows[3]["DATA_TYPE"].ToString().ToUpper());
 		}
 
+        /// <summary> 
+        /// Bug #46270 connection.GetSchema("Columns") fails on MySQL 4.1  
+        /// </summary> 
+        [Test]
+        public void EnumAndSetColumns()
+        {
+            execSQL("DROP TABLE IF EXISTS test");
+            execSQL("CREATE TABLE test (col1 set('A','B','C'), col2 enum('A','B','C'))");
+
+            DataTable dt = conn.GetSchema("Columns", new string[] { null, null, "test", null });
+            Assert.AreEqual(2, dt.Rows.Count);
+            Assert.AreEqual("set('A','B','C')", dt.Rows[0]["DATA_TYPE"]);
+            Assert.AreEqual("enum('A','B','C')", dt.Rows[1]["DATA_TYPE"]);
+        } 
+
 		[Test]
 		public void Procedures()
 		{


Attachment: [text/bzr-bundle] bzr/reggie.burnett@sun.com-20090729221440-k1nvymxygbcurly9.bundle
Thread
bzr push into connector-net-trunk branch (reggie.burnett:713 to 714)Reggie Burnett30 Jul