Sqlite: Map BOOLEAN to System.Boolean. Fixes #5768.
authorRolf Bjarne Kvinge <rolf@xamarin.com>
Mon, 25 Jun 2012 09:55:01 +0000 (11:55 +0200)
committerRolf Bjarne Kvinge <rolf@xamarin.com>
Mon, 25 Jun 2012 09:56:02 +0000 (11:56 +0200)
mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0/SQLiteConvert.cs
mcs/class/Mono.Data.Sqlite/Test/SqliteDataReaderTest.cs

index a0eb84536c999c97c68fb5ebd31aaae4a886f46f..fe751b822af63971e2f2abfd420f975681f72822 100644 (file)
@@ -675,6 +675,7 @@ namespace Mono.Data.Sqlite
       new SQLiteTypeNames("YESNO", DbType.Boolean),\r
       new SQLiteTypeNames("LOGICAL", DbType.Boolean),\r
       new SQLiteTypeNames("BOOL", DbType.Boolean),\r
+      new SQLiteTypeNames("BOOLEAN", DbType.Boolean),\r
       new SQLiteTypeNames("NUMERIC", DbType.Decimal),\r
       new SQLiteTypeNames("DECIMAL", DbType.Decimal),\r
       new SQLiteTypeNames("MONEY", DbType.Decimal),\r
index c55b6489a1464984df3eb9df933c751b28a039b1..deeb6877358447341bc19718d2aaae8439504b37 100644 (file)
@@ -179,21 +179,30 @@ namespace MonoTests.Mono.Data.Sqlite
                [Test]
                public void TestDataTypes ()
                {
+                       SqliteParameter param;
+                       
                        _conn.ConnectionString = _connectionString;
                        using (_conn) {
                                _conn.Open();
                                
                                using (var cm = _conn.CreateCommand ()) {
-                                       cm.CommandText = "DROP TABLE TEST; CREATE TABLE TEST (F2 DATETIME, F3 guidblob NOT NULL); INSERT INTO TEST (F2, F3) VALUES (:F2, :F3)";
+                                       cm.CommandText = @"
+DROP TABLE TEST;
+CREATE TABLE TEST (F1 DATETIME, F2 GUIDBLOB NOT NULL, F3 BOOLEAN);
+INSERT INTO TEST (F1, F2, F3) VALUES (:F1, :F2, :F3)";
 
-                                       var dp2 = cm.CreateParameter ();
-                                       dp2.ParameterName = ":F2";
-                                       dp2.Value = DateTime.Now;
-                                       cm.Parameters.Add (dp2);
-                                       var dp3 = cm.CreateParameter ();
-                                       dp3.ParameterName = ":F3";
-                                       dp3.Value = new byte [] { 3, 14, 15 };
-                                       cm.Parameters.Add (dp3);
+                                       param = cm.CreateParameter ();
+                                       param.ParameterName = ":F1";
+                                       param.Value = DateTime.Now;
+                                       cm.Parameters.Add (param);
+                                       param = cm.CreateParameter ();
+                                       param.ParameterName = ":F2";
+                                       param.Value = new byte [] { 3, 14, 15 };
+                                       cm.Parameters.Add (param);
+                                       param = cm.CreateParameter ();
+                                       param.ParameterName = ":F3";
+                                       param.Value = true;
+                                       cm.Parameters.Add (param);
                                        
                                        cm.ExecuteNonQuery ();
                                }
@@ -203,9 +212,11 @@ namespace MonoTests.Mono.Data.Sqlite
                                        using (var dr = cm.ExecuteReader ()) {
                                                dr.Read ();
                                                
-                                               Assert.AreEqual ("System.DateTime", dr.GetFieldType (dr.GetOrdinal ("F2")).ToString (), "F2");
-                                               Assert.AreEqual ("guidblob", dr.GetDataTypeName (dr.GetOrdinal ("F3")), "F3");
-                                               Assert.AreEqual ("System.Guid", dr.GetFieldType (dr.GetOrdinal ("F3")).ToString (), "F3-#2");
+                                               Assert.AreEqual ("System.DateTime", dr.GetFieldType (dr.GetOrdinal ("F1")).ToString (), "F1");
+                                               Assert.AreEqual ("GUIDBLOB", dr.GetDataTypeName (dr.GetOrdinal ("F2")), "F2");
+                                               Assert.AreEqual ("System.Guid", dr.GetFieldType (dr.GetOrdinal ("F2")).ToString (), "F2-#2");
+                                               Assert.AreEqual ("System.Boolean", dr.GetFieldType (dr.GetOrdinal ("F3")).ToString (), "F3");
+                                               Assert.AreEqual ("BOOLEAN", dr.GetDataTypeName (dr.GetOrdinal ("F3")), "F3-#2");
                                        }
                                }
                        }