• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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