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