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