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