1# 2014 June 26 2# 3# The author disclaims copyright to this source code. In place of 4# a legal notice, here is a blessing: 5# 6# May you do good and not evil. 7# May you find forgiveness for yourself and forgive others. 8# May you share freely, never taking more than you give. 9# 10#*********************************************************************** 11# This file implements regression tests for SQLite library. 12# 13# This file implements tests to verify that ticket [9a8b09f8e6] has been 14# fixed. 15# 16 17set testdir [file dirname $argv0] 18source $testdir/tester.tcl 19set testprefix tkt-9a8b09f8e6 20 21do_test 1.1 { 22 execsql { 23 CREATE TABLE t1(x TEXT); 24 INSERT INTO t1 VALUES('1'); 25 } 26} {} 27 28do_test 1.2 { 29 execsql { 30 CREATE TABLE t2(x INTEGER); 31 INSERT INTO t2 VALUES(1); 32 } 33} {} 34 35do_test 1.3 { 36 execsql { 37 CREATE TABLE t3(x REAL); 38 INSERT INTO t3 VALUES(1.0); 39 } 40} {} 41 42do_test 1.4 { 43 execsql { 44 CREATE TABLE t4(x REAL); 45 INSERT INTO t4 VALUES(1.11); 46 } 47} {} 48 49do_test 1.5 { 50 execsql { 51 CREATE TABLE t5(x, y); 52 INSERT INTO t5 VALUES('1', 'one'); 53 INSERT INTO t5 VALUES(1, 'two'); 54 INSERT INTO t5 VALUES('1.0', 'three'); 55 INSERT INTO t5 VALUES(1.0, 'four'); 56 } 57} {} 58 59do_test 2.1 { 60 execsql { 61 SELECT x FROM t1 WHERE x IN (1); 62 } 63} {1} 64 65do_test 2.2 { 66 execsql { 67 SELECT x FROM t1 WHERE x IN (1.0); 68 } 69} {} 70 71do_test 2.3 { 72 execsql { 73 SELECT x FROM t1 WHERE x IN ('1'); 74 } 75} {1} 76 77do_test 2.4 { 78 execsql { 79 SELECT x FROM t1 WHERE x IN ('1.0'); 80 } 81} {} 82 83do_test 2.5 { 84 execsql { 85 SELECT x FROM t1 WHERE 1 IN (x); 86 } 87} {} 88 89do_test 2.6 { 90 execsql { 91 SELECT x FROM t1 WHERE 1.0 IN (x); 92 } 93} {} 94 95do_test 2.7 { 96 execsql { 97 SELECT x FROM t1 WHERE '1' IN (x); 98 } 99} {1} 100 101do_test 2.8 { 102 execsql { 103 SELECT x FROM t1 WHERE '1.0' IN (x); 104 } 105} {} 106 107do_test 3.1 { 108 execsql { 109 SELECT x FROM t2 WHERE x IN (1); 110 } 111} {1} 112 113do_test 3.2 { 114 execsql { 115 SELECT x FROM t2 WHERE x IN (1.0); 116 } 117} {1} 118 119do_test 3.3 { 120 execsql { 121 SELECT x FROM t2 WHERE x IN ('1'); 122 } 123} {1} 124 125do_test 3.4 { 126 execsql { 127 SELECT x FROM t2 WHERE x IN ('1.0'); 128 } 129} {1} 130 131do_test 3.5 { 132 execsql { 133 SELECT x FROM t2 WHERE 1 IN (x); 134 } 135} {1} 136 137do_test 3.6 { 138 execsql { 139 SELECT x FROM t2 WHERE 1.0 IN (x); 140 } 141} {1} 142 143do_test 3.7 { 144 execsql { 145 SELECT x FROM t2 WHERE '1' IN (x); 146 } 147} {} 148 149do_test 3.8 { 150 execsql { 151 SELECT x FROM t2 WHERE '1.0' IN (x); 152 } 153} {} 154 155do_test 4.1 { 156 execsql { 157 SELECT x FROM t3 WHERE x IN (1); 158 } 159} {1.0} 160 161do_test 4.2 { 162 execsql { 163 SELECT x FROM t3 WHERE x IN (1.0); 164 } 165} {1.0} 166 167do_test 4.3 { 168 execsql { 169 SELECT x FROM t3 WHERE x IN ('1'); 170 } 171} {1.0} 172 173do_test 4.4 { 174 execsql { 175 SELECT x FROM t3 WHERE x IN ('1.0'); 176 } 177} {1.0} 178 179do_test 4.5 { 180 execsql { 181 SELECT x FROM t3 WHERE 1 IN (x); 182 } 183} {1.0} 184 185do_test 4.6 { 186 execsql { 187 SELECT x FROM t3 WHERE 1.0 IN (x); 188 } 189} {1.0} 190 191do_test 4.7 { 192 execsql { 193 SELECT x FROM t3 WHERE '1' IN (x); 194 } 195} {} 196 197do_test 4.8 { 198 execsql { 199 SELECT x FROM t3 WHERE '1.0' IN (x); 200 } 201} {} 202 203do_test 5.1 { 204 execsql { 205 SELECT x FROM t4 WHERE x IN (1); 206 } 207} {} 208 209do_test 5.2 { 210 execsql { 211 SELECT x FROM t4 WHERE x IN (1.0); 212 } 213} {} 214 215do_test 5.3 { 216 execsql { 217 SELECT x FROM t4 WHERE x IN ('1'); 218 } 219} {} 220 221do_test 5.4 { 222 execsql { 223 SELECT x FROM t4 WHERE x IN ('1.0'); 224 } 225} {} 226 227do_test 5.5 { 228 execsql { 229 SELECT x FROM t4 WHERE x IN (1.11); 230 } 231} {1.11} 232 233do_test 5.6 { 234 execsql { 235 SELECT x FROM t4 WHERE x IN ('1.11'); 236 } 237} {1.11} 238 239do_test 5.7 { 240 execsql { 241 SELECT x FROM t4 WHERE 1 IN (x); 242 } 243} {} 244 245do_test 5.8 { 246 execsql { 247 SELECT x FROM t4 WHERE 1.0 IN (x); 248 } 249} {} 250 251do_test 5.9 { 252 execsql { 253 SELECT x FROM t4 WHERE '1' IN (x); 254 } 255} {} 256 257do_test 5.10 { 258 execsql { 259 SELECT x FROM t4 WHERE '1.0' IN (x); 260 } 261} {} 262 263do_test 5.11 { 264 execsql { 265 SELECT x FROM t4 WHERE 1.11 IN (x); 266 } 267} {1.11} 268 269do_test 5.12 { 270 execsql { 271 SELECT x FROM t4 WHERE '1.11' IN (x); 272 } 273} {} 274 275do_test 6.1 { 276 execsql { 277 SELECT x, y FROM t5 WHERE x IN (1); 278 } 279} {1 two 1.0 four} 280 281do_test 6.2 { 282 execsql { 283 SELECT x, y FROM t5 WHERE x IN (1.0); 284 } 285} {1 two 1.0 four} 286 287do_test 6.3 { 288 execsql { 289 SELECT x, y FROM t5 WHERE x IN ('1'); 290 } 291} {1 one} 292 293do_test 6.4 { 294 execsql { 295 SELECT x, y FROM t5 WHERE x IN ('1.0'); 296 } 297} {1.0 three} 298 299do_test 6.5 { 300 execsql { 301 SELECT x, y FROM t5 WHERE 1 IN (x); 302 } 303} {1 two 1.0 four} 304 305do_test 6.6 { 306 execsql { 307 SELECT x, y FROM t5 WHERE 1.0 IN (x); 308 } 309} {1 two 1.0 four} 310 311do_test 6.7 { 312 execsql { 313 SELECT x, y FROM t5 WHERE '1' IN (x); 314 } 315} {1 one} 316 317do_test 6.8 { 318 execsql { 319 SELECT x, y FROM t5 WHERE '1.0' IN (x); 320 } 321} {1.0 three} 322 323finish_test 324