blob: 4fd16420ade772538e9e351566bf9b3bdafda474 [file] [log] [blame]
drh02a50b72008-05-26 18:33:40 +00001# 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