List:Commits« Previous MessageNext Message »
From:rburnett Date:February 20 2007 9:32pm
Subject:Connector/NET commit: r596 - in branches/5.0: . Driver/Source TestSuite
View as plain text  
Modified:
   branches/5.0/CHANGES
   branches/5.0/Driver/Source/Field.cs
   branches/5.0/TestSuite/DataTypeTests.cs
Log:
Bug #25605 BINARY and VARBINARY is returned as a string 

Removed code that returned MySqlString for VarChar and Char and let it fall on through so
that the binary flag is checked.

Modified: branches/5.0/CHANGES
===================================================================
--- branches/5.0/CHANGES	2007-02-20 19:40:41 UTC (rev 595)
+++ branches/5.0/CHANGES	2007-02-20 20:32:16 UTC (rev 596)
@@ -16,6 +16,7 @@
   Bug #25907 DataType Column of DataTypes collection does'nt contain the correct CLR
Datatype   
   Bug #25950 DataSourceInformation collection contains incorrect values 
   Bug #26430 Will not install under Vista   
+  Bug #25605 BINARY and VARBINARY is returned as a string 
 
   Other changes
   -------------

Modified: branches/5.0/Driver/Source/Field.cs
===================================================================
--- branches/5.0/Driver/Source/Field.cs	2007-02-20 19:40:41 UTC (rev 595)
+++ branches/5.0/Driver/Source/Field.cs	2007-02-20 20:32:16 UTC (rev 596)
@@ -200,33 +200,44 @@
 			{
 				case MySqlDbType.Byte:
 					return new MySqlByte();
-				case MySqlDbType.UByte: return new MySqlUByte();
-				case MySqlDbType.Int16: return new MySqlInt16();
-				case MySqlDbType.UInt16: return new MySqlUInt16();
+				case MySqlDbType.UByte: 
+                    return new MySqlUByte();
+				case MySqlDbType.Int16: 
+                    return new MySqlInt16();
+				case MySqlDbType.UInt16: 
+                    return new MySqlUInt16();
 				case MySqlDbType.Int24:
 				case MySqlDbType.Int32:
-				case MySqlDbType.Year: return new MySqlInt32(type, true);
+				case MySqlDbType.Year: 
+                    return new MySqlInt32(type, true);
 				case MySqlDbType.UInt24:
-				case MySqlDbType.UInt32: return new MySqlUInt32(type, true);
-				case MySqlDbType.Bit: return new MySqlBit();
+				case MySqlDbType.UInt32: 
+                    return new MySqlUInt32(type, true);
+				case MySqlDbType.Bit: 
+                    return new MySqlBit();
 				case MySqlDbType.Int64:
 					return new MySqlInt64();
-				case MySqlDbType.UInt64: return new MySqlUInt64();
-				case MySqlDbType.Time: return new MySqlTimeSpan();
+				case MySqlDbType.UInt64: 
+                    return new MySqlUInt64();
+				case MySqlDbType.Time: 
+                    return new MySqlTimeSpan();
 				case MySqlDbType.Date:
 				case MySqlDbType.Datetime:
 				case MySqlDbType.Newdate:
-				case MySqlDbType.Timestamp: return new MySqlDateTime(type, true);
+				case MySqlDbType.Timestamp: 
+                    return new MySqlDateTime(type, true);
 				case MySqlDbType.Decimal:
 				case MySqlDbType.NewDecimal:
 					return new MySqlDecimal();
-				case MySqlDbType.Float: return new MySqlSingle();
-				case MySqlDbType.Double: return new MySqlDouble();
+				case MySqlDbType.Float: 
+                    return new MySqlSingle();
+				case MySqlDbType.Double: 
+                    return new MySqlDouble();
 				case MySqlDbType.Set:
 				case MySqlDbType.Enum:
 				case MySqlDbType.String:
                 case MySqlDbType.VarString:
-				case MySqlDbType.VarChar: return new MySqlString(type, true);
+				case MySqlDbType.VarChar:
 				case MySqlDbType.Blob:
 				case MySqlDbType.MediumBlob:
 				case MySqlDbType.LongBlob:

Modified: branches/5.0/TestSuite/DataTypeTests.cs
===================================================================
--- branches/5.0/TestSuite/DataTypeTests.cs	2007-02-20 19:40:41 UTC (rev 595)
+++ branches/5.0/TestSuite/DataTypeTests.cs	2007-02-20 20:32:16 UTC (rev 596)
@@ -733,5 +733,26 @@
             Assert.AreEqual(-24, ts.Minutes);
             Assert.AreEqual(0, ts.Seconds);
         }
+
+        /// <summary>
+        /// Bug #25605 BINARY and VARBINARY is returned as a string 
+        /// </summary>
+        [Test]
+        public void BinaryAndVarBinary()
+        {
+            MySqlCommand cmd = new MySqlCommand("SELECT BINARY 'something' AS
BinaryData", conn);
+            using (MySqlDataReader reader = cmd.ExecuteReader())
+            {
+                reader.Read();
+                byte[] buffer = new byte[2];
+                long read = reader.GetBytes(0, 0, buffer, 0, 2);
+                Assert.AreEqual('s', buffer[0]);
+                Assert.AreEqual('o', buffer[1]);
+                Assert.AreEqual(2, read);
+
+                string s = reader.GetString(0);
+                Assert.AreEqual("something", s);
+            }
+        }
 	}
 }

Thread
Connector/NET commit: r596 - in branches/5.0: . Driver/Source TestSuiterburnett20 Feb