1 # 2008 May 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. The 12 # focus of this file is testing the LIKE and GLOB operators and 13 # in particular the optimizations that occur to help those operators 14 # run faster. 15 # 16 # $Id: like2.test,v 1.1 2008/05/26 18:33:41 drh Exp $ 17 18 set testdir [file dirname $argv0] 19 source $testdir/tester.tcl 20 21 do_test like2-1.1 { 22 db eval { 23 CREATE TABLE t1(x INT, y COLLATE NOCASE); 24 INSERT INTO t1(x,y) VALUES(1,CAST(x'01' AS TEXT)); 25 INSERT INTO t1(x,y) VALUES(2,CAST(x'02' AS TEXT)); 26 INSERT INTO t1(x,y) VALUES(3,CAST(x'03' AS TEXT)); 27 INSERT INTO t1(x,y) VALUES(4,CAST(x'04' AS TEXT)); 28 INSERT INTO t1(x,y) VALUES(5,CAST(x'05' AS TEXT)); 29 INSERT INTO t1(x,y) VALUES(6,CAST(x'06' AS TEXT)); 30 INSERT INTO t1(x,y) VALUES(7,CAST(x'07' AS TEXT)); 31 INSERT INTO t1(x,y) VALUES(8,CAST(x'08' AS TEXT)); 32 INSERT INTO t1(x,y) VALUES(9,CAST(x'09' AS TEXT)); 33 INSERT INTO t1(x,y) VALUES(10,CAST(x'0a' AS TEXT)); 34 INSERT INTO t1(x,y) VALUES(11,CAST(x'0b' AS TEXT)); 35 INSERT INTO t1(x,y) VALUES(12,CAST(x'0c' AS TEXT)); 36 INSERT INTO t1(x,y) VALUES(13,CAST(x'0d' AS TEXT)); 37 INSERT INTO t1(x,y) VALUES(14,CAST(x'0e' AS TEXT)); 38 INSERT INTO t1(x,y) VALUES(15,CAST(x'0f' AS TEXT)); 39 INSERT INTO t1(x,y) VALUES(16,CAST(x'10' AS TEXT)); 40 INSERT INTO t1(x,y) VALUES(17,CAST(x'11' AS TEXT)); 41 INSERT INTO t1(x,y) VALUES(18,CAST(x'12' AS TEXT)); 42 INSERT INTO t1(x,y) VALUES(19,CAST(x'13' AS TEXT)); 43 INSERT INTO t1(x,y) VALUES(20,CAST(x'14' AS TEXT)); 44 INSERT INTO t1(x,y) VALUES(21,CAST(x'15' AS TEXT)); 45 INSERT INTO t1(x,y) VALUES(22,CAST(x'16' AS TEXT)); 46 INSERT INTO t1(x,y) VALUES(23,CAST(x'17' AS TEXT)); 47 INSERT INTO t1(x,y) VALUES(24,CAST(x'18' AS TEXT)); 48 INSERT INTO t1(x,y) VALUES(25,CAST(x'19' AS TEXT)); 49 INSERT INTO t1(x,y) VALUES(26,CAST(x'1a' AS TEXT)); 50 INSERT INTO t1(x,y) VALUES(27,CAST(x'1b' AS TEXT)); 51 INSERT INTO t1(x,y) VALUES(28,CAST(x'1c' AS TEXT)); 52 INSERT INTO t1(x,y) VALUES(29,CAST(x'1d' AS TEXT)); 53 INSERT INTO t1(x,y) VALUES(30,CAST(x'1e' AS TEXT)); 54 INSERT INTO t1(x,y) VALUES(31,CAST(x'1f' AS TEXT)); 55 INSERT INTO t1(x,y) VALUES(32,' '); 56 INSERT INTO t1(x,y) VALUES(33,'!'); 57 INSERT INTO t1(x,y) VALUES(34,'"'); 58 INSERT INTO t1(x,y) VALUES(35,'#'); 59 INSERT INTO t1(x,y) VALUES(36,'$'); 60 INSERT INTO t1(x,y) VALUES(37,'%'); 61 INSERT INTO t1(x,y) VALUES(38,'&'); 62 INSERT INTO t1(x,y) VALUES(39,''''); 63 INSERT INTO t1(x,y) VALUES(40,'('); 64 INSERT INTO t1(x,y) VALUES(41,')'); 65 INSERT INTO t1(x,y) VALUES(42,'*'); 66 INSERT INTO t1(x,y) VALUES(43,'+'); 67 INSERT INTO t1(x,y) VALUES(44,','); 68 INSERT INTO t1(x,y) VALUES(45,'-'); 69 INSERT INTO t1(x,y) VALUES(46,'.'); 70 INSERT INTO t1(x,y) VALUES(47,'/'); 71 INSERT INTO t1(x,y) VALUES(48,'0'); 72 INSERT INTO t1(x,y) VALUES(49,'1'); 73 INSERT INTO t1(x,y) VALUES(50,'2'); 74 INSERT INTO t1(x,y) VALUES(51,'3'); 75 INSERT INTO t1(x,y) VALUES(52,'4'); 76 INSERT INTO t1(x,y) VALUES(53,'5'); 77 INSERT INTO t1(x,y) VALUES(54,'6'); 78 INSERT INTO t1(x,y) VALUES(55,'7'); 79 INSERT INTO t1(x,y) VALUES(56,'8'); 80 INSERT INTO t1(x,y) VALUES(57,'9'); 81 INSERT INTO t1(x,y) VALUES(58,':'); 82 INSERT INTO t1(x,y) VALUES(59,';'); 83 INSERT INTO t1(x,y) VALUES(60,'<'); 84 INSERT INTO t1(x,y) VALUES(61,'='); 85 INSERT INTO t1(x,y) VALUES(62,'>'); 86 INSERT INTO t1(x,y) VALUES(63,'?'); 87 INSERT INTO t1(x,y) VALUES(64,'@'); 88 INSERT INTO t1(x,y) VALUES(65,'A'); 89 INSERT INTO t1(x,y) VALUES(66,'B'); 90 INSERT INTO t1(x,y) VALUES(67,'C'); 91 INSERT INTO t1(x,y) VALUES(68,'D'); 92 INSERT INTO t1(x,y) VALUES(69,'E'); 93 INSERT INTO t1(x,y) VALUES(70,'F'); 94 INSERT INTO t1(x,y) VALUES(71,'G'); 95 INSERT INTO t1(x,y) VALUES(72,'H'); 96 INSERT INTO t1(x,y) VALUES(73,'I'); 97 INSERT INTO t1(x,y) VALUES(74,'J'); 98 INSERT INTO t1(x,y) VALUES(75,'K'); 99 INSERT INTO t1(x,y) VALUES(76,'L'); 100 INSERT INTO t1(x,y) VALUES(77,'M'); 101 INSERT INTO t1(x,y) VALUES(78,'N'); 102 INSERT INTO t1(x,y) VALUES(79,'O'); 103 INSERT INTO t1(x,y) VALUES(80,'P'); 104 INSERT INTO t1(x,y) VALUES(81,'Q'); 105 INSERT INTO t1(x,y) VALUES(82,'R'); 106 INSERT INTO t1(x,y) VALUES(83,'S'); 107 INSERT INTO t1(x,y) VALUES(84,'T'); 108 INSERT INTO t1(x,y) VALUES(85,'U'); 109 INSERT INTO t1(x,y) VALUES(86,'V'); 110 INSERT INTO t1(x,y) VALUES(87,'W'); 111 INSERT INTO t1(x,y) VALUES(88,'X'); 112 INSERT INTO t1(x,y) VALUES(89,'Y'); 113 INSERT INTO t1(x,y) VALUES(90,'Z'); 114 INSERT INTO t1(x,y) VALUES(91,'['); 115 INSERT INTO t1(x,y) VALUES(92,'\'); 116 INSERT INTO t1(x,y) VALUES(93,']'); 117 INSERT INTO t1(x,y) VALUES(94,'^'); 118 INSERT INTO t1(x,y) VALUES(95,'_'); 119 INSERT INTO t1(x,y) VALUES(96,'`'); 120 INSERT INTO t1(x,y) VALUES(97,'a'); 121 INSERT INTO t1(x,y) VALUES(98,'b'); 122 INSERT INTO t1(x,y) VALUES(99,'c'); 123 INSERT INTO t1(x,y) VALUES(100,'d'); 124 INSERT INTO t1(x,y) VALUES(101,'e'); 125 INSERT INTO t1(x,y) VALUES(102,'f'); 126 INSERT INTO t1(x,y) VALUES(103,'g'); 127 INSERT INTO t1(x,y) VALUES(104,'h'); 128 INSERT INTO t1(x,y) VALUES(105,'i'); 129 INSERT INTO t1(x,y) VALUES(106,'j'); 130 INSERT INTO t1(x,y) VALUES(107,'k'); 131 INSERT INTO t1(x,y) VALUES(108,'l'); 132 INSERT INTO t1(x,y) VALUES(109,'m'); 133 INSERT INTO t1(x,y) VALUES(110,'n'); 134 INSERT INTO t1(x,y) VALUES(111,'o'); 135 INSERT INTO t1(x,y) VALUES(112,'p'); 136 INSERT INTO t1(x,y) VALUES(113,'q'); 137 INSERT INTO t1(x,y) VALUES(114,'r'); 138 INSERT INTO t1(x,y) VALUES(115,'s'); 139 INSERT INTO t1(x,y) VALUES(116,'t'); 140 INSERT INTO t1(x,y) VALUES(117,'u'); 141 INSERT INTO t1(x,y) VALUES(118,'v'); 142 INSERT INTO t1(x,y) VALUES(119,'w'); 143 INSERT INTO t1(x,y) VALUES(120,'x'); 144 INSERT INTO t1(x,y) VALUES(121,'y'); 145 INSERT INTO t1(x,y) VALUES(122,'z'); 146 INSERT INTO t1(x,y) VALUES(123,'{'); 147 INSERT INTO t1(x,y) VALUES(124,'|'); 148 INSERT INTO t1(x,y) VALUES(125,'}'); 149 INSERT INTO t1(x,y) VALUES(126,'~'); 150 INSERT INTO t1(x,y) VALUES(127,CAST(x'7f' AS TEXT)); 151 SELECT count(*) FROM t1; 152 } 153 } {127} 154 do_test like2-1.2 { 155 db eval { 156 CREATE TABLE t2(x INT, y COLLATE NOCASE); 157 INSERT INTO t2 SELECT * FROM t1; 158 CREATE INDEX i2 ON t2(y); 159 SELECT count(*) FROM t2; 160 } 161 } {127} 162 do_test like2-1.3 { 163 db eval { 164 CREATE TABLE t3(x INT, y COLLATE NOCASE); 165 INSERT INTO t3 SELECT x, 'abc' || y || 'xyz' FROM t1; 166 CREATE INDEX i3 ON t3(y); 167 SELECT count(*) FROM t2; 168 } 169 } {127} 170 do_test like-2.32.1 { 171 db eval "SELECT x FROM t1 WHERE y LIKE ' %'" 172 } {32} 173 do_test like-2.32.2 { 174 db eval "SELECT x FROM t2 WHERE y LIKE ' %'" 175 } {32} 176 do_test like-2.32.3 { 177 db eval "SELECT x FROM t3 WHERE y LIKE 'abc %'" 178 } {32} 179 do_test like-2.33.1 { 180 db eval "SELECT x FROM t1 WHERE y LIKE '!%'" 181 } {33} 182 do_test like-2.33.2 { 183 db eval "SELECT x FROM t2 WHERE y LIKE '!%'" 184 } {33} 185 do_test like-2.33.3 { 186 db eval "SELECT x FROM t3 WHERE y LIKE 'abc!%'" 187 } {33} 188 do_test like-2.34.1 { 189 db eval "SELECT x FROM t1 WHERE y LIKE '\"%'" 190 } {34} 191 do_test like-2.34.2 { 192 db eval "SELECT x FROM t2 WHERE y LIKE '\"%'" 193 } {34} 194 do_test like-2.34.3 { 195 db eval "SELECT x FROM t3 WHERE y LIKE 'abc\"%'" 196 } {34} 197 do_test like-2.35.1 { 198 db eval "SELECT x FROM t1 WHERE y LIKE '#%'" 199 } {35} 200 do_test like-2.35.2 { 201 db eval "SELECT x FROM t2 WHERE y LIKE '#%'" 202 } {35} 203 do_test like-2.35.3 { 204 db eval "SELECT x FROM t3 WHERE y LIKE 'abc#%'" 205 } {35} 206 do_test like-2.36.1 { 207 db eval "SELECT x FROM t1 WHERE y LIKE '\$%'" 208 } {36} 209 do_test like-2.36.2 { 210 db eval "SELECT x FROM t2 WHERE y LIKE '\$%'" 211 } {36} 212 do_test like-2.36.3 { 213 db eval "SELECT x FROM t3 WHERE y LIKE 'abc\$%'" 214 } {36} 215 do_test like-2.38.1 { 216 db eval "SELECT x FROM t1 WHERE y LIKE '&%'" 217 } {38} 218 do_test like-2.38.2 { 219 db eval "SELECT x FROM t2 WHERE y LIKE '&%'" 220 } {38} 221 do_test like-2.38.3 { 222 db eval "SELECT x FROM t3 WHERE y LIKE 'abc&%'" 223 } {38} 224 do_test like-2.39.1 { 225 db eval "SELECT x FROM t1 WHERE y LIKE '''%'" 226 } {39} 227 do_test like-2.39.2 { 228 db eval "SELECT x FROM t2 WHERE y LIKE '''%'" 229 } {39} 230 do_test like-2.39.3 { 231 db eval "SELECT x FROM t3 WHERE y LIKE 'abc''%'" 232 } {39} 233 do_test like-2.40.1 { 234 db eval "SELECT x FROM t1 WHERE y LIKE '(%'" 235 } {40} 236 do_test like-2.40.2 { 237 db eval "SELECT x FROM t2 WHERE y LIKE '(%'" 238 } {40} 239 do_test like-2.40.3 { 240 db eval "SELECT x FROM t3 WHERE y LIKE 'abc(%'" 241 } {40} 242 do_test like-2.41.1 { 243 db eval "SELECT x FROM t1 WHERE y LIKE ')%'" 244 } {41} 245 do_test like-2.41.2 { 246 db eval "SELECT x FROM t2 WHERE y LIKE ')%'" 247 } {41} 248 do_test like-2.41.3 { 249 db eval "SELECT x FROM t3 WHERE y LIKE 'abc)%'" 250 } {41} 251 do_test like-2.42.1 { 252 db eval "SELECT x FROM t1 WHERE y LIKE '*%'" 253 } {42} 254 do_test like-2.42.2 { 255 db eval "SELECT x FROM t2 WHERE y LIKE '*%'" 256 } {42} 257 do_test like-2.42.3 { 258 db eval "SELECT x FROM t3 WHERE y LIKE 'abc*%'" 259 } {42} 260 do_test like-2.43.1 { 261 db eval "SELECT x FROM t1 WHERE y LIKE '+%'" 262 } {43} 263 do_test like-2.43.2 { 264 db eval "SELECT x FROM t2 WHERE y LIKE '+%'" 265 } {43} 266 do_test like-2.43.3 { 267 db eval "SELECT x FROM t3 WHERE y LIKE 'abc+%'" 268 } {43} 269 do_test like-2.44.1 { 270 db eval "SELECT x FROM t1 WHERE y LIKE ',%'" 271 } {44} 272 do_test like-2.44.2 { 273 db eval "SELECT x FROM t2 WHERE y LIKE ',%'" 274 } {44} 275 do_test like-2.44.3 { 276 db eval "SELECT x FROM t3 WHERE y LIKE 'abc,%'" 277 } {44} 278 do_test like-2.45.1 { 279 db eval "SELECT x FROM t1 WHERE y LIKE '-%'" 280 } {45} 281 do_test like-2.45.2 { 282 db eval "SELECT x FROM t2 WHERE y LIKE '-%'" 283 } {45} 284 do_test like-2.45.3 { 285 db eval "SELECT x FROM t3 WHERE y LIKE 'abc-%'" 286 } {45} 287 do_test like-2.46.1 { 288 db eval "SELECT x FROM t1 WHERE y LIKE '.%'" 289 } {46} 290 do_test like-2.46.2 { 291 db eval "SELECT x FROM t2 WHERE y LIKE '.%'" 292 } {46} 293 do_test like-2.46.3 { 294 db eval "SELECT x FROM t3 WHERE y LIKE 'abc.%'" 295 } {46} 296 do_test like-2.47.1 { 297 db eval "SELECT x FROM t1 WHERE y LIKE '/%'" 298 } {47} 299 do_test like-2.47.2 { 300 db eval "SELECT x FROM t2 WHERE y LIKE '/%'" 301 } {47} 302 do_test like-2.47.3 { 303 db eval "SELECT x FROM t3 WHERE y LIKE 'abc/%'" 304 } {47} 305 do_test like-2.48.1 { 306 db eval "SELECT x FROM t1 WHERE y LIKE '0%'" 307 } {48} 308 do_test like-2.48.2 { 309 db eval "SELECT x FROM t2 WHERE y LIKE '0%'" 310 } {48} 311 do_test like-2.48.3 { 312 db eval "SELECT x FROM t3 WHERE y LIKE 'abc0%'" 313 } {48} 314 do_test like-2.49.1 { 315 db eval "SELECT x FROM t1 WHERE y LIKE '1%'" 316 } {49} 317 do_test like-2.49.2 { 318 db eval "SELECT x FROM t2 WHERE y LIKE '1%'" 319 } {49} 320 do_test like-2.49.3 { 321 db eval "SELECT x FROM t3 WHERE y LIKE 'abc1%'" 322 } {49} 323 do_test like-2.50.1 { 324 db eval "SELECT x FROM t1 WHERE y LIKE '2%'" 325 } {50} 326 do_test like-2.50.2 { 327 db eval "SELECT x FROM t2 WHERE y LIKE '2%'" 328 } {50} 329 do_test like-2.50.3 { 330 db eval "SELECT x FROM t3 WHERE y LIKE 'abc2%'" 331 } {50} 332 do_test like-2.51.1 { 333 db eval "SELECT x FROM t1 WHERE y LIKE '3%'" 334 } {51} 335 do_test like-2.51.2 { 336 db eval "SELECT x FROM t2 WHERE y LIKE '3%'" 337 } {51} 338 do_test like-2.51.3 { 339 db eval "SELECT x FROM t3 WHERE y LIKE 'abc3%'" 340 } {51} 341 do_test like-2.52.1 { 342 db eval "SELECT x FROM t1 WHERE y LIKE '4%'" 343 } {52} 344 do_test like-2.52.2 { 345 db eval "SELECT x FROM t2 WHERE y LIKE '4%'" 346 } {52} 347 do_test like-2.52.3 { 348 db eval "SELECT x FROM t3 WHERE y LIKE 'abc4%'" 349 } {52} 350 do_test like-2.53.1 { 351 db eval "SELECT x FROM t1 WHERE y LIKE '5%'" 352 } {53} 353 do_test like-2.53.2 { 354 db eval "SELECT x FROM t2 WHERE y LIKE '5%'" 355 } {53} 356 do_test like-2.53.3 { 357 db eval "SELECT x FROM t3 WHERE y LIKE 'abc5%'" 358 } {53} 359 do_test like-2.54.1 { 360 db eval "SELECT x FROM t1 WHERE y LIKE '6%'" 361 } {54} 362 do_test like-2.54.2 { 363 db eval "SELECT x FROM t2 WHERE y LIKE '6%'" 364 } {54} 365 do_test like-2.54.3 { 366 db eval "SELECT x FROM t3 WHERE y LIKE 'abc6%'" 367 } {54} 368 do_test like-2.55.1 { 369 db eval "SELECT x FROM t1 WHERE y LIKE '7%'" 370 } {55} 371 do_test like-2.55.2 { 372 db eval "SELECT x FROM t2 WHERE y LIKE '7%'" 373 } {55} 374 do_test like-2.55.3 { 375 db eval "SELECT x FROM t3 WHERE y LIKE 'abc7%'" 376 } {55} 377 do_test like-2.56.1 { 378 db eval "SELECT x FROM t1 WHERE y LIKE '8%'" 379 } {56} 380 do_test like-2.56.2 { 381 db eval "SELECT x FROM t2 WHERE y LIKE '8%'" 382 } {56} 383 do_test like-2.56.3 { 384 db eval "SELECT x FROM t3 WHERE y LIKE 'abc8%'" 385 } {56} 386 do_test like-2.57.1 { 387 db eval "SELECT x FROM t1 WHERE y LIKE '9%'" 388 } {57} 389 do_test like-2.57.2 { 390 db eval "SELECT x FROM t2 WHERE y LIKE '9%'" 391 } {57} 392 do_test like-2.57.3 { 393 db eval "SELECT x FROM t3 WHERE y LIKE 'abc9%'" 394 } {57} 395 do_test like-2.58.1 { 396 db eval "SELECT x FROM t1 WHERE y LIKE ':%'" 397 } {58} 398 do_test like-2.58.2 { 399 db eval "SELECT x FROM t2 WHERE y LIKE ':%'" 400 } {58} 401 do_test like-2.58.3 { 402 db eval "SELECT x FROM t3 WHERE y LIKE 'abc:%'" 403 } {58} 404 do_test like-2.59.1 { 405 db eval "SELECT x FROM t1 WHERE y LIKE ';%'" 406 } {59} 407 do_test like-2.59.2 { 408 db eval "SELECT x FROM t2 WHERE y LIKE ';%'" 409 } {59} 410 do_test like-2.59.3 { 411 db eval "SELECT x FROM t3 WHERE y LIKE 'abc;%'" 412 } {59} 413 do_test like-2.60.1 { 414 db eval "SELECT x FROM t1 WHERE y LIKE '<%'" 415 } {60} 416 do_test like-2.60.2 { 417 db eval "SELECT x FROM t2 WHERE y LIKE '<%'" 418 } {60} 419 do_test like-2.60.3 { 420 db eval "SELECT x FROM t3 WHERE y LIKE 'abc<%'" 421 } {60} 422 do_test like-2.61.1 { 423 db eval "SELECT x FROM t1 WHERE y LIKE '=%'" 424 } {61} 425 do_test like-2.61.2 { 426 db eval "SELECT x FROM t2 WHERE y LIKE '=%'" 427 } {61} 428 do_test like-2.61.3 { 429 db eval "SELECT x FROM t3 WHERE y LIKE 'abc=%'" 430 } {61} 431 do_test like-2.62.1 { 432 db eval "SELECT x FROM t1 WHERE y LIKE '>%'" 433 } {62} 434 do_test like-2.62.2 { 435 db eval "SELECT x FROM t2 WHERE y LIKE '>%'" 436 } {62} 437 do_test like-2.62.3 { 438 db eval "SELECT x FROM t3 WHERE y LIKE 'abc>%'" 439 } {62} 440 do_test like-2.63.1 { 441 db eval "SELECT x FROM t1 WHERE y LIKE '?%'" 442 } {63} 443 do_test like-2.63.2 { 444 db eval "SELECT x FROM t2 WHERE y LIKE '?%'" 445 } {63} 446 do_test like-2.63.3 { 447 db eval "SELECT x FROM t3 WHERE y LIKE 'abc?%'" 448 } {63} 449 do_test like-2.64.1 { 450 db eval "SELECT x FROM t1 WHERE y LIKE '@%'" 451 } {64} 452 do_test like-2.64.2 { 453 db eval "SELECT x FROM t2 WHERE y LIKE '@%'" 454 } {64} 455 do_test like-2.64.3 { 456 db eval "SELECT x FROM t3 WHERE y LIKE 'abc@%'" 457 } {64} 458 do_test like-2.65.1 { 459 db eval "SELECT x FROM t1 WHERE y LIKE 'A%'" 460 } {65 97} 461 do_test like-2.65.2 { 462 db eval "SELECT x FROM t2 WHERE y LIKE 'A%'" 463 } {65 97} 464 do_test like-2.65.3 { 465 db eval "SELECT x FROM t3 WHERE y LIKE 'abcA%'" 466 } {65 97} 467 do_test like-2.66.1 { 468 db eval "SELECT x FROM t1 WHERE y LIKE 'B%'" 469 } {66 98} 470 do_test like-2.66.2 { 471 db eval "SELECT x FROM t2 WHERE y LIKE 'B%'" 472 } {66 98} 473 do_test like-2.66.3 { 474 db eval "SELECT x FROM t3 WHERE y LIKE 'abcB%'" 475 } {66 98} 476 do_test like-2.67.1 { 477 db eval "SELECT x FROM t1 WHERE y LIKE 'C%'" 478 } {67 99} 479 do_test like-2.67.2 { 480 db eval "SELECT x FROM t2 WHERE y LIKE 'C%'" 481 } {67 99} 482 do_test like-2.67.3 { 483 db eval "SELECT x FROM t3 WHERE y LIKE 'abcC%'" 484 } {67 99} 485 do_test like-2.68.1 { 486 db eval "SELECT x FROM t1 WHERE y LIKE 'D%'" 487 } {68 100} 488 do_test like-2.68.2 { 489 db eval "SELECT x FROM t2 WHERE y LIKE 'D%'" 490 } {68 100} 491 do_test like-2.68.3 { 492 db eval "SELECT x FROM t3 WHERE y LIKE 'abcD%'" 493 } {68 100} 494 do_test like-2.69.1 { 495 db eval "SELECT x FROM t1 WHERE y LIKE 'E%'" 496 } {69 101} 497 do_test like-2.69.2 { 498 db eval "SELECT x FROM t2 WHERE y LIKE 'E%'" 499 } {69 101} 500 do_test like-2.69.3 { 501 db eval "SELECT x FROM t3 WHERE y LIKE 'abcE%'" 502 } {69 101} 503 do_test like-2.70.1 { 504 db eval "SELECT x FROM t1 WHERE y LIKE 'F%'" 505 } {70 102} 506 do_test like-2.70.2 { 507 db eval "SELECT x FROM t2 WHERE y LIKE 'F%'" 508 } {70 102} 509 do_test like-2.70.3 { 510 db eval "SELECT x FROM t3 WHERE y LIKE 'abcF%'" 511 } {70 102} 512 do_test like-2.71.1 { 513 db eval "SELECT x FROM t1 WHERE y LIKE 'G%'" 514 } {71 103} 515 do_test like-2.71.2 { 516 db eval "SELECT x FROM t2 WHERE y LIKE 'G%'" 517 } {71 103} 518 do_test like-2.71.3 { 519 db eval "SELECT x FROM t3 WHERE y LIKE 'abcG%'" 520 } {71 103} 521 do_test like-2.72.1 { 522 db eval "SELECT x FROM t1 WHERE y LIKE 'H%'" 523 } {72 104} 524 do_test like-2.72.2 { 525 db eval "SELECT x FROM t2 WHERE y LIKE 'H%'" 526 } {72 104} 527 do_test like-2.72.3 { 528 db eval "SELECT x FROM t3 WHERE y LIKE 'abcH%'" 529 } {72 104} 530 do_test like-2.73.1 { 531 db eval "SELECT x FROM t1 WHERE y LIKE 'I%'" 532 } {73 105} 533 do_test like-2.73.2 { 534 db eval "SELECT x FROM t2 WHERE y LIKE 'I%'" 535 } {73 105} 536 do_test like-2.73.3 { 537 db eval "SELECT x FROM t3 WHERE y LIKE 'abcI%'" 538 } {73 105} 539 do_test like-2.74.1 { 540 db eval "SELECT x FROM t1 WHERE y LIKE 'J%'" 541 } {74 106} 542 do_test like-2.74.2 { 543 db eval "SELECT x FROM t2 WHERE y LIKE 'J%'" 544 } {74 106} 545 do_test like-2.74.3 { 546 db eval "SELECT x FROM t3 WHERE y LIKE 'abcJ%'" 547 } {74 106} 548 do_test like-2.75.1 { 549 db eval "SELECT x FROM t1 WHERE y LIKE 'K%'" 550 } {75 107} 551 do_test like-2.75.2 { 552 db eval "SELECT x FROM t2 WHERE y LIKE 'K%'" 553 } {75 107} 554 do_test like-2.75.3 { 555 db eval "SELECT x FROM t3 WHERE y LIKE 'abcK%'" 556 } {75 107} 557 do_test like-2.76.1 { 558 db eval "SELECT x FROM t1 WHERE y LIKE 'L%'" 559 } {76 108} 560 do_test like-2.76.2 { 561 db eval "SELECT x FROM t2 WHERE y LIKE 'L%'" 562 } {76 108} 563 do_test like-2.76.3 { 564 db eval "SELECT x FROM t3 WHERE y LIKE 'abcL%'" 565 } {76 108} 566 do_test like-2.77.1 { 567 db eval "SELECT x FROM t1 WHERE y LIKE 'M%'" 568 } {77 109} 569 do_test like-2.77.2 { 570 db eval "SELECT x FROM t2 WHERE y LIKE 'M%'" 571 } {77 109} 572 do_test like-2.77.3 { 573 db eval "SELECT x FROM t3 WHERE y LIKE 'abcM%'" 574 } {77 109} 575 do_test like-2.78.1 { 576 db eval "SELECT x FROM t1 WHERE y LIKE 'N%'" 577 } {78 110} 578 do_test like-2.78.2 { 579 db eval "SELECT x FROM t2 WHERE y LIKE 'N%'" 580 } {78 110} 581 do_test like-2.78.3 { 582 db eval "SELECT x FROM t3 WHERE y LIKE 'abcN%'" 583 } {78 110} 584 do_test like-2.79.1 { 585 db eval "SELECT x FROM t1 WHERE y LIKE 'O%'" 586 } {79 111} 587 do_test like-2.79.2 { 588 db eval "SELECT x FROM t2 WHERE y LIKE 'O%'" 589 } {79 111} 590 do_test like-2.79.3 { 591 db eval "SELECT x FROM t3 WHERE y LIKE 'abcO%'" 592 } {79 111} 593 do_test like-2.80.1 { 594 db eval "SELECT x FROM t1 WHERE y LIKE 'P%'" 595 } {80 112} 596 do_test like-2.80.2 { 597 db eval "SELECT x FROM t2 WHERE y LIKE 'P%'" 598 } {80 112} 599 do_test like-2.80.3 { 600 db eval "SELECT x FROM t3 WHERE y LIKE 'abcP%'" 601 } {80 112} 602 do_test like-2.81.1 { 603 db eval "SELECT x FROM t1 WHERE y LIKE 'Q%'" 604 } {81 113} 605 do_test like-2.81.2 { 606 db eval "SELECT x FROM t2 WHERE y LIKE 'Q%'" 607 } {81 113} 608 do_test like-2.81.3 { 609 db eval "SELECT x FROM t3 WHERE y LIKE 'abcQ%'" 610 } {81 113} 611 do_test like-2.82.1 { 612 db eval "SELECT x FROM t1 WHERE y LIKE 'R%'" 613 } {82 114} 614 do_test like-2.82.2 { 615 db eval "SELECT x FROM t2 WHERE y LIKE 'R%'" 616 } {82 114} 617 do_test like-2.82.3 { 618 db eval "SELECT x FROM t3 WHERE y LIKE 'abcR%'" 619 } {82 114} 620 do_test like-2.83.1 { 621 db eval "SELECT x FROM t1 WHERE y LIKE 'S%'" 622 } {83 115} 623 do_test like-2.83.2 { 624 db eval "SELECT x FROM t2 WHERE y LIKE 'S%'" 625 } {83 115} 626 do_test like-2.83.3 { 627 db eval "SELECT x FROM t3 WHERE y LIKE 'abcS%'" 628 } {83 115} 629 do_test like-2.84.1 { 630 db eval "SELECT x FROM t1 WHERE y LIKE 'T%'" 631 } {84 116} 632 do_test like-2.84.2 { 633 db eval "SELECT x FROM t2 WHERE y LIKE 'T%'" 634 } {84 116} 635 do_test like-2.84.3 { 636 db eval "SELECT x FROM t3 WHERE y LIKE 'abcT%'" 637 } {84 116} 638 do_test like-2.85.1 { 639 db eval "SELECT x FROM t1 WHERE y LIKE 'U%'" 640 } {85 117} 641 do_test like-2.85.2 { 642 db eval "SELECT x FROM t2 WHERE y LIKE 'U%'" 643 } {85 117} 644 do_test like-2.85.3 { 645 db eval "SELECT x FROM t3 WHERE y LIKE 'abcU%'" 646 } {85 117} 647 do_test like-2.86.1 { 648 db eval "SELECT x FROM t1 WHERE y LIKE 'V%'" 649 } {86 118} 650 do_test like-2.86.2 { 651 db eval "SELECT x FROM t2 WHERE y LIKE 'V%'" 652 } {86 118} 653 do_test like-2.86.3 { 654 db eval "SELECT x FROM t3 WHERE y LIKE 'abcV%'" 655 } {86 118} 656 do_test like-2.87.1 { 657 db eval "SELECT x FROM t1 WHERE y LIKE 'W%'" 658 } {87 119} 659 do_test like-2.87.2 { 660 db eval "SELECT x FROM t2 WHERE y LIKE 'W%'" 661 } {87 119} 662 do_test like-2.87.3 { 663 db eval "SELECT x FROM t3 WHERE y LIKE 'abcW%'" 664 } {87 119} 665 do_test like-2.88.1 { 666 db eval "SELECT x FROM t1 WHERE y LIKE 'X%'" 667 } {88 120} 668 do_test like-2.88.2 { 669 db eval "SELECT x FROM t2 WHERE y LIKE 'X%'" 670 } {88 120} 671 do_test like-2.88.3 { 672 db eval "SELECT x FROM t3 WHERE y LIKE 'abcX%'" 673 } {88 120} 674 do_test like-2.89.1 { 675 db eval "SELECT x FROM t1 WHERE y LIKE 'Y%'" 676 } {89 121} 677 do_test like-2.89.2 { 678 db eval "SELECT x FROM t2 WHERE y LIKE 'Y%'" 679 } {89 121} 680 do_test like-2.89.3 { 681 db eval "SELECT x FROM t3 WHERE y LIKE 'abcY%'" 682 } {89 121} 683 do_test like-2.90.1 { 684 db eval "SELECT x FROM t1 WHERE y LIKE 'Z%'" 685 } {90 122} 686 do_test like-2.90.2 { 687 db eval "SELECT x FROM t2 WHERE y LIKE 'Z%'" 688 } {90 122} 689 do_test like-2.90.3 { 690 db eval "SELECT x FROM t3 WHERE y LIKE 'abcZ%'" 691 } {90 122} 692 do_test like-2.91.1 { 693 db eval "SELECT x FROM t1 WHERE y LIKE '\[%'" 694 } {91} 695 do_test like-2.91.2 { 696 db eval "SELECT x FROM t2 WHERE y LIKE '\[%'" 697 } {91} 698 do_test like-2.91.3 { 699 db eval "SELECT x FROM t3 WHERE y LIKE 'abc\[%'" 700 } {91} 701 do_test like-2.92.1 { 702 db eval "SELECT x FROM t1 WHERE y LIKE '\\%'" 703 } {92} 704 do_test like-2.92.2 { 705 db eval "SELECT x FROM t2 WHERE y LIKE '\\%'" 706 } {92} 707 do_test like-2.92.3 { 708 db eval "SELECT x FROM t3 WHERE y LIKE 'abc\\%'" 709 } {92} 710 do_test like-2.93.1 { 711 db eval "SELECT x FROM t1 WHERE y LIKE '\]%'" 712 } {93} 713 do_test like-2.93.2 { 714 db eval "SELECT x FROM t2 WHERE y LIKE '\]%'" 715 } {93} 716 do_test like-2.93.3 { 717 db eval "SELECT x FROM t3 WHERE y LIKE 'abc\]%'" 718 } {93} 719 do_test like-2.94.1 { 720 db eval "SELECT x FROM t1 WHERE y LIKE '^%'" 721 } {94} 722 do_test like-2.94.2 { 723 db eval "SELECT x FROM t2 WHERE y LIKE '^%'" 724 } {94} 725 do_test like-2.94.3 { 726 db eval "SELECT x FROM t3 WHERE y LIKE 'abc^%'" 727 } {94} 728 do_test like-2.96.1 { 729 db eval "SELECT x FROM t1 WHERE y LIKE '`%'" 730 } {96} 731 do_test like-2.96.2 { 732 db eval "SELECT x FROM t2 WHERE y LIKE '`%'" 733 } {96} 734 do_test like-2.96.3 { 735 db eval "SELECT x FROM t3 WHERE y LIKE 'abc`%'" 736 } {96} 737 do_test like-2.97.1 { 738 db eval "SELECT x FROM t1 WHERE y LIKE 'a%'" 739 } {65 97} 740 do_test like-2.97.2 { 741 db eval "SELECT x FROM t2 WHERE y LIKE 'a%'" 742 } {65 97} 743 do_test like-2.97.3 { 744 db eval "SELECT x FROM t3 WHERE y LIKE 'abca%'" 745 } {65 97} 746 do_test like-2.98.1 { 747 db eval "SELECT x FROM t1 WHERE y LIKE 'b%'" 748 } {66 98} 749 do_test like-2.98.2 { 750 db eval "SELECT x FROM t2 WHERE y LIKE 'b%'" 751 } {66 98} 752 do_test like-2.98.3 { 753 db eval "SELECT x FROM t3 WHERE y LIKE 'abcb%'" 754 } {66 98} 755 do_test like-2.99.1 { 756 db eval "SELECT x FROM t1 WHERE y LIKE 'c%'" 757 } {67 99} 758 do_test like-2.99.2 { 759 db eval "SELECT x FROM t2 WHERE y LIKE 'c%'" 760 } {67 99} 761 do_test like-2.99.3 { 762 db eval "SELECT x FROM t3 WHERE y LIKE 'abcc%'" 763 } {67 99} 764 do_test like-2.100.1 { 765 db eval "SELECT x FROM t1 WHERE y LIKE 'd%'" 766 } {68 100} 767 do_test like-2.100.2 { 768 db eval "SELECT x FROM t2 WHERE y LIKE 'd%'" 769 } {68 100} 770 do_test like-2.100.3 { 771 db eval "SELECT x FROM t3 WHERE y LIKE 'abcd%'" 772 } {68 100} 773 do_test like-2.101.1 { 774 db eval "SELECT x FROM t1 WHERE y LIKE 'e%'" 775 } {69 101} 776 do_test like-2.101.2 { 777 db eval "SELECT x FROM t2 WHERE y LIKE 'e%'" 778 } {69 101} 779 do_test like-2.101.3 { 780 db eval "SELECT x FROM t3 WHERE y LIKE 'abce%'" 781 } {69 101} 782 do_test like-2.102.1 { 783 db eval "SELECT x FROM t1 WHERE y LIKE 'f%'" 784 } {70 102} 785 do_test like-2.102.2 { 786 db eval "SELECT x FROM t2 WHERE y LIKE 'f%'" 787 } {70 102} 788 do_test like-2.102.3 { 789 db eval "SELECT x FROM t3 WHERE y LIKE 'abcf%'" 790 } {70 102} 791 do_test like-2.103.1 { 792 db eval "SELECT x FROM t1 WHERE y LIKE 'g%'" 793 } {71 103} 794 do_test like-2.103.2 { 795 db eval "SELECT x FROM t2 WHERE y LIKE 'g%'" 796 } {71 103} 797 do_test like-2.103.3 { 798 db eval "SELECT x FROM t3 WHERE y LIKE 'abcg%'" 799 } {71 103} 800 do_test like-2.104.1 { 801 db eval "SELECT x FROM t1 WHERE y LIKE 'h%'" 802 } {72 104} 803 do_test like-2.104.2 { 804 db eval "SELECT x FROM t2 WHERE y LIKE 'h%'" 805 } {72 104} 806 do_test like-2.104.3 { 807 db eval "SELECT x FROM t3 WHERE y LIKE 'abch%'" 808 } {72 104} 809 do_test like-2.105.1 { 810 db eval "SELECT x FROM t1 WHERE y LIKE 'i%'" 811 } {73 105} 812 do_test like-2.105.2 { 813 db eval "SELECT x FROM t2 WHERE y LIKE 'i%'" 814 } {73 105} 815 do_test like-2.105.3 { 816 db eval "SELECT x FROM t3 WHERE y LIKE 'abci%'" 817 } {73 105} 818 do_test like-2.106.1 { 819 db eval "SELECT x FROM t1 WHERE y LIKE 'j%'" 820 } {74 106} 821 do_test like-2.106.2 { 822 db eval "SELECT x FROM t2 WHERE y LIKE 'j%'" 823 } {74 106} 824 do_test like-2.106.3 { 825 db eval "SELECT x FROM t3 WHERE y LIKE 'abcj%'" 826 } {74 106} 827 do_test like-2.107.1 { 828 db eval "SELECT x FROM t1 WHERE y LIKE 'k%'" 829 } {75 107} 830 do_test like-2.107.2 { 831 db eval "SELECT x FROM t2 WHERE y LIKE 'k%'" 832 } {75 107} 833 do_test like-2.107.3 { 834 db eval "SELECT x FROM t3 WHERE y LIKE 'abck%'" 835 } {75 107} 836 do_test like-2.108.1 { 837 db eval "SELECT x FROM t1 WHERE y LIKE 'l%'" 838 } {76 108} 839 do_test like-2.108.2 { 840 db eval "SELECT x FROM t2 WHERE y LIKE 'l%'" 841 } {76 108} 842 do_test like-2.108.3 { 843 db eval "SELECT x FROM t3 WHERE y LIKE 'abcl%'" 844 } {76 108} 845 do_test like-2.109.1 { 846 db eval "SELECT x FROM t1 WHERE y LIKE 'm%'" 847 } {77 109} 848 do_test like-2.109.2 { 849 db eval "SELECT x FROM t2 WHERE y LIKE 'm%'" 850 } {77 109} 851 do_test like-2.109.3 { 852 db eval "SELECT x FROM t3 WHERE y LIKE 'abcm%'" 853 } {77 109} 854 do_test like-2.110.1 { 855 db eval "SELECT x FROM t1 WHERE y LIKE 'n%'" 856 } {78 110} 857 do_test like-2.110.2 { 858 db eval "SELECT x FROM t2 WHERE y LIKE 'n%'" 859 } {78 110} 860 do_test like-2.110.3 { 861 db eval "SELECT x FROM t3 WHERE y LIKE 'abcn%'" 862 } {78 110} 863 do_test like-2.111.1 { 864 db eval "SELECT x FROM t1 WHERE y LIKE 'o%'" 865 } {79 111} 866 do_test like-2.111.2 { 867 db eval "SELECT x FROM t2 WHERE y LIKE 'o%'" 868 } {79 111} 869 do_test like-2.111.3 { 870 db eval "SELECT x FROM t3 WHERE y LIKE 'abco%'" 871 } {79 111} 872 do_test like-2.112.1 { 873 db eval "SELECT x FROM t1 WHERE y LIKE 'p%'" 874 } {80 112} 875 do_test like-2.112.2 { 876 db eval "SELECT x FROM t2 WHERE y LIKE 'p%'" 877 } {80 112} 878 do_test like-2.112.3 { 879 db eval "SELECT x FROM t3 WHERE y LIKE 'abcp%'" 880 } {80 112} 881 do_test like-2.113.1 { 882 db eval "SELECT x FROM t1 WHERE y LIKE 'q%'" 883 } {81 113} 884 do_test like-2.113.2 { 885 db eval "SELECT x FROM t2 WHERE y LIKE 'q%'" 886 } {81 113} 887 do_test like-2.113.3 { 888 db eval "SELECT x FROM t3 WHERE y LIKE 'abcq%'" 889 } {81 113} 890 do_test like-2.114.1 { 891 db eval "SELECT x FROM t1 WHERE y LIKE 'r%'" 892 } {82 114} 893 do_test like-2.114.2 { 894 db eval "SELECT x FROM t2 WHERE y LIKE 'r%'" 895 } {82 114} 896 do_test like-2.114.3 { 897 db eval "SELECT x FROM t3 WHERE y LIKE 'abcr%'" 898 } {82 114} 899 do_test like-2.115.1 { 900 db eval "SELECT x FROM t1 WHERE y LIKE 's%'" 901 } {83 115} 902 do_test like-2.115.2 { 903 db eval "SELECT x FROM t2 WHERE y LIKE 's%'" 904 } {83 115} 905 do_test like-2.115.3 { 906 db eval "SELECT x FROM t3 WHERE y LIKE 'abcs%'" 907 } {83 115} 908 do_test like-2.116.1 { 909 db eval "SELECT x FROM t1 WHERE y LIKE 't%'" 910 } {84 116} 911 do_test like-2.116.2 { 912 db eval "SELECT x FROM t2 WHERE y LIKE 't%'" 913 } {84 116} 914 do_test like-2.116.3 { 915 db eval "SELECT x FROM t3 WHERE y LIKE 'abct%'" 916 } {84 116} 917 do_test like-2.117.1 { 918 db eval "SELECT x FROM t1 WHERE y LIKE 'u%'" 919 } {85 117} 920 do_test like-2.117.2 { 921 db eval "SELECT x FROM t2 WHERE y LIKE 'u%'" 922 } {85 117} 923 do_test like-2.117.3 { 924 db eval "SELECT x FROM t3 WHERE y LIKE 'abcu%'" 925 } {85 117} 926 do_test like-2.118.1 { 927 db eval "SELECT x FROM t1 WHERE y LIKE 'v%'" 928 } {86 118} 929 do_test like-2.118.2 { 930 db eval "SELECT x FROM t2 WHERE y LIKE 'v%'" 931 } {86 118} 932 do_test like-2.118.3 { 933 db eval "SELECT x FROM t3 WHERE y LIKE 'abcv%'" 934 } {86 118} 935 do_test like-2.119.1 { 936 db eval "SELECT x FROM t1 WHERE y LIKE 'w%'" 937 } {87 119} 938 do_test like-2.119.2 { 939 db eval "SELECT x FROM t2 WHERE y LIKE 'w%'" 940 } {87 119} 941 do_test like-2.119.3 { 942 db eval "SELECT x FROM t3 WHERE y LIKE 'abcw%'" 943 } {87 119} 944 do_test like-2.120.1 { 945 db eval "SELECT x FROM t1 WHERE y LIKE 'x%'" 946 } {88 120} 947 do_test like-2.120.2 { 948 db eval "SELECT x FROM t2 WHERE y LIKE 'x%'" 949 } {88 120} 950 do_test like-2.120.3 { 951 db eval "SELECT x FROM t3 WHERE y LIKE 'abcx%'" 952 } {88 120} 953 do_test like-2.121.1 { 954 db eval "SELECT x FROM t1 WHERE y LIKE 'y%'" 955 } {89 121} 956 do_test like-2.121.2 { 957 db eval "SELECT x FROM t2 WHERE y LIKE 'y%'" 958 } {89 121} 959 do_test like-2.121.3 { 960 db eval "SELECT x FROM t3 WHERE y LIKE 'abcy%'" 961 } {89 121} 962 do_test like-2.122.1 { 963 db eval "SELECT x FROM t1 WHERE y LIKE 'z%'" 964 } {90 122} 965 do_test like-2.122.2 { 966 db eval "SELECT x FROM t2 WHERE y LIKE 'z%'" 967 } {90 122} 968 do_test like-2.122.3 { 969 db eval "SELECT x FROM t3 WHERE y LIKE 'abcz%'" 970 } {90 122} 971 do_test like-2.123.1 { 972 db eval "SELECT x FROM t1 WHERE y LIKE '\173%'" 973 } {123} 974 do_test like-2.123.2 { 975 db eval "SELECT x FROM t2 WHERE y LIKE '\173%'" 976 } {123} 977 do_test like-2.123.3 { 978 db eval "SELECT x FROM t3 WHERE y LIKE 'abc\173%'" 979 } {123} 980 do_test like-2.124.1 { 981 db eval "SELECT x FROM t1 WHERE y LIKE '|%'" 982 } {124} 983 do_test like-2.124.2 { 984 db eval "SELECT x FROM t2 WHERE y LIKE '|%'" 985 } {124} 986 do_test like-2.124.3 { 987 db eval "SELECT x FROM t3 WHERE y LIKE 'abc|%'" 988 } {124} 989 do_test like-2.125.1 { 990 db eval "SELECT x FROM t1 WHERE y LIKE '\175%'" 991 } {125} 992 do_test like-2.125.2 { 993 db eval "SELECT x FROM t2 WHERE y LIKE '\175%'" 994 } {125} 995 do_test like-2.125.3 { 996 db eval "SELECT x FROM t3 WHERE y LIKE 'abc\175%'" 997 } {125} 998 do_test like-2.126.1 { 999 db eval "SELECT x FROM t1 WHERE y LIKE '~%'" 1000 } {126} 1001 do_test like-2.126.2 { 1002 db eval "SELECT x FROM t2 WHERE y LIKE '~%'" 1003 } {126} 1004 do_test like-2.126.3 { 1005 db eval "SELECT x FROM t3 WHERE y LIKE 'abc~%'" 1006 } {126} 1007 1008 1009 finish_test 1010