xref: /sqlite-3.40.0/test/fuzzer1.test (revision 4965ebce)
1# 2011 March 25
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 TCL interface to the
12# SQLite library.
13#
14# The focus of the tests is the word-fuzzer virtual table.
15#
16
17set testdir [file dirname $argv0]
18source $testdir/tester.tcl
19
20ifcapable !vtab {
21  finish_test
22  return
23}
24
25set ::testprefix fuzzer1
26
27register_fuzzer_module db
28
29
30
31# Check configuration errors.
32#
33do_catchsql_test fuzzer1-1.1 {
34  CREATE VIRTUAL TABLE f USING fuzzer;
35} {1 {fuzzer: wrong number of CREATE VIRTUAL TABLE arguments}}
36
37do_catchsql_test fuzzer1-1.2 {
38  CREATE VIRTUAL TABLE f USING fuzzer(one, two);
39} {1 {fuzzer: wrong number of CREATE VIRTUAL TABLE arguments}}
40
41do_catchsql_test fuzzer1-1.3 {
42  CREATE VIRTUAL TABLE f USING fuzzer(nosuchtable);
43} {1 {fuzzer: no such table: main.nosuchtable}}
44
45do_catchsql_test fuzzer1-1.4 {
46  CREATE TEMP TABLE nosuchtable(a, b, c, d);
47  CREATE VIRTUAL TABLE f USING fuzzer(nosuchtable);
48} {1 {fuzzer: no such table: main.nosuchtable}}
49
50do_catchsql_test fuzzer1-1.5 {
51  DROP TABLE temp.nosuchtable;
52  CREATE TABLE nosuchtable(a, b, c, d);
53  CREATE VIRTUAL TABLE temp.f USING fuzzer(nosuchtable);
54} {1 {fuzzer: no such table: temp.nosuchtable}}
55
56do_catchsql_test fuzzer1-1.6 {
57  DROP TABLE IF EXISTS f_rules;
58  CREATE TABLE f_rules(a, b, c);
59  CREATE VIRTUAL TABLE f USING fuzzer(f_rules);
60} {1 {fuzzer: f_rules has 3 columns, expected 4}}
61
62do_catchsql_test fuzzer1-1.7 {
63  DROP TABLE IF EXISTS f_rules;
64  CREATE TABLE f_rules(a, b, c, d, e);
65  CREATE VIRTUAL TABLE f USING fuzzer(f_rules);
66} {1 {fuzzer: f_rules has 5 columns, expected 4}}
67
68
69do_execsql_test fuzzer1-2.1 {
70  CREATE TABLE f1_rules(ruleset DEFAULT 0, cfrom, cto, cost);
71  INSERT INTO f1_rules(cfrom, cto, cost) VALUES('e','a',1);
72  INSERT INTO f1_rules(cfrom, cto, cost) VALUES('a','e',10);
73  INSERT INTO f1_rules(cfrom, cto, cost) VALUES('e','o',100);
74
75  CREATE VIRTUAL TABLE f1 USING fuzzer(f1_rules);
76} {}
77
78do_execsql_test fuzzer1-2.1 {
79    SELECT word, distance FROM f1 WHERE word MATCH 'abcde'
80} {
81  abcde 0   abcda 1   ebcde 10
82  ebcda 11  abcdo 100 ebcdo 110
83  obcde 110 obcda 111 obcdo 210
84}
85
86do_execsql_test fuzzer1-2.4 {
87  INSERT INTO f1_rules(ruleset, cfrom, cto, cost) VALUES(1,'b','x',1);
88  INSERT INTO f1_rules(ruleset, cfrom, cto, cost) VALUES(1,'d','y',10);
89  INSERT INTO f1_rules(ruleset, cfrom, cto, cost) VALUES(1,'y','z',100);
90
91  DROP TABLE f1;
92  CREATE VIRTUAL TABLE f1 USING fuzzer(f1_rules);
93} {}
94
95do_execsql_test fuzzer1-2.5 {
96  SELECT word, distance FROM f1 WHERE word MATCH 'abcde'
97} {
98  abcde 0   abcda 1   ebcde 10
99  ebcda 11  abcdo 100 ebcdo 110
100  obcde 110 obcda 111 obcdo 210
101}
102
103do_execsql_test fuzzer1-2.6 {
104  SELECT word, distance FROM f1 WHERE word MATCH 'abcde' AND ruleset=0
105} {
106  abcde 0   abcda 1   ebcde 10
107  ebcda 11  abcdo 100 ebcdo 110
108  obcde 110 obcda 111 obcdo 210
109}
110
111do_execsql_test fuzzer1-2.7 {
112  SELECT word, distance FROM f1 WHERE word MATCH 'abcde' AND ruleset=1
113} {
114  abcde 0 axcde 1 abcye 10
115  axcye 11 abcze 110 axcze 111
116}
117
118do_test fuzzer1-1.8 {
119  db eval {
120    SELECT word, distance FROM f1 WHERE word MATCH 'abcde' AND distance<100
121  }
122} {abcde 0 abcda 1 ebcde 10 ebcda 11}
123do_test fuzzer1-1.9 {
124  db eval {
125    SELECT word, distance FROM f1 WHERE word MATCH 'abcde' AND distance<=100
126  }
127} {abcde 0 abcda 1 ebcde 10 ebcda 11 abcdo 100}
128do_test fuzzer1-1.10 {
129  db eval {
130    SELECT word, distance FROM f1
131     WHERE word MATCH 'abcde' AND distance<100 AND ruleset=0
132  }
133} {abcde 0 abcda 1 ebcde 10 ebcda 11}
134do_test fuzzer1-1.11 {
135  db eval {
136    SELECT word, distance FROM f1
137    WHERE word MATCH 'abcde' AND distance<=100 AND ruleset=0
138  }
139} {abcde 0 abcda 1 ebcde 10 ebcda 11 abcdo 100}
140do_test fuzzer1-1.12 {
141  db eval {
142    SELECT word, distance FROM f1
143     WHERE word MATCH 'abcde' AND distance<11 AND ruleset=1
144  }
145} {abcde 0 axcde 1 abcye 10}
146do_test fuzzer1-1.13 {
147  db eval {
148    SELECT word, distance FROM f1
149    WHERE word MATCH 'abcde' AND distance<=11 AND ruleset=1
150  }
151} {abcde 0 axcde 1 abcye 10 axcye 11}
152do_test fuzzer1-1.14 {
153  catchsql {INSERT INTO f1 VALUES(1)}
154} {1 {table f1 may not be modified}}
155do_test fuzzer1-1.15 {
156  catchsql {DELETE FROM f1}
157} {1 {table f1 may not be modified}}
158do_test fuzzer1-1.16 {
159  catchsql {UPDATE f1 SET rowid=rowid+10000}
160} {1 {table f1 may not be modified}}
161
162
163do_test fuzzer1-2.0 {
164  execsql {
165    -- costs based on English letter frequencies
166    CREATE TEMP TABLE f2_rules(ruleset DEFAULT 0, cFrom, cTo, cost);
167    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('a','e',24);
168    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('a','o',47);
169    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('a','u',50);
170    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('e','a',23);
171    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('e','i',33);
172    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('e','o',37);
173    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('i','e',33);
174    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('i','y',33);
175    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('o','a',41);
176    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('o','e',46);
177    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('o','u',57);
178    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('u','o',58);
179    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('y','i',33);
180
181    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('t','th',70);
182    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('th','t',66);
183
184    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('a','',84);
185    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','b',106);
186    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('b','',106);
187    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','c',94);
188    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('c','',94);
189    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','d',89);
190    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('d','',89);
191    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','e',83);
192    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('e','',83);
193    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','f',97);
194    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('f','',97);
195    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','g',99);
196    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('g','',99);
197    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','h',86);
198    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('h','',86);
199    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','i',85);
200    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('i','',85);
201    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','j',120);
202    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('j','',120);
203    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','k',120);
204    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('k','',120);
205    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','l',89);
206    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('l','',89);
207    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','m',96);
208    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('m','',96);
209    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','n',85);
210    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('n','',85);
211    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','o',85);
212    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('o','',85);
213    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','p',100);
214    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('p','',100);
215    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','q',120);
216    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('q','',120);
217    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','r',86);
218    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('r','',86);
219    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','s',86);
220    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('s','',86);
221    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','t',84);
222    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('t','',84);
223    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','u',94);
224    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('u','',94);
225    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','v',120);
226    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('v','',120);
227    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','w',96);
228    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('w','',96);
229    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','x',120);
230    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('x','',120);
231    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','y',100);
232    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('y','',100);
233    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('','z',120);
234    INSERT INTO f2_rules(cFrom,cTo,cost) VALUES('z','',120);
235    INSERT INTO f2_rules(ruleset,cFrom,cTo,cost)
236      SELECT 1, cFrom, cTo, 100 FROM f2_rules WHERE ruleset=0;
237    INSERT INTO f2_rules(ruleset,cFrom,cTo,cost)
238      SELECT 2, cFrom, cTo, 200-cost FROM f2_rules WHERE ruleset=0;
239    INSERT INTO f2_rules(ruleset,cFrom,cTo,cost)
240      SELECT 3, cFrom, cTo, cost FROM f2_rules WHERE ruleset=0;
241    INSERT INTO f2_rules(ruleset,cFrom,cTo,cost)
242      VALUES(3, 'mallard','duck',50),
243            (3, 'duck', 'mallard', 50),
244            (3, 'rock', 'stone', 50),
245            (3, 'stone', 'rock', 50);
246
247
248    CREATE VIRTUAL TABLE temp.f2 USING fuzzer(f2_rules);
249
250    -- Street names for the 28269 ZIPCODE.
251    --
252    CREATE TEMP TABLE streetname(n TEXT UNIQUE);
253    INSERT INTO streetname VALUES('abbotsinch');
254    INSERT INTO streetname VALUES('abbottsgate');
255    INSERT INTO streetname VALUES('abbywood');
256    INSERT INTO streetname VALUES('abner');
257    INSERT INTO streetname VALUES('acacia ridge');
258    INSERT INTO streetname VALUES('acorn creek');
259    INSERT INTO streetname VALUES('acorn forest');
260    INSERT INTO streetname VALUES('adel');
261    INSERT INTO streetname VALUES('ainslie');
262    INSERT INTO streetname VALUES('airways');
263    INSERT INTO streetname VALUES('alabaster');
264    INSERT INTO streetname VALUES('alba');
265    INSERT INTO streetname VALUES('albertine');
266    INSERT INTO streetname VALUES('alden glen');
267    INSERT INTO streetname VALUES('alderson');
268    INSERT INTO streetname VALUES('allen');
269    INSERT INTO streetname VALUES('allen a brown');
270    INSERT INTO streetname VALUES('allness glen');
271    INSERT INTO streetname VALUES('aloysia');
272    INSERT INTO streetname VALUES('alpine');
273    INSERT INTO streetname VALUES('alwyn');
274    INSERT INTO streetname VALUES('amaranthus');
275    INSERT INTO streetname VALUES('amber glen');
276    INSERT INTO streetname VALUES('amber leigh way');
277    INSERT INTO streetname VALUES('amber meadows');
278    INSERT INTO streetname VALUES('amberway');
279    INSERT INTO streetname VALUES('ame');
280    INSERT INTO streetname VALUES('amesbury hill');
281    INSERT INTO streetname VALUES('anderson');
282    INSERT INTO streetname VALUES('andrew thomas');
283    INSERT INTO streetname VALUES('anduin falls');
284    INSERT INTO streetname VALUES('ankeny');
285    INSERT INTO streetname VALUES('annandale');
286    INSERT INTO streetname VALUES('annbick');
287    INSERT INTO streetname VALUES('antelope');
288    INSERT INTO streetname VALUES('anzack');
289    INSERT INTO streetname VALUES('apple glen');
290    INSERT INTO streetname VALUES('applevalley');
291    INSERT INTO streetname VALUES('appley mead');
292    INSERT INTO streetname VALUES('aragorn');
293    INSERT INTO streetname VALUES('arbor creek');
294    INSERT INTO streetname VALUES('arbor day');
295    INSERT INTO streetname VALUES('arbor meadows');
296    INSERT INTO streetname VALUES('arbor spring');
297    INSERT INTO streetname VALUES('arborview');
298    INSERT INTO streetname VALUES('arklow');
299    INSERT INTO streetname VALUES('armitage');
300    INSERT INTO streetname VALUES('arvin');
301    INSERT INTO streetname VALUES('ash cove');
302    INSERT INTO streetname VALUES('ashford leigh');
303    INSERT INTO streetname VALUES('ashmont');
304    INSERT INTO streetname VALUES('atlas');
305    INSERT INTO streetname VALUES('atwater');
306    INSERT INTO streetname VALUES('auburn hill');
307    INSERT INTO streetname VALUES('aulton link');
308    INSERT INTO streetname VALUES('austin dekota');
309    INSERT INTO streetname VALUES('austin knoll');
310    INSERT INTO streetname VALUES('auten');
311    INSERT INTO streetname VALUES('autumn harvest');
312    INSERT INTO streetname VALUES('autumn oak');
313    INSERT INTO streetname VALUES('autumn ridge');
314    INSERT INTO streetname VALUES('avalon forest');
315    INSERT INTO streetname VALUES('avalon loop');
316    INSERT INTO streetname VALUES('avon farm');
317    INSERT INTO streetname VALUES('avonhurst');
318    INSERT INTO streetname VALUES('avonlea');
319    INSERT INTO streetname VALUES('aynrand');
320    INSERT INTO streetname VALUES('azure valley');
321    INSERT INTO streetname VALUES('baberton');
322    INSERT INTO streetname VALUES('baffin');
323    INSERT INTO streetname VALUES('baggins');
324    INSERT INTO streetname VALUES('balata');
325    INSERT INTO streetname VALUES('ballantray');
326    INSERT INTO streetname VALUES('ballston');
327    INSERT INTO streetname VALUES('balsam tree');
328    INSERT INTO streetname VALUES('bambi');
329    INSERT INTO streetname VALUES('banwell');
330    INSERT INTO streetname VALUES('barbee');
331    INSERT INTO streetname VALUES('barefoot forest');
332    INSERT INTO streetname VALUES('barnview');
333    INSERT INTO streetname VALUES('baroda');
334    INSERT INTO streetname VALUES('barson');
335    INSERT INTO streetname VALUES('baskerville');
336    INSERT INTO streetname VALUES('battle creek');
337    INSERT INTO streetname VALUES('baucom');
338    INSERT INTO streetname VALUES('bay pines');
339    INSERT INTO streetname VALUES('beaker');
340    INSERT INTO streetname VALUES('beard');
341    INSERT INTO streetname VALUES('beardsley');
342    INSERT INTO streetname VALUES('bearoak');
343    INSERT INTO streetname VALUES('beauvista');
344    INSERT INTO streetname VALUES('beaver creek');
345    INSERT INTO streetname VALUES('beaver hollow');
346    INSERT INTO streetname VALUES('bedlington');
347    INSERT INTO streetname VALUES('beech cove');
348    INSERT INTO streetname VALUES('beech crest');
349    INSERT INTO streetname VALUES('beith');
350    INSERT INTO streetname VALUES('bell glen');
351    INSERT INTO streetname VALUES('bellmore');
352    INSERT INTO streetname VALUES('bells mill');
353    INSERT INTO streetname VALUES('bellville');
354    INSERT INTO streetname VALUES('belmar place');
355    INSERT INTO streetname VALUES('bembridge');
356    INSERT INTO streetname VALUES('bennett neely');
357    INSERT INTO streetname VALUES('bentgrass run');
358    INSERT INTO streetname VALUES('benthaven');
359    INSERT INTO streetname VALUES('bernardy');
360    INSERT INTO streetname VALUES('bernbrook shadow');
361    INSERT INTO streetname VALUES('berrybrook');
362    INSERT INTO streetname VALUES('berrybush');
363    INSERT INTO streetname VALUES('berwick');
364    INSERT INTO streetname VALUES('betterton');
365    INSERT INTO streetname VALUES('bickham');
366    INSERT INTO streetname VALUES('billingham');
367    INSERT INTO streetname VALUES('birchcroft');
368    INSERT INTO streetname VALUES('birchstone');
369    INSERT INTO streetname VALUES('birdwell');
370    INSERT INTO streetname VALUES('bisaner');
371    INSERT INTO streetname VALUES('bitterbush');
372    INSERT INTO streetname VALUES('bitterroot');
373    INSERT INTO streetname VALUES('black fox');
374    INSERT INTO streetname VALUES('black maple');
375    INSERT INTO streetname VALUES('black trail');
376    INSERT INTO streetname VALUES('blackbird');
377    INSERT INTO streetname VALUES('blake a dare');
378    INSERT INTO streetname VALUES('blasdell');
379    INSERT INTO streetname VALUES('blue aster');
380    INSERT INTO streetname VALUES('blue finch');
381    INSERT INTO streetname VALUES('blue lilac');
382    INSERT INTO streetname VALUES('blue sky');
383    INSERT INTO streetname VALUES('blue tick');
384    INSERT INTO streetname VALUES('bob beatty');
385    INSERT INTO streetname VALUES('bobcat');
386    INSERT INTO streetname VALUES('bolton');
387    INSERT INTO streetname VALUES('boomerang');
388    INSERT INTO streetname VALUES('boulder');
389    INSERT INTO streetname VALUES('boxer');
390    INSERT INTO streetname VALUES('boxmeer');
391    INSERT INTO streetname VALUES('brachnell view');
392    INSERT INTO streetname VALUES('bradford lake');
393    INSERT INTO streetname VALUES('bradwell');
394    INSERT INTO streetname VALUES('brady');
395    INSERT INTO streetname VALUES('braids bend');
396    INSERT INTO streetname VALUES('bralers');
397    INSERT INTO streetname VALUES('brandie glen');
398    INSERT INTO streetname VALUES('brandy ridge');
399    INSERT INTO streetname VALUES('brandybuck');
400    INSERT INTO streetname VALUES('branthurst');
401    INSERT INTO streetname VALUES('brassy creek');
402    INSERT INTO streetname VALUES('brathay');
403    INSERT INTO streetname VALUES('brawer farm');
404    INSERT INTO streetname VALUES('breezy morn');
405    INSERT INTO streetname VALUES('brenda');
406    INSERT INTO streetname VALUES('brenly');
407    INSERT INTO streetname VALUES('brenock');
408    INSERT INTO streetname VALUES('brianwood');
409    INSERT INTO streetname VALUES('briar rose');
410    INSERT INTO streetname VALUES('briarcrest');
411    INSERT INTO streetname VALUES('briarthorne');
412    INSERT INTO streetname VALUES('brick dust');
413    INSERT INTO streetname VALUES('bridgepath');
414    INSERT INTO streetname VALUES('bridle ridge');
415    INSERT INTO streetname VALUES('briggs');
416    INSERT INTO streetname VALUES('brightleaf');
417    INSERT INTO streetname VALUES('brigstock');
418    INSERT INTO streetname VALUES('broad ridge');
419    INSERT INTO streetname VALUES('brock');
420    INSERT INTO streetname VALUES('brockhampton');
421    INSERT INTO streetname VALUES('broken pine');
422    INSERT INTO streetname VALUES('brompton');
423    INSERT INTO streetname VALUES('brook falls');
424    INSERT INTO streetname VALUES('brookings');
425    INSERT INTO streetname VALUES('browne');
426    INSERT INTO streetname VALUES('brownes creek');
427    INSERT INTO streetname VALUES('brownes ferry');
428    INSERT INTO streetname VALUES('brownestone view');
429    INSERT INTO streetname VALUES('brumit');
430    INSERT INTO streetname VALUES('bryn athyn');
431    INSERT INTO streetname VALUES('buck');
432    INSERT INTO streetname VALUES('bucklebury');
433    INSERT INTO streetname VALUES('buckminister');
434    INSERT INTO streetname VALUES('buckspring');
435    INSERT INTO streetname VALUES('burch');
436    INSERT INTO streetname VALUES('burch shire');
437    INSERT INTO streetname VALUES('burkston');
438    INSERT INTO streetname VALUES('burmith');
439    INSERT INTO streetname VALUES('burnaby');
440    INSERT INTO streetname VALUES('butterfly');
441    INSERT INTO streetname VALUES('cabin creek');
442    INSERT INTO streetname VALUES('cairns mill');
443    INSERT INTO streetname VALUES('callender');
444    INSERT INTO streetname VALUES('cambellton');
445    INSERT INTO streetname VALUES('cambridge bay');
446    INSERT INTO streetname VALUES('canary');
447    INSERT INTO streetname VALUES('canbury');
448    INSERT INTO streetname VALUES('candle leaf');
449    INSERT INTO streetname VALUES('canipe');
450    INSERT INTO streetname VALUES('canipe farm');
451    INSERT INTO streetname VALUES('cannon');
452    INSERT INTO streetname VALUES('canopy');
453    INSERT INTO streetname VALUES('canso');
454    INSERT INTO streetname VALUES('canterbrook');
455    INSERT INTO streetname VALUES('cardinal glen');
456    INSERT INTO streetname VALUES('cardinal point');
457    INSERT INTO streetname VALUES('cardinals nest');
458    INSERT INTO streetname VALUES('carlota');
459    INSERT INTO streetname VALUES('carmathen');
460    INSERT INTO streetname VALUES('carver');
461    INSERT INTO streetname VALUES('carver pond');
462    INSERT INTO streetname VALUES('casa loma');
463    INSERT INTO streetname VALUES('caselton');
464    INSERT INTO streetname VALUES('castello');
465    INSERT INTO streetname VALUES('castle ridge');
466    INSERT INTO streetname VALUES('castleglen');
467    INSERT INTO streetname VALUES('castlemaine');
468    INSERT INTO streetname VALUES('cavett');
469    INSERT INTO streetname VALUES('caymus');
470    INSERT INTO streetname VALUES('cedardale ridge');
471    INSERT INTO streetname VALUES('cedarhurst');
472    INSERT INTO streetname VALUES('cemkey way');
473    INSERT INTO streetname VALUES('cerise');
474    INSERT INTO streetname VALUES('chaceview');
475    INSERT INTO streetname VALUES('chadsworth');
476    INSERT INTO streetname VALUES('chadwell');
477    INSERT INTO streetname VALUES('champions crest');
478    INSERT INTO streetname VALUES('chandler haven');
479    INSERT INTO streetname VALUES('chapel crossing');
480    INSERT INTO streetname VALUES('chapel ridge');
481    INSERT INTO streetname VALUES('charles crawford');
482    INSERT INTO streetname VALUES('charminster');
483    INSERT INTO streetname VALUES('chasewind');
484    INSERT INTO streetname VALUES('chavel');
485    INSERT INTO streetname VALUES('chelsea jade');
486    INSERT INTO streetname VALUES('chestnut knoll');
487    INSERT INTO streetname VALUES('cheviot');
488    INSERT INTO streetname VALUES('chickadee');
489    INSERT INTO streetname VALUES('chidley');
490    INSERT INTO streetname VALUES('chimney ridge');
491    INSERT INTO streetname VALUES('chimney springs');
492    INSERT INTO streetname VALUES('chinaberry');
493    INSERT INTO streetname VALUES('chinemist');
494    INSERT INTO streetname VALUES('chinquapin');
495    INSERT INTO streetname VALUES('chiswell');
496    INSERT INTO streetname VALUES('christenbury');
497    INSERT INTO streetname VALUES('christenbury hills');
498    INSERT INTO streetname VALUES('churchill');
499    INSERT INTO streetname VALUES('cindy');
500    INSERT INTO streetname VALUES('cinnamon teal');
501    INSERT INTO streetname VALUES('citadel');
502    INSERT INTO streetname VALUES('clare olivia');
503    INSERT INTO streetname VALUES('clarke creek');
504    INSERT INTO streetname VALUES('clarke ridge');
505    INSERT INTO streetname VALUES('clear day');
506    INSERT INTO streetname VALUES('clear stream');
507    INSERT INTO streetname VALUES('cleve brown');
508    INSERT INTO streetname VALUES('cliff cameron');
509    INSERT INTO streetname VALUES('cliffvale');
510    INSERT INTO streetname VALUES('cloverside');
511    INSERT INTO streetname VALUES('clymer');
512    INSERT INTO streetname VALUES('coatbridge');
513    INSERT INTO streetname VALUES('cobble glen');
514    INSERT INTO streetname VALUES('cochran farm');
515    INSERT INTO streetname VALUES('cochrane');
516    INSERT INTO streetname VALUES('coleridge');
517    INSERT INTO streetname VALUES('coleshire');
518    INSERT INTO streetname VALUES('collins');
519    INSERT INTO streetname VALUES('colvard');
520    INSERT INTO streetname VALUES('colvard park');
521    INSERT INTO streetname VALUES('condor');
522    INSERT INTO streetname VALUES('conner ridge');
523    INSERT INTO streetname VALUES('connery');
524    INSERT INTO streetname VALUES('cooper run');
525    INSERT INTO streetname VALUES('coopers ridge');
526    INSERT INTO streetname VALUES('copper hill');
527    INSERT INTO streetname VALUES('coppermine');
528    INSERT INTO streetname VALUES('cornelia');
529    INSERT INTO streetname VALUES('corner');
530    INSERT INTO streetname VALUES('cornerstone');
531    INSERT INTO streetname VALUES('cottage oaks');
532    INSERT INTO streetname VALUES('cougar');
533    INSERT INTO streetname VALUES('coves end');
534    INSERT INTO streetname VALUES('cragland');
535    INSERT INTO streetname VALUES('crail');
536    INSERT INTO streetname VALUES('cranberry nook');
537    INSERT INTO streetname VALUES('crawford brook');
538    INSERT INTO streetname VALUES('crayton');
539    INSERT INTO streetname VALUES('creek breeze');
540    INSERT INTO streetname VALUES('crescent ridge');
541    INSERT INTO streetname VALUES('crescent view');
542    INSERT INTO streetname VALUES('cresta');
543    INSERT INTO streetname VALUES('crestfield');
544    INSERT INTO streetname VALUES('crestland');
545    INSERT INTO streetname VALUES('crestwick');
546    INSERT INTO streetname VALUES('crisfield');
547    INSERT INTO streetname VALUES('crisp wood');
548    INSERT INTO streetname VALUES('croft haven');
549    INSERT INTO streetname VALUES('crofton springs');
550    INSERT INTO streetname VALUES('cross');
551    INSERT INTO streetname VALUES('crosspoint center');
552    INSERT INTO streetname VALUES('crownvista');
553    INSERT INTO streetname VALUES('crystal arms');
554    INSERT INTO streetname VALUES('crystal crest');
555    INSERT INTO streetname VALUES('crystal leaf');
556    INSERT INTO streetname VALUES('cunningham park');
557    INSERT INTO streetname VALUES('cypress pond');
558    INSERT INTO streetname VALUES('daffodil');
559    INSERT INTO streetname VALUES('daisyfield');
560    INSERT INTO streetname VALUES('dalecrest');
561    INSERT INTO streetname VALUES('dannelly park');
562    INSERT INTO streetname VALUES('daphne');
563    INSERT INTO streetname VALUES('daria');
564    INSERT INTO streetname VALUES('dartmouth');
565    INSERT INTO streetname VALUES('datha');
566    INSERT INTO streetname VALUES('david cox');
567    INSERT INTO streetname VALUES('davis');
568    INSERT INTO streetname VALUES('davis crossing');
569    INSERT INTO streetname VALUES('davis lake');
570    INSERT INTO streetname VALUES('davis ridge');
571    INSERT INTO streetname VALUES('dawnmist');
572    INSERT INTO streetname VALUES('daybreak');
573    INSERT INTO streetname VALUES('dearmon');
574    INSERT INTO streetname VALUES('dearview');
575    INSERT INTO streetname VALUES('deaton hill');
576    INSERT INTO streetname VALUES('deer cross');
577    INSERT INTO streetname VALUES('deerton');
578    INSERT INTO streetname VALUES('degrasse');
579    INSERT INTO streetname VALUES('delamere');
580    INSERT INTO streetname VALUES('dellfield');
581    INSERT INTO streetname VALUES('dellinger');
582    INSERT INTO streetname VALUES('demington');
583    INSERT INTO streetname VALUES('denmeade');
584    INSERT INTO streetname VALUES('derita');
585    INSERT INTO streetname VALUES('derita woods');
586    INSERT INTO streetname VALUES('deruyter');
587    INSERT INTO streetname VALUES('dervish');
588    INSERT INTO streetname VALUES('devas');
589    INSERT INTO streetname VALUES('devon croft');
590    INSERT INTO streetname VALUES('devonbridge');
591    INSERT INTO streetname VALUES('devongate');
592    INSERT INTO streetname VALUES('devonhill');
593    INSERT INTO streetname VALUES('dewmorn');
594    INSERT INTO streetname VALUES('distribution center');
595    INSERT INTO streetname VALUES('dominion crest');
596    INSERT INTO streetname VALUES('dominion green');
597    INSERT INTO streetname VALUES('dominion village');
598    INSERT INTO streetname VALUES('dorshire');
599    INSERT INTO streetname VALUES('double creek crossing');
600    INSERT INTO streetname VALUES('dow');
601    INSERT INTO streetname VALUES('downfield wood');
602    INSERT INTO streetname VALUES('downing creek');
603    INSERT INTO streetname VALUES('driscol');
604    INSERT INTO streetname VALUES('driwood');
605    INSERT INTO streetname VALUES('dry brook');
606    INSERT INTO streetname VALUES('dumont');
607    INSERT INTO streetname VALUES('dunblane');
608    INSERT INTO streetname VALUES('dunfield');
609    INSERT INTO streetname VALUES('dunoon');
610    INSERT INTO streetname VALUES('dunslow');
611    INSERT INTO streetname VALUES('dunstaff');
612    INSERT INTO streetname VALUES('durham');
613    INSERT INTO streetname VALUES('durston');
614    INSERT INTO streetname VALUES('dusty cedar');
615    INSERT INTO streetname VALUES('dusty trail');
616    INSERT INTO streetname VALUES('dutchess');
617    INSERT INTO streetname VALUES('duxford');
618    INSERT INTO streetname VALUES('eagle creek');
619    INSERT INTO streetname VALUES('eagles field');
620    INSERT INTO streetname VALUES('eargle');
621    INSERT INTO streetname VALUES('earlswood');
622    INSERT INTO streetname VALUES('early mist');
623    INSERT INTO streetname VALUES('earthenware');
624    INSERT INTO streetname VALUES('eastfield park');
625    INSERT INTO streetname VALUES('eastfield village');
626    INSERT INTO streetname VALUES('easy');
627    INSERT INTO streetname VALUES('eben');
628    INSERT INTO streetname VALUES('edgepine');
629    INSERT INTO streetname VALUES('edgewier');
630    INSERT INTO streetname VALUES('edinburgh');
631    INSERT INTO streetname VALUES('edinmeadow');
632    INSERT INTO streetname VALUES('edmonton');
633    INSERT INTO streetname VALUES('edwin jones');
634    INSERT INTO streetname VALUES('elberon');
635    INSERT INTO streetname VALUES('elderslie');
636    INSERT INTO streetname VALUES('elementary view');
637    INSERT INTO streetname VALUES('elendil');
638    INSERT INTO streetname VALUES('elizabeth');
639    INSERT INTO streetname VALUES('elm cove');
640    INSERT INTO streetname VALUES('elrond');
641    INSERT INTO streetname VALUES('elsenham');
642    INSERT INTO streetname VALUES('elven');
643    INSERT INTO streetname VALUES('emma lynn');
644    INSERT INTO streetname VALUES('english setter');
645    INSERT INTO streetname VALUES('enoch');
646    INSERT INTO streetname VALUES('equipment');
647    INSERT INTO streetname VALUES('ernest russell');
648    INSERT INTO streetname VALUES('ernie');
649    INSERT INTO streetname VALUES('esmeralda');
650    INSERT INTO streetname VALUES('evergreen hollow');
651    INSERT INTO streetname VALUES('eversfield');
652    INSERT INTO streetname VALUES('ewen');
653    INSERT INTO streetname VALUES('ewert cut');
654    INSERT INTO streetname VALUES('exbury');
655    INSERT INTO streetname VALUES('fair grounds park');
656    INSERT INTO streetname VALUES('fairbourne');
657    INSERT INTO streetname VALUES('fairchase');
658    INSERT INTO streetname VALUES('faircreek');
659    INSERT INTO streetname VALUES('fairglen');
660    INSERT INTO streetname VALUES('fairlea');
661    INSERT INTO streetname VALUES('fairmead');
662    INSERT INTO streetname VALUES('fairmeadows');
663    INSERT INTO streetname VALUES('fairstone');
664    INSERT INTO streetname VALUES('fairvista');
665    INSERT INTO streetname VALUES('fairway point');
666    INSERT INTO streetname VALUES('falconcrest');
667    INSERT INTO streetname VALUES('falls ridge');
668    INSERT INTO streetname VALUES('falmouth');
669    INSERT INTO streetname VALUES('far west');
670    INSERT INTO streetname VALUES('farlow');
671    INSERT INTO streetname VALUES('farris wheel');
672    INSERT INTO streetname VALUES('fawndale');
673    INSERT INTO streetname VALUES('feather bend');
674    INSERT INTO streetname VALUES('fernledge');
675    INSERT INTO streetname VALUES('fernmoss');
676    INSERT INTO streetname VALUES('ferrell commons');
677    INSERT INTO streetname VALUES('fieldstone');
678    INSERT INTO streetname VALUES('fillian');
679    INSERT INTO streetname VALUES('fincher');
680    INSERT INTO streetname VALUES('foggy meadow');
681    INSERT INTO streetname VALUES('fordyce');
682    INSERT INTO streetname VALUES('forest grove');
683    INSERT INTO streetname VALUES('forest path');
684    INSERT INTO streetname VALUES('forestridge commons');
685    INSERT INTO streetname VALUES('forestrock');
686    INSERT INTO streetname VALUES('fortunes ridge');
687    INSERT INTO streetname VALUES('founders club');
688    INSERT INTO streetname VALUES('fountaingrass');
689    INSERT INTO streetname VALUES('fox chase');
690    INSERT INTO streetname VALUES('fox glen');
691    INSERT INTO streetname VALUES('fox hill');
692    INSERT INTO streetname VALUES('fox point');
693    INSERT INTO streetname VALUES('fox trot');
694    INSERT INTO streetname VALUES('foxbriar');
695    INSERT INTO streetname VALUES('frank little');
696    INSERT INTO streetname VALUES('franzia');
697    INSERT INTO streetname VALUES('french woods');
698    INSERT INTO streetname VALUES('frostmoor');
699    INSERT INTO streetname VALUES('frye');
700    INSERT INTO streetname VALUES('furlong');
701    INSERT INTO streetname VALUES('galena view');
702    INSERT INTO streetname VALUES('gallery pointe');
703    INSERT INTO streetname VALUES('gammon');
704    INSERT INTO streetname VALUES('garden grove');
705    INSERT INTO streetname VALUES('gardendale');
706    INSERT INTO streetname VALUES('garganey');
707    INSERT INTO streetname VALUES('garnet field');
708    INSERT INTO streetname VALUES('garrison');
709    INSERT INTO streetname VALUES('garvin');
710    INSERT INTO streetname VALUES('garvis');
711    INSERT INTO streetname VALUES('gaskill');
712    INSERT INTO streetname VALUES('gemstone');
713    INSERT INTO streetname VALUES('gibbon');
714    INSERT INTO streetname VALUES('gibbon terrace');
715    INSERT INTO streetname VALUES('gibbons link');
716    INSERT INTO streetname VALUES('gillman');
717    INSERT INTO streetname VALUES('gladwood');
718    INSERT INTO streetname VALUES('gladwyne');
719    INSERT INTO streetname VALUES('glamorgan');
720    INSERT INTO streetname VALUES('glaze');
721    INSERT INTO streetname VALUES('glen brook');
722    INSERT INTO streetname VALUES('glen cove');
723    INSERT INTO streetname VALUES('glen hope');
724    INSERT INTO streetname VALUES('glen manor');
725    INSERT INTO streetname VALUES('glen olden');
726    INSERT INTO streetname VALUES('glencairn');
727    INSERT INTO streetname VALUES('glendock');
728    INSERT INTO streetname VALUES('glenolden');
729    INSERT INTO streetname VALUES('glenover');
730    INSERT INTO streetname VALUES('glenshire');
731    INSERT INTO streetname VALUES('glenstone');
732    INSERT INTO streetname VALUES('gold dust');
733    INSERT INTO streetname VALUES('golden pond');
734    INSERT INTO streetname VALUES('goldenblush');
735    INSERT INTO streetname VALUES('goldenfield');
736    INSERT INTO streetname VALUES('goose landing');
737    INSERT INTO streetname VALUES('gorham gate');
738    INSERT INTO streetname VALUES('grabill');
739    INSERT INTO streetname VALUES('graburns ford');
740    INSERT INTO streetname VALUES('graham');
741    INSERT INTO streetname VALUES('grahamson');
742    INSERT INTO streetname VALUES('granard');
743    INSERT INTO streetname VALUES('grand teton');
744    INSERT INTO streetname VALUES('grande heights');
745    INSERT INTO streetname VALUES('grandeur');
746    INSERT INTO streetname VALUES('granite creek');
747    INSERT INTO streetname VALUES('grasset');
748    INSERT INTO streetname VALUES('graypark');
749    INSERT INTO streetname VALUES('grays ridge');
750    INSERT INTO streetname VALUES('great bear');
751    INSERT INTO streetname VALUES('green clover');
752    INSERT INTO streetname VALUES('green hedge');
753    INSERT INTO streetname VALUES('green meadow');
754    INSERT INTO streetname VALUES('green pasture');
755    INSERT INTO streetname VALUES('greene');
756    INSERT INTO streetname VALUES('greenloch');
757    INSERT INTO streetname VALUES('greenock ridge');
758    INSERT INTO streetname VALUES('greenware');
759    INSERT INTO streetname VALUES('greenway village');
760    INSERT INTO streetname VALUES('grenelefe village');
761    INSERT INTO streetname VALUES('grey dogwood');
762    INSERT INTO streetname VALUES('greyhound');
763    INSERT INTO streetname VALUES('greylock ridge');
764    INSERT INTO streetname VALUES('grosbeak');
765    INSERT INTO streetname VALUES('grove');
766    INSERT INTO streetname VALUES('groveton');
767    INSERT INTO streetname VALUES('groveview');
768    INSERT INTO streetname VALUES('hackberry creek');
769    INSERT INTO streetname VALUES('hackberry grove');
770    INSERT INTO streetname VALUES('hackett');
771    INSERT INTO streetname VALUES('haddington');
772    INSERT INTO streetname VALUES('hagler');
773    INSERT INTO streetname VALUES('halcott');
774    INSERT INTO streetname VALUES('half dome');
775    INSERT INTO streetname VALUES('hallam');
776    INSERT INTO streetname VALUES('hamilton russell');
777    INSERT INTO streetname VALUES('hampton place');
778    INSERT INTO streetname VALUES('hankins');
779    INSERT INTO streetname VALUES('harburn forest');
780    INSERT INTO streetname VALUES('harringham');
781    INSERT INTO streetname VALUES('harrington woods');
782    INSERT INTO streetname VALUES('harris corners');
783    INSERT INTO streetname VALUES('harris cove');
784    INSERT INTO streetname VALUES('harris glen');
785    INSERT INTO streetname VALUES('harris hill');
786    INSERT INTO streetname VALUES('harris oak');
787    INSERT INTO streetname VALUES('harris pointe');
788    INSERT INTO streetname VALUES('harris pond');
789    INSERT INTO streetname VALUES('harris ridge');
790    INSERT INTO streetname VALUES('harris technology');
791    INSERT INTO streetname VALUES('harris woods');
792    INSERT INTO streetname VALUES('hartfield downs');
793    INSERT INTO streetname VALUES('hattie little');
794    INSERT INTO streetname VALUES('hatwynn');
795    INSERT INTO streetname VALUES('hawkins');
796    INSERT INTO streetname VALUES('hawksnest');
797    INSERT INTO streetname VALUES('haybridge');
798    INSERT INTO streetname VALUES('hayden');
799    INSERT INTO streetname VALUES('hazelcroft');
800    INSERT INTO streetname VALUES('hazlitt');
801    INSERT INTO streetname VALUES('hazy valley');
802    INSERT INTO streetname VALUES('hearst');
803    INSERT INTO streetname VALUES('heathcrest');
804    INSERT INTO streetname VALUES('heathcroft');
805    INSERT INTO streetname VALUES('hedge maple');
806    INSERT INTO streetname VALUES('hedgecrest');
807    INSERT INTO streetname VALUES('hedingham');
808    INSERT INTO streetname VALUES('heman');
809    INSERT INTO streetname VALUES('henderson');
810    INSERT INTO streetname VALUES('henderson oaks');
811    INSERT INTO streetname VALUES('henderson valley');
812    INSERT INTO streetname VALUES('hendry');
813    INSERT INTO streetname VALUES('heritage hills');
814    INSERT INTO streetname VALUES('heritage woods');
815    INSERT INTO streetname VALUES('heron cove');
816    INSERT INTO streetname VALUES('heron glen');
817    INSERT INTO streetname VALUES('hewitt');
818    INSERT INTO streetname VALUES('hey rock');
819    INSERT INTO streetname VALUES('heysham');
820    INSERT INTO streetname VALUES('hickory cove');
821    INSERT INTO streetname VALUES('hidden meadow');
822    INSERT INTO streetname VALUES('high glen');
823    INSERT INTO streetname VALUES('high laurel');
824    INSERT INTO streetname VALUES('high valley');
825    INSERT INTO streetname VALUES('highcroft');
826    INSERT INTO streetname VALUES('highland');
827    INSERT INTO streetname VALUES('highland commons');
828    INSERT INTO streetname VALUES('highland creek');
829    INSERT INTO streetname VALUES('highland glen');
830    INSERT INTO streetname VALUES('highland park');
831    INSERT INTO streetname VALUES('highlander');
832    INSERT INTO streetname VALUES('highstream');
833    INSERT INTO streetname VALUES('hilltop');
834    INSERT INTO streetname VALUES('hobbitshire');
835    INSERT INTO streetname VALUES('hoffman');
836    INSERT INTO streetname VALUES('hogans way');
837    INSERT INTO streetname VALUES('holbert');
838    INSERT INTO streetname VALUES('hollow ridge');
839    INSERT INTO streetname VALUES('holly vista');
840    INSERT INTO streetname VALUES('hollywood');
841    INSERT INTO streetname VALUES('hoover');
842    INSERT INTO streetname VALUES('hopkins');
843    INSERT INTO streetname VALUES('horace mann');
844    INSERT INTO streetname VALUES('hornbeam');
845    INSERT INTO streetname VALUES('horse pasture');
846    INSERT INTO streetname VALUES('hosta');
847    INSERT INTO streetname VALUES('howard');
848    INSERT INTO streetname VALUES('hubbard');
849    INSERT INTO streetname VALUES('hubbard falls');
850    INSERT INTO streetname VALUES('hubbard woods');
851    INSERT INTO streetname VALUES('hucks');
852    INSERT INTO streetname VALUES('hunters creek');
853    INSERT INTO streetname VALUES('hunters pointe');
854    INSERT INTO streetname VALUES('hunters spring');
855    INSERT INTO streetname VALUES('hunters whip');
856    INSERT INTO streetname VALUES('huntmeadow');
857    INSERT INTO streetname VALUES('hutchison mcdonald');
858    INSERT INTO streetname VALUES('ingleton');
859    INSERT INTO streetname VALUES('insdale');
860    INSERT INTO streetname VALUES('interstate 85 service');
861    INSERT INTO streetname VALUES('iola');
862    INSERT INTO streetname VALUES('iredell');
863    INSERT INTO streetname VALUES('iron brigade');
864    INSERT INTO streetname VALUES('irwin valley');
865    INSERT INTO streetname VALUES('irwin wood');
866    INSERT INTO streetname VALUES('ivy brook');
867    INSERT INTO streetname VALUES('ivy ridge');
868    INSERT INTO streetname VALUES('jack russell');
869    INSERT INTO streetname VALUES('jackson');
870    INSERT INTO streetname VALUES('jacob martin');
871    INSERT INTO streetname VALUES('jamison');
872    INSERT INTO streetname VALUES('jane');
873    INSERT INTO streetname VALUES('jaspar crest');
874    INSERT INTO streetname VALUES('jessica');
875    INSERT INTO streetname VALUES('jimmy oehler');
876    INSERT INTO streetname VALUES('jocelyn');
877    INSERT INTO streetname VALUES('johnston mill');
878    INSERT INTO streetname VALUES('johnston oehler');
879    INSERT INTO streetname VALUES('judal');
880    INSERT INTO streetname VALUES('junipeous');
881    INSERT INTO streetname VALUES('juniper');
882    INSERT INTO streetname VALUES('juniperus');
883    INSERT INTO streetname VALUES('kalispell');
884    INSERT INTO streetname VALUES('karylsturn');
885    INSERT INTO streetname VALUES('katelyn');
886    INSERT INTO streetname VALUES('kayron');
887    INSERT INTO streetname VALUES('keaton');
888    INSERT INTO streetname VALUES('keble');
889    INSERT INTO streetname VALUES('keels');
890    INSERT INTO streetname VALUES('keith');
891    INSERT INTO streetname VALUES('keithwood');
892    INSERT INTO streetname VALUES('kelden walker');
893    INSERT INTO streetname VALUES('kelsey emma');
894    INSERT INTO streetname VALUES('kendrick');
895    INSERT INTO streetname VALUES('kenmont');
896    INSERT INTO streetname VALUES('kennerly cove');
897    INSERT INTO streetname VALUES('kenninghall');
898    INSERT INTO streetname VALUES('kent village');
899    INSERT INTO streetname VALUES('kestral ridge');
900    INSERT INTO streetname VALUES('kestrel');
901    INSERT INTO streetname VALUES('kilmartin');
902    INSERT INTO streetname VALUES('kilty');
903    INSERT INTO streetname VALUES('kinglet');
904    INSERT INTO streetname VALUES('kingsland');
905    INSERT INTO streetname VALUES('kingsnorth');
906    INSERT INTO streetname VALUES('kinsmore');
907    INSERT INTO streetname VALUES('kirkgard');
908    INSERT INTO streetname VALUES('kirkmont');
909    INSERT INTO streetname VALUES('knightsgate');
910    INSERT INTO streetname VALUES('kobuk');
911    INSERT INTO streetname VALUES('kotlik');
912    INSERT INTO streetname VALUES('kotz');
913    INSERT INTO streetname VALUES('kyndall walk');
914    INSERT INTO streetname VALUES('laborde');
915    INSERT INTO streetname VALUES('lady bank');
916    INSERT INTO streetname VALUES('lagrande');
917    INSERT INTO streetname VALUES('lake');
918    INSERT INTO streetname VALUES('lakeridge commons');
919    INSERT INTO streetname VALUES('lakeview');
920    INSERT INTO streetname VALUES('lakewood edge');
921    INSERT INTO streetname VALUES('lakota');
922    INSERT INTO streetname VALUES('lambrook');
923    INSERT INTO streetname VALUES('lampkin');
924    INSERT INTO streetname VALUES('lampkin park');
925    INSERT INTO streetname VALUES('langham');
926    INSERT INTO streetname VALUES('lanzerac manor');
927    INSERT INTO streetname VALUES('larkmead forest');
928    INSERT INTO streetname VALUES('lattice');
929    INSERT INTO streetname VALUES('laurel crest');
930    INSERT INTO streetname VALUES('laurel ridge');
931    INSERT INTO streetname VALUES('laurel run');
932    INSERT INTO streetname VALUES('laurenfield');
933    INSERT INTO streetname VALUES('laveta');
934    INSERT INTO streetname VALUES('lazy day');
935    INSERT INTO streetname VALUES('leawood run');
936    INSERT INTO streetname VALUES('lee marie');
937    INSERT INTO streetname VALUES('legacy lake');
938    INSERT INTO streetname VALUES('legacy park');
939    INSERT INTO streetname VALUES('legato');
940    INSERT INTO streetname VALUES('legolas');
941    INSERT INTO streetname VALUES('leigh glen');
942    INSERT INTO streetname VALUES('lence');
943    INSERT INTO streetname VALUES('lenox hill');
944    INSERT INTO streetname VALUES('leonine');
945    INSERT INTO streetname VALUES('leslie');
946    INSERT INTO streetname VALUES('lester hill');
947    INSERT INTO streetname VALUES('levisey');
948    INSERT INTO streetname VALUES('liberty bell');
949    INSERT INTO streetname VALUES('linden berry');
950    INSERT INTO streetname VALUES('lisbon');
951    INSERT INTO streetname VALUES('little stoney');
952    INSERT INTO streetname VALUES('livengood');
953    INSERT INTO streetname VALUES('lochway');
954    INSERT INTO streetname VALUES('lockman');
955    INSERT INTO streetname VALUES('loganville');
956    INSERT INTO streetname VALUES('lone tree');
957    INSERT INTO streetname VALUES('long creek park');
958    INSERT INTO streetname VALUES('long forest');
959    INSERT INTO streetname VALUES('looking glass');
960    INSERT INTO streetname VALUES('lookout point');
961    INSERT INTO streetname VALUES('lowen');
962    INSERT INTO streetname VALUES('lusby');
963    INSERT INTO streetname VALUES('lyleton');
964    INSERT INTO streetname VALUES('lynn lee');
965    INSERT INTO streetname VALUES('lynnewood glen');
966    INSERT INTO streetname VALUES('machrie');
967    INSERT INTO streetname VALUES('mackinac');
968    INSERT INTO streetname VALUES('maddox');
969    INSERT INTO streetname VALUES('madison park');
970    INSERT INTO streetname VALUES('mallard');
971    INSERT INTO streetname VALUES('mallard cove');
972    INSERT INTO streetname VALUES('mallard forest');
973    INSERT INTO streetname VALUES('mallard grove');
974    INSERT INTO streetname VALUES('mallard hill');
975    INSERT INTO streetname VALUES('mallard park');
976    INSERT INTO streetname VALUES('mallard ridge');
977    INSERT INTO streetname VALUES('mallard view');
978    INSERT INTO streetname VALUES('manbey');
979    INSERT INTO streetname VALUES('manning');
980    INSERT INTO streetname VALUES('mantario');
981    INSERT INTO streetname VALUES('maple');
982    INSERT INTO streetname VALUES('maple cove');
983    INSERT INTO streetname VALUES('maple park');
984    INSERT INTO streetname VALUES('marathon hill');
985    INSERT INTO streetname VALUES('marbury');
986    INSERT INTO streetname VALUES('marett');
987    INSERT INTO streetname VALUES('marigold');
988    INSERT INTO streetname VALUES('marionwood');
989    INSERT INTO streetname VALUES('marshbank');
990    INSERT INTO streetname VALUES('mason');
991    INSERT INTO streetname VALUES('mayapple');
992    INSERT INTO streetname VALUES('maylandia');
993    INSERT INTO streetname VALUES('mayspring');
994    INSERT INTO streetname VALUES('mcadam');
995    INSERT INTO streetname VALUES('mcchesney');
996    INSERT INTO streetname VALUES('mccurdy');
997    INSERT INTO streetname VALUES('mcgrath');
998    INSERT INTO streetname VALUES('mckendree');
999    INSERT INTO streetname VALUES('mclaughlin');
1000    INSERT INTO streetname VALUES('mctaggart');
1001    INSERT INTO streetname VALUES('meadow green');
1002    INSERT INTO streetname VALUES('meadow knoll');
1003    INSERT INTO streetname VALUES('meadow post');
1004    INSERT INTO streetname VALUES('meadowmont');
1005    INSERT INTO streetname VALUES('meadowmont view');
1006    INSERT INTO streetname VALUES('meadowview hills');
1007    INSERT INTO streetname VALUES('melshire');
1008    INSERT INTO streetname VALUES('melstrand');
1009    INSERT INTO streetname VALUES('mentone');
1010    INSERT INTO streetname VALUES('meridale crossing');
1011    INSERT INTO streetname VALUES('merion hills');
1012    INSERT INTO streetname VALUES('merlot');
1013    INSERT INTO streetname VALUES('mersham');
1014    INSERT INTO streetname VALUES('metromont');
1015    INSERT INTO streetname VALUES('metromont industrial');
1016    INSERT INTO streetname VALUES('michaw');
1017    INSERT INTO streetname VALUES('milhaven');
1018    INSERT INTO streetname VALUES('milhof');
1019    INSERT INTO streetname VALUES('millstream ridge');
1020    INSERT INTO streetname VALUES('mineral ridge');
1021    INSERT INTO streetname VALUES('mint thistle');
1022    INSERT INTO streetname VALUES('mintleaf');
1023    INSERT INTO streetname VALUES('mintvale');
1024    INSERT INTO streetname VALUES('misty');
1025    INSERT INTO streetname VALUES('misty arbor');
1026    INSERT INTO streetname VALUES('misty creek');
1027    INSERT INTO streetname VALUES('misty oaks');
1028    INSERT INTO streetname VALUES('misty wood');
1029    INSERT INTO streetname VALUES('mitzi deborah');
1030    INSERT INTO streetname VALUES('mobile');
1031    INSERT INTO streetname VALUES('molly elizabeth');
1032    INSERT INTO streetname VALUES('monmouth');
1033    INSERT INTO streetname VALUES('montrose');
1034    INSERT INTO streetname VALUES('moonlight');
1035    INSERT INTO streetname VALUES('moose');
1036    INSERT INTO streetname VALUES('morning dew');
1037    INSERT INTO streetname VALUES('morningsong');
1038    INSERT INTO streetname VALUES('morningview');
1039    INSERT INTO streetname VALUES('morsey');
1040    INSERT INTO streetname VALUES('moss glen');
1041    INSERT INTO streetname VALUES('mossy bank');
1042    INSERT INTO streetname VALUES('motor sport');
1043    INSERT INTO streetname VALUES('mountain laurel');
1044    INSERT INTO streetname VALUES('mourning dove');
1045    INSERT INTO streetname VALUES('mozart');
1046    INSERT INTO streetname VALUES('munsing');
1047    INSERT INTO streetname VALUES('murray');
1048    INSERT INTO streetname VALUES('nathan');
1049    INSERT INTO streetname VALUES('netherhall');
1050    INSERT INTO streetname VALUES('netherton');
1051    INSERT INTO streetname VALUES('neuhoff');
1052    INSERT INTO streetname VALUES('nevin');
1053    INSERT INTO streetname VALUES('nevin brook');
1054    INSERT INTO streetname VALUES('nevin glen');
1055    INSERT INTO streetname VALUES('nevin place');
1056    INSERT INTO streetname VALUES('new england');
1057    INSERT INTO streetname VALUES('new house');
1058    INSERT INTO streetname VALUES('newbary');
1059    INSERT INTO streetname VALUES('newchurch');
1060    INSERT INTO streetname VALUES('newfane');
1061    INSERT INTO streetname VALUES('newgard');
1062    INSERT INTO streetname VALUES('nicholas');
1063    INSERT INTO streetname VALUES('nicole');
1064    INSERT INTO streetname VALUES('nobility');
1065    INSERT INTO streetname VALUES('norcroft');
1066    INSERT INTO streetname VALUES('northridge');
1067    INSERT INTO streetname VALUES('northside');
1068    INSERT INTO streetname VALUES('northwoods business');
1069    INSERT INTO streetname VALUES('norway');
1070    INSERT INTO streetname VALUES('nottinghill');
1071    INSERT INTO streetname VALUES('numenore');
1072    INSERT INTO streetname VALUES('nyewood');
1073    INSERT INTO streetname VALUES('oak');
1074    INSERT INTO streetname VALUES('oak cove');
1075    INSERT INTO streetname VALUES('oak pasture');
1076    INSERT INTO streetname VALUES('oakburn');
1077    INSERT INTO streetname VALUES('oakwinds');
1078    INSERT INTO streetname VALUES('oakwood');
1079    INSERT INTO streetname VALUES('obrien');
1080    INSERT INTO streetname VALUES('ocala');
1081    INSERT INTO streetname VALUES('old bridge');
1082    INSERT INTO streetname VALUES('old fox');
1083    INSERT INTO streetname VALUES('old potters');
1084    INSERT INTO streetname VALUES('old statesville');
1085    INSERT INTO streetname VALUES('old steine');
1086    INSERT INTO streetname VALUES('old stoney creek');
1087    INSERT INTO streetname VALUES('old sugar creek');
1088    INSERT INTO streetname VALUES('old timber');
1089    INSERT INTO streetname VALUES('old wagon');
1090    INSERT INTO streetname VALUES('old willow');
1091    INSERT INTO streetname VALUES('oldenway');
1092    INSERT INTO streetname VALUES('oneida');
1093    INSERT INTO streetname VALUES('ontario');
1094    INSERT INTO streetname VALUES('oriole');
1095    INSERT INTO streetname VALUES('orofino');
1096    INSERT INTO streetname VALUES('orr');
1097    INSERT INTO streetname VALUES('osage');
1098    INSERT INTO streetname VALUES('osceola');
1099    INSERT INTO streetname VALUES('osprey knoll');
1100    INSERT INTO streetname VALUES('oxford hill');
1101    INSERT INTO streetname VALUES('painted fern');
1102    INSERT INTO streetname VALUES('painted pony');
1103    INSERT INTO streetname VALUES('paisley');
1104    INSERT INTO streetname VALUES('pale moss');
1105    INSERT INTO streetname VALUES('palladium');
1106    INSERT INTO streetname VALUES('palmutum');
1107    INSERT INTO streetname VALUES('palustris');
1108    INSERT INTO streetname VALUES('panglemont');
1109    INSERT INTO streetname VALUES('panther');
1110    INSERT INTO streetname VALUES('panthersville');
1111    INSERT INTO streetname VALUES('paper whites');
1112    INSERT INTO streetname VALUES('park');
1113    INSERT INTO streetname VALUES('parker green');
1114    INSERT INTO streetname VALUES('parkhouse');
1115    INSERT INTO streetname VALUES('passour ridge');
1116    INSERT INTO streetname VALUES('pasture view');
1117    INSERT INTO streetname VALUES('patricia ann');
1118    INSERT INTO streetname VALUES('patton');
1119    INSERT INTO streetname VALUES('patton ridge');
1120    INSERT INTO streetname VALUES('pawpaw');
1121    INSERT INTO streetname VALUES('peach');
1122    INSERT INTO streetname VALUES('peakwood');
1123    INSERT INTO streetname VALUES('pebble creek');
1124    INSERT INTO streetname VALUES('pecan cove');
1125    INSERT INTO streetname VALUES('pedigree');
1126    INSERT INTO streetname VALUES('pelorus');
1127    INSERT INTO streetname VALUES('penmore');
1128    INSERT INTO streetname VALUES('pensfold');
1129    INSERT INTO streetname VALUES('pepperstone');
1130    INSERT INTO streetname VALUES('peregrine');
1131    INSERT INTO streetname VALUES('periwinkle');
1132    INSERT INTO streetname VALUES('perkins');
1133    INSERT INTO streetname VALUES('pete brown');
1134    INSERT INTO streetname VALUES('phillips');
1135    INSERT INTO streetname VALUES('pickway');
1136    INSERT INTO streetname VALUES('piercy woods');
1137    INSERT INTO streetname VALUES('pierpoint');
1138    INSERT INTO streetname VALUES('pine');
1139    INSERT INTO streetname VALUES('pine branch');
1140    INSERT INTO streetname VALUES('pine meadow');
1141    INSERT INTO streetname VALUES('pineleaf');
1142    INSERT INTO streetname VALUES('pinewood');
1143    INSERT INTO streetname VALUES('pintail');
1144    INSERT INTO streetname VALUES('pipestone');
1145    INSERT INTO streetname VALUES('placer maple');
1146    INSERT INTO streetname VALUES('plover');
1147    INSERT INTO streetname VALUES('plum');
1148    INSERT INTO streetname VALUES('po box');
1149    INSERT INTO streetname VALUES('pochard');
1150    INSERT INTO streetname VALUES('pointview');
1151    INSERT INTO streetname VALUES('polk and white');
1152    INSERT INTO streetname VALUES('pond valley');
1153    INSERT INTO streetname VALUES('pondridge');
1154    INSERT INTO streetname VALUES('pope farm');
1155    INSERT INTO streetname VALUES('poplar grove');
1156    INSERT INTO streetname VALUES('poplar springs');
1157    INSERT INTO streetname VALUES('portola');
1158    INSERT INTO streetname VALUES('potters glen');
1159    INSERT INTO streetname VALUES('powatan');
1160    INSERT INTO streetname VALUES('prairie valley');
1161    INSERT INTO streetname VALUES('prescott');
1162    INSERT INTO streetname VALUES('presmann');
1163    INSERT INTO streetname VALUES('prestigious');
1164    INSERT INTO streetname VALUES('princess');
1165    INSERT INTO streetname VALUES('prosperity');
1166    INSERT INTO streetname VALUES('prosperity church');
1167    INSERT INTO streetname VALUES('prosperity commons');
1168    INSERT INTO streetname VALUES('prosperity park');
1169    INSERT INTO streetname VALUES('prosperity point');
1170    INSERT INTO streetname VALUES('prosperity ridge');
1171    INSERT INTO streetname VALUES('prosperity view');
1172    INSERT INTO streetname VALUES('purple finch');
1173    INSERT INTO streetname VALUES('quail');
1174    INSERT INTO streetname VALUES('queensbury');
1175    INSERT INTO streetname VALUES('quinn');
1176    INSERT INTO streetname VALUES('racine');
1177    INSERT INTO streetname VALUES('radbourne');
1178    INSERT INTO streetname VALUES('raddington');
1179    INSERT INTO streetname VALUES('raku');
1180    INSERT INTO streetname VALUES('rancliffe');
1181    INSERT INTO streetname VALUES('ravencrest');
1182    INSERT INTO streetname VALUES('reames');
1183    INSERT INTO streetname VALUES('rebecca run');
1184    INSERT INTO streetname VALUES('red bluff');
1185    INSERT INTO streetname VALUES('red clay');
1186    INSERT INTO streetname VALUES('red clover');
1187    INSERT INTO streetname VALUES('red rose');
1188    INSERT INTO streetname VALUES('red shed');
1189    INSERT INTO streetname VALUES('red tail');
1190    INSERT INTO streetname VALUES('redbridge');
1191    INSERT INTO streetname VALUES('redstart');
1192    INSERT INTO streetname VALUES('redstone view');
1193    INSERT INTO streetname VALUES('reedmont');
1194    INSERT INTO streetname VALUES('reeves');
1195    INSERT INTO streetname VALUES('regal');
1196    INSERT INTO streetname VALUES('reinbeck');
1197    INSERT INTO streetname VALUES('retriever');
1198    INSERT INTO streetname VALUES('ribbonwalk');
1199    INSERT INTO streetname VALUES('richardson park');
1200    INSERT INTO streetname VALUES('richfield');
1201    INSERT INTO streetname VALUES('riddings');
1202    INSERT INTO streetname VALUES('ridge');
1203    INSERT INTO streetname VALUES('ridge cliff');
1204    INSERT INTO streetname VALUES('ridge path');
1205    INSERT INTO streetname VALUES('ridge peak');
1206    INSERT INTO streetname VALUES('ridgefield');
1207    INSERT INTO streetname VALUES('ridgeline');
1208    INSERT INTO streetname VALUES('ridgeview commons');
1209    INSERT INTO streetname VALUES('riley');
1210    INSERT INTO streetname VALUES('riley woods');
1211    INSERT INTO streetname VALUES('rillet');
1212    INSERT INTO streetname VALUES('rindle');
1213    INSERT INTO streetname VALUES('rivendell');
1214    INSERT INTO streetname VALUES('robin');
1215    INSERT INTO streetname VALUES('robins nest');
1216    INSERT INTO streetname VALUES('robur');
1217    INSERT INTO streetname VALUES('robyns glen');
1218    INSERT INTO streetname VALUES('rock stream');
1219    INSERT INTO streetname VALUES('rockwell');
1220    INSERT INTO streetname VALUES('rockwell church');
1221    INSERT INTO streetname VALUES('rocky brook');
1222    INSERT INTO streetname VALUES('rocky ford club');
1223    INSERT INTO streetname VALUES('rotary');
1224    INSERT INTO streetname VALUES('rouda');
1225    INSERT INTO streetname VALUES('royal bluff');
1226    INSERT INTO streetname VALUES('royal celadon');
1227    INSERT INTO streetname VALUES('rubin lura');
1228    INSERT INTO streetname VALUES('runswyck');
1229    INSERT INTO streetname VALUES('ruth ferrell');
1230    INSERT INTO streetname VALUES('ruth polk');
1231    INSERT INTO streetname VALUES('ryan jay');
1232    INSERT INTO streetname VALUES('sackett');
1233    INSERT INTO streetname VALUES('saddle pace');
1234    INSERT INTO streetname VALUES('saddle run');
1235    INSERT INTO streetname VALUES('saddle trail');
1236    INSERT INTO streetname VALUES('saguaro');
1237    INSERT INTO streetname VALUES('saint audrey');
1238    INSERT INTO streetname VALUES('saint bernard');
1239    INSERT INTO streetname VALUES('saint frances');
1240    INSERT INTO streetname VALUES('sam roper');
1241    INSERT INTO streetname VALUES('samara');
1242    INSERT INTO streetname VALUES('sanders creek');
1243    INSERT INTO streetname VALUES('saquache');
1244    INSERT INTO streetname VALUES('sarnia');
1245    INSERT INTO streetname VALUES('savannah springs');
1246    INSERT INTO streetname VALUES('sawgrass ridge');
1247    INSERT INTO streetname VALUES('saxonbury');
1248    INSERT INTO streetname VALUES('scotch moss');
1249    INSERT INTO streetname VALUES('seasons');
1250    INSERT INTO streetname VALUES('serenity');
1251    INSERT INTO streetname VALUES('seths');
1252    INSERT INTO streetname VALUES('shadow lawn');
1253    INSERT INTO streetname VALUES('shadow oaks');
1254    INSERT INTO streetname VALUES('shadow pine');
1255    INSERT INTO streetname VALUES('shadyside');
1256    INSERT INTO streetname VALUES('shallow oak');
1257    INSERT INTO streetname VALUES('shelley');
1258    INSERT INTO streetname VALUES('shining oak');
1259    INSERT INTO streetname VALUES('ship');
1260    INSERT INTO streetname VALUES('shore haven');
1261    INSERT INTO streetname VALUES('shuman');
1262    INSERT INTO streetname VALUES('sidney');
1263    INSERT INTO streetname VALUES('silver birch');
1264    INSERT INTO streetname VALUES('silvermere');
1265    INSERT INTO streetname VALUES('simonton');
1266    INSERT INTO streetname VALUES('singing hills');
1267    INSERT INTO streetname VALUES('singing oak');
1268    INSERT INTO streetname VALUES('sipes');
1269    INSERT INTO streetname VALUES('six point');
1270    INSERT INTO streetname VALUES('skycrest');
1271    INSERT INTO streetname VALUES('skyline');
1272    INSERT INTO streetname VALUES('small');
1273    INSERT INTO streetname VALUES('smith corners');
1274    INSERT INTO streetname VALUES('smithwood');
1275    INSERT INTO streetname VALUES('snow hill');
1276    INSERT INTO streetname VALUES('soapstone');
1277    INSERT INTO streetname VALUES('sobeck');
1278    INSERT INTO streetname VALUES('socata');
1279    INSERT INTO streetname VALUES('solace');
1280    INSERT INTO streetname VALUES('solway');
1281    INSERT INTO streetname VALUES('song sparrow');
1282    INSERT INTO streetname VALUES('sorrento');
1283    INSERT INTO streetname VALUES('spector');
1284    INSERT INTO streetname VALUES('spin drift');
1285    INSERT INTO streetname VALUES('spring crest');
1286    INSERT INTO streetname VALUES('spring lee');
1287    INSERT INTO streetname VALUES('spring park');
1288    INSERT INTO streetname VALUES('spring terrace');
1289    INSERT INTO streetname VALUES('spring trace');
1290    INSERT INTO streetname VALUES('springhaven');
1291    INSERT INTO streetname VALUES('squirrel trail');
1292    INSERT INTO streetname VALUES('stardust');
1293    INSERT INTO streetname VALUES('stargaze');
1294    INSERT INTO streetname VALUES('starita');
1295    INSERT INTO streetname VALUES('starmount');
1296    INSERT INTO streetname VALUES('statesville');
1297    INSERT INTO streetname VALUES('steed');
1298    INSERT INTO streetname VALUES('steelewood');
1299    INSERT INTO streetname VALUES('steepleglen');
1300    INSERT INTO streetname VALUES('stephens farm');
1301    INSERT INTO streetname VALUES('stewarton');
1302    INSERT INTO streetname VALUES('stone park');
1303    INSERT INTO streetname VALUES('stonebrook');
1304    INSERT INTO streetname VALUES('stonefield');
1305    INSERT INTO streetname VALUES('stoneglen');
1306    INSERT INTO streetname VALUES('stonemarsh');
1307    INSERT INTO streetname VALUES('stoney garden');
1308    INSERT INTO streetname VALUES('stoney run');
1309    INSERT INTO streetname VALUES('stoney valley');
1310    INSERT INTO streetname VALUES('stoneykirk');
1311    INSERT INTO streetname VALUES('stream bank');
1312    INSERT INTO streetname VALUES('stream ridge');
1313    INSERT INTO streetname VALUES('suburban');
1314    INSERT INTO streetname VALUES('suffield');
1315    INSERT INTO streetname VALUES('sugar creek');
1316    INSERT INTO streetname VALUES('sugarberry');
1317    INSERT INTO streetname VALUES('sugarstone');
1318    INSERT INTO streetname VALUES('summer creek');
1319    INSERT INTO streetname VALUES('summer valley');
1320    INSERT INTO streetname VALUES('summercrest');
1321    INSERT INTO streetname VALUES('summercroft');
1322    INSERT INTO streetname VALUES('summerford');
1323    INSERT INTO streetname VALUES('summergold');
1324    INSERT INTO streetname VALUES('sunbeam');
1325    INSERT INTO streetname VALUES('sunbridge');
1326    INSERT INTO streetname VALUES('sunpath');
1327    INSERT INTO streetname VALUES('sunset');
1328    INSERT INTO streetname VALUES('sunset ridge');
1329    INSERT INTO streetname VALUES('sunstone');
1330    INSERT INTO streetname VALUES('suntrace');
1331    INSERT INTO streetname VALUES('sunwalk');
1332    INSERT INTO streetname VALUES('sutters hill');
1333    INSERT INTO streetname VALUES('suttonview');
1334    INSERT INTO streetname VALUES('swallow tail');
1335    INSERT INTO streetname VALUES('swanston');
1336    INSERT INTO streetname VALUES('sweet grove');
1337    INSERT INTO streetname VALUES('sweet rose');
1338    INSERT INTO streetname VALUES('sweetbriar ridge');
1339    INSERT INTO streetname VALUES('sweetfield');
1340    INSERT INTO streetname VALUES('sydney overlook');
1341    INSERT INTO streetname VALUES('sylvan');
1342    INSERT INTO streetname VALUES('symphony woods');
1343    INSERT INTO streetname VALUES('tallia');
1344    INSERT INTO streetname VALUES('tallu');
1345    INSERT INTO streetname VALUES('talwyn');
1346    INSERT INTO streetname VALUES('tanager');
1347    INSERT INTO streetname VALUES('tanager park');
1348    INSERT INTO streetname VALUES('tangley');
1349    INSERT INTO streetname VALUES('taranasay');
1350    INSERT INTO streetname VALUES('tarby');
1351    INSERT INTO streetname VALUES('tarland');
1352    INSERT INTO streetname VALUES('tarpway');
1353    INSERT INTO streetname VALUES('tauten');
1354    INSERT INTO streetname VALUES('taymouth');
1355    INSERT INTO streetname VALUES('ten trees');
1356    INSERT INTO streetname VALUES('terrace view');
1357    INSERT INTO streetname VALUES('terrier');
1358    INSERT INTO streetname VALUES('tesh');
1359    INSERT INTO streetname VALUES('teton');
1360    INSERT INTO streetname VALUES('tewkesbury');
1361    INSERT INTO streetname VALUES('thelema');
1362    INSERT INTO streetname VALUES('thistle bloom');
1363    INSERT INTO streetname VALUES('thistledown');
1364    INSERT INTO streetname VALUES('thomas ridge');
1365    INSERT INTO streetname VALUES('thornbrook');
1366    INSERT INTO streetname VALUES('tifton grass');
1367    INSERT INTO streetname VALUES('tigerton');
1368    INSERT INTO streetname VALUES('tomsie efird');
1369    INSERT INTO streetname VALUES('tor');
1370    INSERT INTO streetname VALUES('torphin');
1371    INSERT INTO streetname VALUES('torrence');
1372    INSERT INTO streetname VALUES('towering pine');
1373    INSERT INTO streetname VALUES('towhee');
1374    INSERT INTO streetname VALUES('toxaway');
1375    INSERT INTO streetname VALUES('tracy glenn');
1376    INSERT INTO streetname VALUES('tradition view');
1377    INSERT INTO streetname VALUES('trailer');
1378    INSERT INTO streetname VALUES('transport');
1379    INSERT INTO streetname VALUES('trehurst');
1380    INSERT INTO streetname VALUES('trexler');
1381    INSERT INTO streetname VALUES('trillium fields');
1382    INSERT INTO streetname VALUES('trimbach');
1383    INSERT INTO streetname VALUES('tucker');
1384    INSERT INTO streetname VALUES('tullamore');
1385    INSERT INTO streetname VALUES('tullock creek');
1386    INSERT INTO streetname VALUES('tunston');
1387    INSERT INTO streetname VALUES('tupelo');
1388    INSERT INTO streetname VALUES('turnabout');
1389    INSERT INTO streetname VALUES('turney');
1390    INSERT INTO streetname VALUES('turtle cross');
1391    INSERT INTO streetname VALUES('turtleback');
1392    INSERT INTO streetname VALUES('twelvestone');
1393    INSERT INTO streetname VALUES('twin');
1394    INSERT INTO streetname VALUES('twin brook');
1395    INSERT INTO streetname VALUES('twin lakes');
1396    INSERT INTO streetname VALUES('twisted pine');
1397    INSERT INTO streetname VALUES('tyler finley');
1398    INSERT INTO streetname VALUES('university station');
1399    INSERT INTO streetname VALUES('uphill');
1400    INSERT INTO streetname VALUES('valeview');
1401    INSERT INTO streetname VALUES('valhalla');
1402    INSERT INTO streetname VALUES('van');
1403    INSERT INTO streetname VALUES('vance davis');
1404    INSERT INTO streetname VALUES('vanhoy');
1405    INSERT INTO streetname VALUES('veckman');
1406    INSERT INTO streetname VALUES('victoria');
1407    INSERT INTO streetname VALUES('victory');
1408    INSERT INTO streetname VALUES('village glen');
1409    INSERT INTO streetname VALUES('vireo');
1410    INSERT INTO streetname VALUES('viscount');
1411    INSERT INTO streetname VALUES('voeltz');
1412    INSERT INTO streetname VALUES('wade e morgan');
1413    INSERT INTO streetname VALUES('wake');
1414    INSERT INTO streetname VALUES('wales');
1415    INSERT INTO streetname VALUES('wallace ridge');
1416    INSERT INTO streetname VALUES('waltham');
1417    INSERT INTO streetname VALUES('wanamassa');
1418    INSERT INTO streetname VALUES('warbler wood');
1419    INSERT INTO streetname VALUES('washington');
1420    INSERT INTO streetname VALUES('water');
1421    INSERT INTO streetname VALUES('waterelm');
1422    INSERT INTO streetname VALUES('waterford hills');
1423    INSERT INTO streetname VALUES('waterford valley');
1424    INSERT INTO streetname VALUES('waterloo');
1425    INSERT INTO streetname VALUES('waterton leas');
1426    INSERT INTO streetname VALUES('waverly lynn');
1427    INSERT INTO streetname VALUES('waverlyglen');
1428    INSERT INTO streetname VALUES('wayside');
1429    INSERT INTO streetname VALUES('westbury lake');
1430    INSERT INTO streetname VALUES('westray');
1431    INSERT INTO streetname VALUES('whistlers chase');
1432    INSERT INTO streetname VALUES('whistley green');
1433    INSERT INTO streetname VALUES('whistling oak');
1434    INSERT INTO streetname VALUES('whitcomb');
1435    INSERT INTO streetname VALUES('white aspen');
1436    INSERT INTO streetname VALUES('white cascade');
1437    INSERT INTO streetname VALUES('white mist');
1438    INSERT INTO streetname VALUES('white rock');
1439    INSERT INTO streetname VALUES('white stag');
1440    INSERT INTO streetname VALUES('whitegate');
1441    INSERT INTO streetname VALUES('whitehill');
1442    INSERT INTO streetname VALUES('whitetail');
1443    INSERT INTO streetname VALUES('whitewood');
1444    INSERT INTO streetname VALUES('wilburn park');
1445    INSERT INTO streetname VALUES('wild garden');
1446    INSERT INTO streetname VALUES('wild rose');
1447    INSERT INTO streetname VALUES('wilkins terrace');
1448    INSERT INTO streetname VALUES('william ficklen');
1449    INSERT INTO streetname VALUES('wiltshire ridge');
1450    INSERT INTO streetname VALUES('windchase');
1451    INSERT INTO streetname VALUES('winding jordan');
1452    INSERT INTO streetname VALUES('windy meadow');
1453    INSERT INTO streetname VALUES('winghaven');
1454    INSERT INTO streetname VALUES('wingmont');
1455    INSERT INTO streetname VALUES('winslow');
1456    INSERT INTO streetname VALUES('winter pine');
1457    INSERT INTO streetname VALUES('winter view');
1458    INSERT INTO streetname VALUES('wolf creek');
1459    INSERT INTO streetname VALUES('wondering oak');
1460    INSERT INTO streetname VALUES('woodard');
1461    INSERT INTO streetname VALUES('woodfire');
1462    INSERT INTO streetname VALUES('woodland commons');
1463    INSERT INTO streetname VALUES('woodland hills');
1464    INSERT INTO streetname VALUES('woodnotch');
1465    INSERT INTO streetname VALUES('woodstone');
1466    INSERT INTO streetname VALUES('worsley');
1467    INSERT INTO streetname VALUES('wren creek');
1468    INSERT INTO streetname VALUES('wrens nest');
1469    INSERT INTO streetname VALUES('wrexham');
1470    INSERT INTO streetname VALUES('wt harris');
1471    INSERT INTO streetname VALUES('wylie meadow');
1472    INSERT INTO streetname VALUES('wynborough');
1473    INSERT INTO streetname VALUES('wynbrook');
1474    INSERT INTO streetname VALUES('wyndham hill');
1475    INSERT INTO streetname VALUES('yandem');
1476    INSERT INTO streetname VALUES('yellow rose');
1477    INSERT INTO streetname VALUES('yellow spaniel');
1478    INSERT INTO streetname VALUES('yorkford');
1479    INSERT INTO streetname VALUES('ziegler');
1480    INSERT INTO streetname VALUES('zion renaissance');
1481
1482    SELECT count(*) FROM streetname;
1483  }
1484} {1228}
1485
1486do_test fuzzer1-2.1 {
1487  execsql {
1488    SELECT n, distance FROM f2, streetname
1489     WHERE f2.word MATCH 'wersley'
1490       AND f2.distance<=150
1491       AND f2.word=streetname.n
1492  }
1493} {worsley 37}
1494do_test fuzzer1-2.2 {
1495  execsql {
1496    SELECT n, distance FROM f2, streetname
1497     WHERE f2.word MATCH 'testledown'
1498       AND f2.distance<=150
1499       AND f2.word=streetname.n
1500  }
1501} {thistledown 103}
1502do_test fuzzer1-2.3 {
1503  execsql {
1504    SELECT DISTINCT streetname.n FROM f2, streetname
1505     WHERE f2.word MATCH 'tayle'
1506       AND f2.distance<=200
1507       AND streetname.n>=f2.word AND streetname.n<=(f2.word || x'F7BFBFBF')
1508  }
1509} {{tyler finley} trailer taymouth steelewood tallia tallu talwyn thelema}
1510do_test fuzzer1-2.4 {
1511  execsql {
1512    SELECT DISTINCT streetname.n
1513      FROM f2 JOIN streetname
1514        ON (streetname.n>=f2.word AND streetname.n<=(f2.word || 'zzzzzz'))
1515     WHERE f2.word MATCH 'duck'
1516       AND f2.distance<150
1517       AND f2.ruleset=3
1518     ORDER BY 1
1519  }
1520} {mallard {mallard cove} {mallard forest} {mallard grove} {mallard hill} {mallard park} {mallard ridge} {mallard view}}
1521do_test fuzzer1-2.5 {
1522  execsql {
1523    SELECT DISTINCT streetname.n
1524      FROM f2 JOIN streetname
1525        ON (streetname.n>=f2.word AND streetname.n<=(f2.word || 'zzzzzz'))
1526     WHERE f2.word MATCH 'duck'
1527       AND f2.distance<150
1528       AND f2.ruleset=2
1529     ORDER BY 1
1530  }
1531} {}
1532
1533forcedelete test.db2
1534do_execsql_test fuzzer1-4.1 {
1535  ATTACH 'test.db2' AS aux;
1536  CREATE TABLE aux.f3_rules(ruleset, cfrom, cto, cost);
1537  INSERT INTO f3_rules(ruleset, cfrom, cto, cost) VALUES(0, 'x','y', 10);
1538  INSERT INTO f3_rules(ruleset, cfrom, cto, cost) VALUES(1, 'a','b', 10);
1539  CREATE VIRTUAL TABLE aux.f3 USING fuzzer(f3_rules);
1540  SELECT word FROM f3 WHERE word MATCH 'ax'
1541} {ax ay}
1542
1543#-------------------------------------------------------------------------
1544#
1545#  1.5.1 - Check things work with a fuzzer data table name that requires
1546#          quoting. Also that NULL entries in the "from" column of the
1547#          data table are treated as zero length strings ('').
1548#
1549#  1.5.2 - Check that no-op rules (i.e. C->C) are ignored. Test NULL in
1550#          the "to" column of a fuzzer data table.
1551#
1552#  1.5.3 - Test out-of-range values for the cost field of the data table.
1553#
1554#  1.5.4 - Test out-of-range values for the string fields of the data table.
1555#
1556#  1.5.5 - Test out-of-range values for the ruleset field of the data table.
1557#
1558do_execsql_test 5.1 {
1559  CREATE TABLE "fuzzer [x] rules table"(a, b, c, d);
1560  INSERT INTO "fuzzer [x] rules table" VALUES(0, NULL, 'abc', 10);
1561  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1562  SELECT word, distance FROM x WHERE word MATCH '123' LIMIT 4;
1563} {123 0 abc123 10 1abc23 10 12abc3 10}
1564
1565do_execsql_test 5.2 {
1566  DELETE FROM "fuzzer [x] rules table";
1567  INSERT INTO "fuzzer [x] rules table" VALUES(0, 'x', NULL, 20);
1568  INSERT INTO "fuzzer [x] rules table" VALUES(0, NULL, NULL, 10);
1569  INSERT INTO "fuzzer [x] rules table" VALUES(0, 'x', 'x', 10);
1570
1571  DROP TABLE x;
1572  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1573
1574  SELECT word, distance FROM x WHERE word MATCH 'xx';
1575} {xx 0 x 20 {} 40}
1576
1577do_execsql_test 5.3.1 {
1578  DROP TABLE IF EXISTS x;
1579  INSERT INTO "fuzzer [x] rules table" VALUES(0, 'c', 'd', 1001);
1580}
1581do_catchsql_test 5.3.2 {
1582  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1583} {1 {fuzzer: cost must be between 1 and 1000}}
1584
1585do_execsql_test 5.3.3 {
1586  DROP TABLE IF EXISTS x;
1587  DELETE FROM "fuzzer [x] rules table";
1588  INSERT INTO "fuzzer [x] rules table" VALUES(0, 'd', 'c', 0);
1589}
1590do_catchsql_test 5.3.4 {
1591  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1592} {1 {fuzzer: cost must be between 1 and 1000}}
1593
1594do_execsql_test 5.3.5 {
1595  DROP TABLE IF EXISTS x;
1596  DELETE FROM "fuzzer [x] rules table";
1597  INSERT INTO "fuzzer [x] rules table" VALUES(0, 'd', 'c', -20);
1598}
1599do_catchsql_test 5.3.6 {
1600  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1601} {1 {fuzzer: cost must be between 1 and 1000}}
1602
1603do_execsql_test 5.4.1 {
1604  DROP TABLE IF EXISTS x;
1605  DELETE FROM "fuzzer [x] rules table";
1606  INSERT INTO "fuzzer [x] rules table" VALUES(
1607    0, 'x', '12345678901234567890123456789012345678901234567890', 2
1608  );
1609  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1610  SELECT word FROM x WHERE word MATCH 'x';
1611} {x 12345678901234567890123456789012345678901234567890}
1612
1613do_execsql_test 5.4.2 {
1614  DROP TABLE IF EXISTS x;
1615  DELETE FROM "fuzzer [x] rules table";
1616  INSERT INTO "fuzzer [x] rules table" VALUES(
1617    0, 'x', '123456789012345678901234567890123456789012345678901', 2
1618  );
1619}
1620do_catchsql_test 5.4.3 {
1621  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1622} {1 {fuzzer: maximum string length is 50}}
1623
1624do_execsql_test 5.4.4 {
1625  DROP TABLE IF EXISTS x;
1626  DELETE FROM "fuzzer [x] rules table";
1627  INSERT INTO "fuzzer [x] rules table" VALUES(
1628    0, '123456789012345678901234567890123456789012345678901', 'x', 2
1629  );
1630}
1631do_catchsql_test 5.4.5 {
1632  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1633} {1 {fuzzer: maximum string length is 50}}
1634
1635do_execsql_test 5.5.1 {
1636  DROP TABLE IF EXISTS x;
1637  DELETE FROM "fuzzer [x] rules table";
1638  INSERT INTO "fuzzer [x] rules table" VALUES(-1, 'x', 'y', 2);
1639}
1640do_catchsql_test 5.5.2 {
1641  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1642} {1 {fuzzer: ruleset must be between 0 and 2147483647}}
1643
1644do_execsql_test 5.5.3 {
1645  DROP TABLE IF EXISTS x;
1646  DELETE FROM "fuzzer [x] rules table";
1647  INSERT INTO "fuzzer [x] rules table" VALUES((1<<32)+100, 'x', 'y', 2);
1648}
1649do_catchsql_test 5.5.4 {
1650  CREATE VIRTUAL TABLE x USING fuzzer('fuzzer [x] rules table');
1651} {1 {fuzzer: ruleset must be between 0 and 2147483647}}
1652
1653#-------------------------------------------------------------------------
1654# This test uses a fuzzer table with many rules. There is one rule to
1655# map each possible two character string, where characters are lower-case
1656# letters used in the English language, to all other possible two character
1657# strings. In total, (26^4)-(26^2) mappings (the subtracted term represents
1658# the no-op mappings discarded automatically by the fuzzer).
1659#
1660#
1661do_execsql_test 6.1.1 {
1662  DROP TABLE IF EXISTS x1;
1663  DROP TABLE IF EXISTS x1_rules;
1664  CREATE TABLE x1_rules(ruleset, cFrom, cTo, cost);
1665}
1666puts "This test is slow - perhaps around 7 seconds on an average pc"
1667do_test 6.1.2 {
1668  set LETTERS {a b c d e f g h i j k l m n o p q r s t u v w x y z}
1669  set cost 1
1670  db transaction {
1671    foreach c1 $LETTERS {
1672      foreach c2 $LETTERS {
1673        foreach c3 $LETTERS {
1674          foreach c4 $LETTERS {
1675            db eval {INSERT INTO x1_rules VALUES(0, $c1||$c2, $c3||$c4, $cost)}
1676            set cost [expr ($cost%1000) + 1]
1677          }
1678        }
1679      }
1680    }
1681    db eval {UPDATE x1_rules SET cost = 20 WHERE cost<20 AND cFrom!='xx'}
1682  }
1683} {}
1684
1685do_execsql_test 6.2 {
1686  SELECT count(*) FROM x1_rules WHERE cTo!=cFrom;
1687} [expr 26*26*26*26 - 26*26]
1688
1689do_execsql_test 6.2.1 {
1690  CREATE VIRTUAL TABLE x1 USING fuzzer(x1_rules);
1691  SELECT word FROM x1 WHERE word MATCH 'xx' LIMIT 10;
1692} {xx hw hx hy hz ia ib ic id ie}
1693do_execsql_test 6.2.2 {
1694  SELECT cTo FROM x1_rules WHERE cFrom='xx'
1695  ORDER BY cost asc, rowid asc LIMIT 9;
1696} {hw hx hy hz ia ib ic id ie}
1697
1698#-------------------------------------------------------------------------
1699# Test using different types of quotes with CREATE VIRTUAL TABLE
1700# arguments.
1701#
1702do_execsql_test 7.1 {
1703  CREATE TABLE [x2 "rules] (a, b, c, d);
1704  INSERT INTO [x2 "rules] VALUES(0, 'a', 'b', 5);
1705}
1706foreach {tn sql} {
1707  1 { CREATE VIRTUAL TABLE x2 USING fuzzer( [x2 "rules] ) }
1708  2 { CREATE VIRTUAL TABLE x2 USING fuzzer( "x2 ""rules" ) }
1709  3 { CREATE VIRTUAL TABLE x2 USING fuzzer( 'x2 "rules' ) }
1710  4 { CREATE VIRTUAL TABLE x2 USING fuzzer( `x2 "rules` ) }
1711} {
1712  do_execsql_test 7.2.$tn.1 { DROP TABLE IF EXISTS x2 }
1713  do_execsql_test 7.2.$tn.2 $sql
1714  do_execsql_test 7.2.$tn.3 {
1715    SELECT word FROM x2 WHERE word MATCH 'aaa'
1716  } {aaa baa aba aab bab abb bba bbb}
1717}
1718
1719#-------------------------------------------------------------------------
1720# Test using a fuzzer table in different contexts.
1721#
1722do_execsql_test 8.1 {
1723  CREATE TABLE x3_rules(rule_set, cFrom, cTo, cost);
1724  INSERT INTO x3_rules VALUES(2, 'a', 'x', 10);
1725  INSERT INTO x3_rules VALUES(2, 'a', 'y',  9);
1726  INSERT INTO x3_rules VALUES(2, 'a', 'z',  8);
1727  CREATE VIRTUAL TABLE x3 USING fuzzer(x3_rules);
1728}
1729
1730do_execsql_test 8.2.1 {
1731  SELECT cFrom, cTo, word
1732    FROM x3_rules CROSS JOIN x3
1733    WHERE word MATCH 'a' AND cost=distance AND ruleset=2;
1734} {a x x a y y a z z}
1735
1736do_execsql_test 8.2.2 {
1737  SELECT cFrom, cTo, word
1738    FROM x3 CROSS JOIN x3_rules
1739    WHERE word MATCH 'a' AND cost=distance AND ruleset=2;
1740} {a z z a y y a x x}
1741
1742do_execsql_test 8.2.3 {
1743  SELECT cFrom, cTo, word
1744    FROM x3_rules, x3
1745    WHERE word MATCH 'a' AND cost=distance AND ruleset=2;
1746} {a z z a y y a x x}
1747
1748do_execsql_test 8.2.4 {
1749  SELECT cFrom, cTo, word
1750    FROM x3, x3_rules
1751    WHERE word MATCH 'a' AND cost=distance AND ruleset=2;
1752} {a z z a y y a x x}
1753
1754do_execsql_test 8.2.5 {
1755  CREATE INDEX i1 ON x3_rules(cost);
1756  SELECT cFrom, cTo, word
1757    FROM x3_rules, x3
1758    WHERE word MATCH 'a' AND cost=distance AND ruleset=2;
1759} {a z z a y y a x x}
1760
1761do_execsql_test 8.2.5 {
1762  SELECT word FROM x3_rules, x3 WHERE word MATCH x3_rules.cFrom AND ruleset=2;
1763} {a z y x a z y x a z y x}
1764
1765do_execsql_test 8.2.6 {
1766  SELECT word FROM x3_rules, x3
1767  WHERE word MATCH x3_rules.cFrom
1768    AND ruleset=2
1769    AND x3_rules.cost=8;
1770} {a z y x}
1771
1772do_execsql_test 8.2.7 {
1773  CREATE TABLE t1(a, b);
1774  CREATE INDEX i2 ON t1(b);
1775  SELECT word, distance FROM x3, t1
1776    WHERE x3.word MATCH t1.a AND ruleset=2 AND distance=t1.b;
1777} {}
1778
1779do_execsql_test 8.2.8 {
1780  INSERT INTO x3_rules VALUES(1, 'a', 't',  5);
1781  INSERT INTO x3_rules VALUES(1, 'a', 'u',  4);
1782  INSERT INTO x3_rules VALUES(1, 'a', 'v',  3);
1783  DROP TABLE x3;
1784  CREATE VIRTUAL TABLE x3 USING fuzzer(x3_rules);
1785  SELECT * FROM x3_rules;
1786} {
1787  2 a x 10
1788  2 a y 9
1789  2 a z 8
1790  1 a t 5
1791  1 a u 4
1792  1 a v 3
1793}
1794
1795do_catchsql_test 8.2.9 {
1796  SELECT word FROM x3 WHERE ruleset=2 AND word MATCH 'a' AND WORD MATCH 'b';
1797} {1 {unable to use function MATCH in the requested context}}
1798
1799do_execsql_test 8.2.10 {
1800  SELECT word FROM x3 WHERE ruleset=1 AND word MATCH 'a'
1801} {a v u t}
1802
1803# The term "ruleset<=1" is not handled by the fuzzer module. Instead, it
1804# is handled by SQLite, which assumes that all rows have a NULL value in
1805# the ruleset column. Since NULL<=1 is never true, this query returns
1806# no rows.
1807do_execsql_test 8.2.11 {
1808  SELECT word FROM x3 WHERE ruleset<=1 AND word MATCH 'a'
1809} {}
1810
1811do_execsql_test 8.2.12 {
1812  SELECT word FROM x3 WHERE ruleset=1 AND word MATCH 'a' ORDER BY distance ASC;
1813} {a v u t}
1814
1815do_execsql_test 8.2.13 {
1816  SELECT word FROM x3 WHERE ruleset=1 AND word MATCH 'a' ORDER BY distance DESC;
1817} {t u v a}
1818
1819do_execsql_test 8.2.13 {
1820  SELECT word FROM x3 WHERE ruleset=1 AND word MATCH 'a' ORDER BY word ASC;
1821} {a t u v}
1822
1823do_execsql_test 8.2.14 {
1824  SELECT word FROM x3 WHERE ruleset=1 AND word MATCH 'a' ORDER BY word DESC;
1825} {v u t a}
1826
1827
1828finish_test
1829
1830