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