@@ -11,7 +11,7 @@ func TestBool(t *testing.T) {
1111 d , err := sql .Open ("sqlite3" , "file::memory:" )
1212 require .NoError (t , err )
1313
14- _ , err = d .Exec ("CREATE TABLE `users` (`id` int NOT NULL,`status` BIT(1), PRIMARY KEY (`id`))" )
14+ _ , err = d .Exec ("CREATE TABLE `users` (`id` int NOT NULL,`status` BIT(1),`status_string` VARCHAR(5),`status_int` INT, `status_boolean` boolean, PRIMARY KEY (`id`))" )
1515 require .NoError (t , err )
1616
1717 result , err := d .Exec ("INSERT INTO `users`(`id`, `status`) VALUES(?, ?)" , 10 , Bool (true ))
@@ -71,4 +71,59 @@ func TestBool(t *testing.T) {
7171
7272 require .EqualValues (t , false , b4 )
7373
74+ // Insert with different types
75+ _ , err = d .Exec ("INSERT INTO `users`(`id`, `status_string`) VALUES(?, ?)" , 14 , "true" )
76+ require .NoError (t , err )
77+
78+ _ , err = d .Exec ("INSERT INTO `users`(`id`, `status_string`) VALUES(?, ?)" , 15 , "false" )
79+ require .NoError (t , err )
80+
81+ var b5 Bool
82+ err = d .QueryRow ("SELECT `status_string` FROM `users` WHERE id=?" , 14 ).Scan (& b5 )
83+ require .NoError (t , err )
84+
85+ require .EqualValues (t , true , b5 )
86+
87+ var b6 Bool
88+ err = d .QueryRow ("SELECT `status_string` FROM `users` WHERE id=?" , 15 ).Scan (& b6 )
89+ require .NoError (t , err )
90+
91+ require .EqualValues (t , false , b6 )
92+
93+ _ , err = d .Exec ("INSERT INTO `users`(`id`, `status_int`) VALUES(?, ?)" , 16 , 1 )
94+ require .NoError (t , err )
95+
96+ result , err = d .Exec ("INSERT INTO `users`(`id`, `status_int`) VALUES(?, ?)" , 17 , 0 )
97+ require .NoError (t , err )
98+
99+ var b7 Bool
100+ err = d .QueryRow ("SELECT `status_int` FROM `users` WHERE id=?" , 16 ).Scan (& b7 )
101+ require .NoError (t , err )
102+
103+ require .EqualValues (t , true , b7 )
104+
105+ var b8 Bool
106+ err = d .QueryRow ("SELECT `status_int` FROM `users` WHERE id=?" , 17 ).Scan (& b8 )
107+ require .NoError (t , err )
108+
109+ require .EqualValues (t , false , b8 )
110+
111+ _ , err = d .Exec ("INSERT INTO `users`(`id`, `status_boolean`) VALUES(?, ?)" , 18 , true )
112+ require .NoError (t , err )
113+
114+ _ , err = d .Exec ("INSERT INTO `users`(`id`, `status_boolean`) VALUES(?, ?)" , 19 , false )
115+ require .NoError (t , err )
116+
117+ var b9 Bool
118+ err = d .QueryRow ("SELECT `status_boolean` FROM `users` WHERE id=?" , 18 ).Scan (& b9 )
119+ require .NoError (t , err )
120+
121+ require .EqualValues (t , true , b9 )
122+
123+ var b10 Bool
124+ err = d .QueryRow ("SELECT `status_boolean` FROM `users` WHERE id=?" , 19 ).Scan (& b10 )
125+ require .NoError (t , err )
126+
127+ require .EqualValues (t , false , b10 )
128+
74129}
0 commit comments