modernc.org/cc@v1.0.1/v2/testdata/_sqlite/test/fts3near.test (about)

     1  
     2  # 2007 October 15
     3  #
     4  # The author disclaims copyright to this source code.  In place of
     5  # a legal notice, here is a blessing:
     6  #
     7  #    May you do good and not evil.
     8  #    May you find forgiveness for yourself and forgive others.
     9  #    May you share freely, never taking more than you give.
    10  #
    11  #*************************************************************************
    12  #
    13  # $Id: fts3near.test,v 1.3 2009/01/02 17:33:46 danielk1977 Exp $
    14  #
    15  
    16  set testdir [file dirname $argv0]
    17  source $testdir/tester.tcl
    18  
    19  # If SQLITE_ENABLE_FTS3 is defined, omit this file.
    20  ifcapable !fts3 {
    21    finish_test
    22    return
    23  }
    24  
    25  db eval {
    26    CREATE VIRTUAL TABLE t1 USING fts3(content);
    27    INSERT INTO t1(content) VALUES('one three four five');
    28    INSERT INTO t1(content) VALUES('two three four five');
    29    INSERT INTO t1(content) VALUES('one two three four five');
    30  }
    31  
    32  do_test fts3near-1.1 {
    33    execsql {SELECT docid FROM t1 WHERE content MATCH 'one NEAR/0 three'}
    34  } {1}
    35  do_test fts3near-1.2 {
    36    execsql {SELECT docid FROM t1 WHERE content MATCH 'one NEAR/1 two'}
    37  } {3}
    38  do_test fts3near-1.3 {
    39    execsql {SELECT docid FROM t1 WHERE content MATCH 'one NEAR/1 three'}
    40  } {1 3}
    41  do_test fts3near-1.4 {
    42    execsql {SELECT docid FROM t1 WHERE content MATCH 'three NEAR/1 one'}
    43  } {1 3}
    44  do_test fts3near-1.5 {
    45    execsql {SELECT docid FROM t1 WHERE content MATCH '"one two" NEAR/1 five'}
    46  } {}
    47  do_test fts3near-1.6 {
    48    execsql {SELECT docid FROM t1 WHERE content MATCH '"one two" NEAR/2 five'}
    49  } {3}
    50  do_test fts3near-1.7 {
    51    execsql {SELECT docid FROM t1 WHERE content MATCH 'one NEAR four'}
    52  } {1 3}
    53  do_test fts3near-1.8 {
    54    execsql {SELECT docid FROM t1 WHERE content MATCH 'four NEAR three'}
    55  } {1 2 3}
    56  do_test fts3near-1.9 {
    57    execsql {SELECT docid FROM t1 WHERE content MATCH '"four five" NEAR/0 three'}
    58  } {1 2 3}
    59  do_test fts3near-1.10 {
    60    execsql {SELECT docid FROM t1 WHERE content MATCH '"four five" NEAR/2 one'}
    61  } {1 3}
    62  do_test fts3near-1.11 {
    63    execsql {SELECT docid FROM t1 WHERE content MATCH '"four five" NEAR/1 one'}
    64  } {1}
    65  do_test fts3near-1.12 {
    66    execsql {SELECT docid FROM t1 WHERE content MATCH 'five NEAR/1 "two three"'}
    67  } {2 3} 
    68  do_test fts3near-1.13 {
    69    execsql {SELECT docid FROM t1 WHERE content MATCH 'one NEAR five'}
    70  } {1 3} 
    71  
    72  do_test fts3near-1.14 {
    73    execsql {SELECT docid FROM t1 WHERE content MATCH 'four NEAR four'}
    74  } {} 
    75  do_test fts3near-1.15 {
    76    execsql {SELECT docid FROM t1 WHERE content MATCH 'one NEAR two NEAR one'}
    77  } {3} 
    78  
    79  do_test fts3near-1.16 {
    80    execsql {
    81      SELECT docid FROM t1 WHERE content MATCH '"one three" NEAR/0 "four five"'
    82    }
    83  } {1} 
    84  do_test fts3near-1.17 {
    85    execsql {
    86      SELECT docid FROM t1 WHERE content MATCH '"four five" NEAR/0 "one three"'
    87    }
    88  } {1} 
    89  
    90  
    91  # Output format of the offsets() function:
    92  #
    93  #     <column number> <term number> <starting offset> <number of bytes>
    94  #
    95  db eval {
    96    INSERT INTO t1(content) VALUES('A X B C D A B');
    97  }
    98  do_test fts3near-2.1 {
    99    execsql {
   100      SELECT offsets(t1) FROM t1 WHERE content MATCH 'A NEAR/0 B'
   101    }
   102  } {{0 0 10 1 0 1 12 1}}
   103  do_test fts3near-2.2 {
   104    execsql {
   105      SELECT offsets(t1) FROM t1 WHERE content MATCH 'B NEAR/0 A'
   106    }
   107  } {{0 1 10 1 0 0 12 1}}
   108  do_test fts3near-2.3 {
   109    execsql {
   110      SELECT offsets(t1) FROM t1 WHERE content MATCH '"C D" NEAR/0 A'
   111    }
   112  } {{0 0 6 1 0 1 8 1 0 2 10 1}}
   113  do_test fts3near-2.4 {
   114    execsql {
   115      SELECT offsets(t1) FROM t1 WHERE content MATCH 'A NEAR/0 "C D"'
   116    }
   117  } {{0 1 6 1 0 2 8 1 0 0 10 1}}
   118  do_test fts3near-2.5 {
   119    execsql {
   120      SELECT offsets(t1) FROM t1 WHERE content MATCH 'A NEAR A'
   121    }
   122  } {{0 0 0 1 0 1 0 1 0 0 10 1 0 1 10 1}}
   123  do_test fts3near-2.6 {
   124    execsql {
   125      INSERT INTO t1 VALUES('A A A');
   126      SELECT offsets(t1) FROM t1 WHERE content MATCH 'A NEAR/2 A';
   127    }
   128  } [list [list 0 0 0 1   0 1 0 1   0 0 2 1   0 1 2 1   0 0 4 1   0 1 4 1]]
   129  do_test fts3near-2.7 {
   130    execsql {
   131      DELETE FROM t1;
   132      INSERT INTO t1 VALUES('A A A A');
   133      SELECT offsets(t1) FROM t1 WHERE content MATCH 'A NEAR A NEAR A';
   134    }
   135  } [list [list \
   136      0 0 0 1   0 1 0 1   0 2 0 1   0 0 2 1   \
   137      0 1 2 1   0 2 2 1   0 0 4 1   0 1 4 1   \
   138      0 2 4 1   0 0 6 1   0 1 6 1   0 2 6 1   \
   139  ]]
   140  
   141  db eval {
   142    DELETE FROM t1;
   143    INSERT INTO t1(content) VALUES(
   144      'one two three two four six three six nine four eight twelve'
   145    );
   146  }
   147  
   148  do_test fts3near-3.1 {
   149    execsql {SELECT offsets(t1) FROM t1 WHERE content MATCH 'three NEAR/1 one'}
   150  } {{0 1 0 3 0 0 8 5}}
   151  do_test fts3near-3.2 {
   152    execsql {SELECT offsets(t1) FROM t1 WHERE content MATCH 'one NEAR/1 three'}
   153  } {{0 0 0 3 0 1 8 5}}
   154  do_test fts3near-3.3 {
   155    execsql {SELECT offsets(t1) FROM t1 WHERE content MATCH 'three NEAR/1 two'}
   156  } {{0 1 4 3 0 0 8 5 0 1 14 3}}
   157  do_test fts3near-3.4 {
   158    execsql {SELECT offsets(t1) FROM t1 WHERE content MATCH 'three NEAR/2 two'}
   159  } {{0 1 4 3 0 0 8 5 0 1 14 3 0 0 27 5}}
   160  do_test fts3near-3.5 {
   161    execsql {SELECT offsets(t1) FROM t1 WHERE content MATCH 'two NEAR/2 three'}
   162  } {{0 0 4 3 0 1 8 5 0 0 14 3 0 1 27 5}}
   163  do_test fts3near-3.6 {
   164    execsql {
   165      SELECT offsets(t1) FROM t1 WHERE content MATCH 'three NEAR/0 "two four"'
   166    }
   167  } {{0 0 8 5 0 1 14 3 0 2 18 4}}
   168  do_test fts3near-3.7 {
   169    execsql {
   170      SELECT offsets(t1) FROM t1 WHERE content MATCH '"two four" NEAR/0 three'}
   171  } {{0 2 8 5 0 0 14 3 0 1 18 4}}
   172  
   173  db eval {
   174    INSERT INTO t1(content) VALUES('
   175      This specification defines Cascading Style Sheets, level 2 (CSS2). CSS2 is a style sheet language that allows authors and users to attach style (e.g., fonts, spacing, and aural cues) to structured documents (e.g., HTML documents and XML applications). By separating the presentation style of documents from the content of documents, CSS2 simplifies Web authoring and site maintenance.
   176  
   177      CSS2 builds on CSS1 (see [CSS1]) and, with very few exceptions, all valid CSS1 style sheets are valid CSS2 style sheets. CSS2 supports media-specific style sheets so that authors may tailor the presentation of their documents to visual browsers, aural devices, printers, braille devices, handheld devices, etc. This specification also supports content positioning, downloadable fonts, table layout, features for internationalization, automatic counters and numbering, and some properties related to user interface.
   178    ') 
   179  }
   180  do_test fts3near-4.1 {
   181    execsql {
   182      SELECT snippet(t1) FROM t1 WHERE content MATCH 'specification NEAR supports'
   183    }
   184  } {{<b>...</b>braille devices, handheld devices, etc. This <b>specification</b> also <b>supports</b> content positioning, downloadable fonts, table layout<b>...</b>}}
   185  
   186  do_test fts3near-5.1 {
   187    execsql {
   188      SELECT docid FROM t1 WHERE content MATCH 'specification attach'
   189    }
   190  } {2}
   191  do_test fts3near-5.2 {
   192    execsql {
   193      SELECT docid FROM t1 WHERE content MATCH 'specification NEAR attach'
   194    }
   195  } {}
   196  do_test fts3near-5.3 {
   197    execsql {
   198      SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/18 attach'
   199    }
   200  } {}
   201  do_test fts3near-5.4 {
   202    execsql {
   203      SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/19 attach'
   204    }
   205  } {2}
   206  do_test fts3near-5.5 {
   207    execsql {
   208      SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/000018 attach'
   209    }
   210  } {}
   211  do_test fts3near-5.6 {
   212    execsql {
   213      SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/000019 attach'
   214    }
   215  } {2}
   216  
   217  db eval {
   218    INSERT INTO t1 VALUES('
   219        abbrev aberrations abjurations aboding abr abscesses absolutistic
   220        abstention abuses acanthuses acceptance acclaimers accomplish
   221        accoutring accusation acetonic acid acolytes acquitting acrylonitrile
   222        actives acyclic addicted adenoid adjacently adjusting admissible
   223        adoption adulated advantaging advertisers aedes aerogramme aetiology
   224        affiliative afforest afterclap agamogenesis aggrade agings agonize
   225        agron ailurophile airfreight airspeed alarmists alchemizing
   226        alexandrines alien aliped all allergenic allocator allowances almost
   227        alphabetizes altho alvine amaurosis ambles ameliorate amicability amnio
   228        amour ampicillin amusement anadromous analogues anarchy anchormen
   229        anecdota aneurin angst animating anlage announcements anodized
   230        answerable antemeridian anthracene antiabortionist anticlimaxes
   231        antifriction antimitotic antiphon antiques antithetic anviled
   232        apatosaurus aphrodisia apodal aposiopesis apparatus appendectomies
   233        applications appraisingly appropriate apteryx arabinose
   234        arboricultural archdeaconates archipelago ardently arguers armadillo
   235        arnicas arrayed arrowy arthroscope artisans ascensive ashier
   236        aspersorium assail assentor assignees assonants astereognosis
   237        astringency astutest atheistical atomize attachment attenuates
   238        attrahent audibility augite auricle auteurists autobus autolysis
   239        autosome avenge avidest aw awl ayes babirusa backbeats backgrounder
   240        backseat backswings baddie bagnios baked balefuller ballista balmily
   241        bandbox bandylegged bankruptcy baptism barbering bargain barneys
   242        barracuda barterer bashes bassists bathers batterer bavardage
   243        beachfront beanstalk beauteous become bedim bedtimes beermats begat
   244        begun belabors bellarmine belongings bending benthos bereavements
   245        besieger bestialized betide bevels biases bicarbonates bidentate bigger
   246        bile billow bine biodynamics biomedicine biotites birding bisection
   247        bitingly bkg blackheads blaeberry blanking blatherer bleeper blindage
   248        blithefulness blockish bloodstreams bloused blubbing bluestocking
   249        blurted boatbill bobtailed boffo bold boltrope bondservant bonks
   250        bookbinding bookworm booting borating boscages botchers bougainvillea
   251        bounty bowlegged boyhood bracketed brainstorm brandishes
   252        braunschweigers brazilin breakneck breathlessness brewage bridesmaids
   253        brighter brisker broader brokerages bronziest browband brunets bryology
   254        bucking budlike bugleweed bulkily bulling bummer bunglers bureau burgs
   255        burrito bushfire buss butlery buttressing bylines cabdriver cached
   256        cadaverousnesses cafeterias cakewalk calcifies calendula callboy calms
   257        calyptra camisoles camps candelabrum caned cannolis canoodling cantors
   258        cape caponize capsuling caracoled carbolics carcase carditis caretakers
   259        carnallite carousel carrageenan cartels carves cashbook castanets
   260        casuistry catalyzer catchers categorizations cathexis caucuses
   261        causeway cavetto cede cella cementite centenary centrals ceramics ceria
   262        cervixes chafferer chalcopyrites chamfers change chaotically
   263        characteristically charivari chases chatterer cheats cheeks chef
   264        chemurgy chetah chickaree chigoes chillies chinning chirp chive
   265        chloroforms chokebore choplogic chorioids chromatic chronically
   266        chubbiest chunder chutzpah cimetidine cinque circulated circumscribe
   267        cirrose citrin claddagh clamorousness clapperboards classicalism
   268        clauses cleanse clemency clicker clinchers cliquiest clods closeting
   269        cloudscape clucking cnidarian coalfish coatrack coca cockfights coddled
   270        coeducation coexistence cognitively coiffed colatitude collage
   271        collections collinear colonelcy colorimetric columelliform combos
   272        comforters commence commercialist commit commorancy communized compar
   273        compendiously complainers compliance composition comprised comradery
   274        concelebrants concerted conciliation concourses condensate
   275        condonations confab confessionals confirmed conforming congeal
   276        congregant conjectured conjurers connoisseurs conscripting
   277        conservator consolable conspired constricting consuls contagious
   278        contemporaneity contesters continuities contractors contrarian
   279        contrive convalescents convents convexly convulsed cooncan coparcenary
   280        coprolite copyreader cordially corklike cornflour coroner corralling
   281        corrigible corsages cosies cosmonauts costumer cottontails counselings
   282        counterclaim counterpane countertenors courageously couth coveting
   283        coworker cozier cracklings crampon crappies craved cream credenzas
   284        crematoriums cresol cricoid crinkle criterion crocodile crore crossover
   285        crowded cruelest crunch cruzeiros cryptomeria cubism cuesta culprit
   286        cumquat cupped curdle curly cursoring curvy customized cutting cyclamens
   287        cylindrical cytaster dachshund daikon damages damselfly dangling
   288        darkest databanks dauphine dazzling deadpanned deathday debauchers
   289        debunking decameter decedents decibel decisions declinations
   290        decomposition decoratively decretive deduct deescalated defecating
   291        deferentially definiendum defluxion defrocks degrade deice dekaliters
   292        deli delinquencies deludedly demarcates demineralizers demodulating
   293        demonstrabilities demurred deniabilities denouncement denudation
   294        departure deplorable deposing depredatory deputizes derivational
   295        desalinization descriptors desexes desisted despising destitute
   296        detectability determiner detoxifying devalued devilries devotions
   297        dextrous diagenesis dialling diaphoresis diazonium dickeys diddums
   298        differencing dig dignified dildo dimetric dineric dinosaurs diplodocus
   299        directer dirty disagrees disassembler disburses disclosures
   300        disconcerts discountability discrete disembarrass disenthrone
   301        disgruntled dishpans disintegrators dislodged disobedient
   302        dispassionate dispiritednesses dispraised disqualifying
   303        dissatisfying dissidence dissolvers distich distracting distrusts
   304        ditto diverse divineness dizzily dockyard dodgers doggish doited dom
   305        dominium doohickey doozie dorsum doubleheaders dourer downbeats
   306        downshifted doyennes draftsman dramatic drawling dredge drifter
   307        drivelines droopier drowsed drunkards dubiosities duding dulcifying
   308        dumpcart duodecillion durable duteous dyed dysgenic eagles earplugs
   309        earwitness ebonite echoers economical ectothermous edibility educates
   310        effected effigies eggbeaters egresses ejaculates elasticize elector
   311        electrodynamometer electrophorus elem eligibly eloped emaciating
   312        embarcaderos embezzlers embosses embryectomy emfs emotionalizing
   313        empiricist emu enamels enchained encoded encrusts endeavored endogamous
   314        endothelioma energizes engager engrosses enl enologist enrolls ensphere
   315        enters entirety entrap entryways envies eosinophil epicentral
   316        epigrammatized episodic epochs equestrian equitably erect ernes
   317        errorless escalated eschatology espaliers essonite estop eternity
   318        ethnologically eudemonics euphonious euthenist evangelizations
   319        eventuality evilest evulsion examinee exceptionably exciter
   320        excremental execrably exemplars exhalant exhorter exocrine exothermic
   321        expected expends explainable exploratory expostulatory expunges
   322        extends externals extorts extrapolative extrorse eyebolt eyra
   323        facetiously factor faeries fairings fallacies falsities fancifulness
   324        fantasticalness farmhouse fascinate fatalistically fattener fave
   325        fearlessly featly federates feints fellowman fencers ferny
   326        fertilenesses feta feudality fibers fictionalize fiefs fightback
   327        filefish filmier finaglers fingerboards finochio firefly firmament
   328        fishmeal fitted fjords flagitiousnesses flamen flaps flatfooting
   329        flauntier fleapit fleshes flickertail flints floaty floorboards
   330        floristic flow fluffily fluorescein flutes flyspecks foetal folderols
   331        followable foolhardier footlockers foppish forceless foredo foreknows
   332        foreseeing foretaste forgather forlorn formidableness fortalice
   333        forwarding founding foxhunting fragmentarily frangipani fray freeform
   334        freezable freshening fridges frilliest frizzed frontbench frottages
   335        fruitcake fryable fugleman fulminated functionalists fungoid furfuran
   336        furtive fussy fwd gadolinium galabias gallinaceous galvanism gamers
   337        gangland gaoling garganey garrisoning gasp gate gauger gayety geed
   338        geminately generalissimos genii gentled geochronology geomorphic
   339        geriatricians gesellschaft ghat gibbeting giggles gimps girdlers
   340        glabella glaive glassfuls gleefully glistered globetrotted glorifier
   341        gloving glutathione glyptodont goaled gobsmacked goggliest golliwog
   342        goobers gooseberries gormandizer gouramis grabbier gradually grampuses
   343        grandmothers granulated graptolite gratuitously gravitates greaten
   344        greenmailer greys grills grippers groan gropingly grounding groveling
   345        grueled grunter guardroom guggle guineas gummed gunnysacks gushingly
   346        gutturals gynecoid gyrostabilizer habitudes haemophilia hailer hairs
   347        halest hallow halters hamsters handhelds handsaw hangup haranguer
   348        hardheartedness harlotry harps hashing hated hauntingly hayrack
   349        headcases headphone headword heartbreakers heaters hebephrenia
   350        hedonist heightening heliozoan helots hemelytron hemorrhagic hent
   351        herbicides hereunto heroines heteroclitics heterotrophs hexers
   352        hidebound hies hightails hindmost hippopotomonstrosesquipedalian
   353        histologist hittable hobbledehoys hogans holdings holocrine homegirls
   354        homesteader homogeneousness homopolar honeys hoodwinks hoovered
   355        horizontally horridness horseshoers hospitalization hotdogging houri
   356        housemate howitzers huffier humanist humid humors huntress husbandmen
   357        hyaenas hydride hydrokinetics hydroponically hygrothermograph
   358        hyperbolically hypersensitiveness hypnogogic hypodermically
   359        hypothermia iatrochemistry ichthyological idealist ideograms idling
   360        igniting illegal illuminatingly ilmenite imbibing immateriality
   361        immigrating immortalizes immures imparts impeder imperfection
   362        impersonated implant implying imposition imprecating imprimis
   363        improvising impv inanenesses inaugurate incapably incentivize
   364        incineration incloses incomparableness inconsequential incorporate
   365        incrementing incumbered indecorous indentation indicative indignities
   366        indistinguishably indoors indulges ineducation inerrable
   367        inexperienced infants infestations infirmnesses inflicting
   368        infracostal ingathered ingressions inheritances iniquity
   369        injuriousnesses innervated inoculates inquisitionist insectile
   370        insiders insolate inspirers instatement instr insulates intactness
   371        intellects intensifies intercalations intercontinental interferon
   372        interlarded intermarrying internalizing interpersonally
   373        interrelatednesses intersperse interviewees intolerance
   374        intransigents introducing intubates invades inventing inveterate
   375        invocate iodides irenicism ironsmith irreducibly irresistibility
   376        irriguous isobarisms isometrically issuable itineracies jackdaws
   377        jaggery jangling javelins jeeringly jeremiad jeweler jigsawing jitter
   378        jocosity jokester jot jowls judicative juicy jungly jurists juxtaposed
   379        kalpa karstify keddah kendo kermesses keynote kibbutznik kidnaper
   380        kilogram kindred kingpins kissers klatch kneads knobbed knowingest
   381        kookaburras kruller labefaction labyrinths lacquer laddered lagoons
   382        lambency laminates lancinate landscapist lankiness lapse larked lasso
   383        laterite laudableness laundrywomen lawgiver laypersons leafhoppers
   384        leapfrogs leaven leeches legated legislature leitmotifs lenients
   385        leprous letterheads levelling lexicographically liberalists
   386        librettist licorice lifesaving lightheadedly likelier limekiln limped
   387        lines linkers lipoma liquidator listeners litharge litmus
   388        liverishnesses loamier lobeline locative locutionary loggier loiterer
   389        longevity loomed loping lotion louts lowboys luaus lucrativeness lulus
   390        lumpier lungi lush luthern lymphangial lythraceous machinists maculate
   391        maggot magnetochemistry maharani maimers majored malaprops malignants
   392        maloti mammary manchineel manfully manicotti manipulativenesses
   393        mansards manufactories maraschino margin markdown marooning marshland
   394        mascaraing massaging masticate matchmark matings mattes mausoleum
   395        mayflies mealworm meataxe medevaced medievalist meetings megavitamin
   396        melded melodramatic memorableness mendaciousnesses mensurable
   397        mercenaries mere meronymous mesmerizes mestee metallurgical
   398        metastasize meterages meticulosity mewed microbe microcrystalline
   399        micromanager microsporophyll midiron miffed milder militiamen
   400        millesimal milometer mincing mingily minims minstrelsy mires
   401        misanthropic miscalculate miscomprehended misdefines misery mishears
   402        misled mispickel misrepresent misspending mistranslate miswriting
   403        mixologists mobilizers moderators modulate mojo mollies momentum monde
   404        monied monocles monographs monophyletic monotonousness moocher
   405        moorages morality morion mortally moseyed motherly motorboat mouldering
   406        mousers moveables mucky mudslides mulatto multicellularity
   407        multipartite multivalences mundanities murkiest mushed muskiness
   408        mutability mutisms mycelia myosotis mythicist nacred namable napkin
   409        narghile nastiness nattering nauseations nearliest necessitate
   410        necrophobia neg negotiators neologizes nephrotomy netiquette
   411        neurophysiology newbie newspaper niccolite nielsbohriums nightlong
   412        nincompoops nitpicked nix noddling nomadize nonadhesive noncandidates
   413        nonconducting nondigestible nones nongreasy nonjoinder nonoccurrence
   414        nonporousness nonrestrictive nonstaining nonuniform nooses northwards
   415        nostalgic notepaper nourishment noyades nuclides numberless numskulls
   416        nutmegged nymphaea oatmeal obis objurgators oblivious obsequiousness
   417        obsoletism obtruding occlusions ocher octettes odeums offcuts
   418        officiation ogival oilstone olestras omikron oncogenesis onsetting
   419        oomphs openly ophthalmoscope opposites optimum orangutans
   420        orchestrations ordn organophosphates origin ornithosis orthognathous
   421        oscillatory ossuaries ostracized ounce outbreaks outearning outgrows
   422        outlived outpoints outrunning outspends outwearing overabound
   423        overbalance overcautious overcrowds overdubbing overexpanding
   424        overgraze overindustrialize overlearning overoptimism overproducing
   425        overripe overshadowing overspreading overstuff overtones overwind ow
   426        oxidizing pacer packs paganish painstakingly palate palette pally
   427        palsying pandemic panhandled pantheism papaws papped parading
   428        parallelize paranoia parasitically pardners parietal parodied pars
   429        participator partridgeberry passerines password pastors
   430        paterfamiliases patination patrolman paunch pawnshops peacekeeper
   431        peatbog peculator pedestrianism peduncles pegboard pellucidnesses
   432        pendency penitentiary penstock pentylenetetrazol peptidase perched
   433        perennial performing perigynous peripheralize perjurer permissively
   434        perpetuals persistency perspicuously perturbingly pesky petcock
   435        petrologists pfennige pharmacies phenformin philanderers
   436        philosophically phonecards phosgenes photocomposer photogenic photons
   437        phototype phylloid physiotherapeutics picadores pickup pieces pigging
   438        pilaster pillion pimples pinioned pinpricks pipers pirogi pit
   439        pitifullest pizza placental plainly planing plasmin platforming
   440        playacts playwrights plectra pleurisy plopped plug plumule plussed
   441        poaches poetasters pointless polarize policyholder polkaed
   442        polyadelphous polygraphing polyphonous pomace ponderers pooch poplar
   443        porcelains portableness portly positioning postage posthumously
   444        postponed potages potholed poulard powdering practised pranksters
   445        preadapt preassigning precentors precipitous preconditions predefined
   446        predictors preengage prefers prehumans premedical prenotification
   447        preplanning prepuberty presbytery presentation presidia prestissimo
   448        preterites prevailer prewarmed priding primitively principalships
   449        prisage privileged probed prochurch proctoscope products proficients
   450        prognathism prohibiting proletarianisms prominence promulgates
   451        proofreading property proportions prorate proselytize prosthesis
   452        proteins prototypic provenances provitamin prudish pseudonymities
   453        psychoanalysts psychoneuroses psychrometer publishable pufferies
   454        pullet pulses punchy punkins purchased purities pursers pushover
   455        putridity pylons pyrogenous pzazz quadricepses quaff qualmish quarriers
   456        quasilinear queerness questionnaires quieten quintals quislings quoits
   457        rabidness racketeers radiative radioisotope radiotherapists ragingly
   458        rainband rakishness rampagers rands raped rare raspy ratiocinator
   459        rattlebrain ravening razz reactivation readoption realm reapportioning
   460        reasoning reattempts rebidding rebuts recapitulatory receptiveness
   461        recipes reckonings recognizee recommendatory reconciled reconnoiters
   462        recontaminated recoupments recruits recumbently redact redefine
   463        redheaded redistributable redraw redwing reeled reenlistment reexports
   464        refiles reflate reflowing refortified refried refuses regelate
   465        registrant regretting rehabilitative reigning reinduced reinstalled
   466        reinvesting rejoining relations relegates religiosities reluctivity
   467        remastered reminisce remodifying remounted rends renovate reordered
   468        repartee repel rephrase replicate repossessing reprint reprogramed
   469        repugnantly requiter rescheduling resegregate resettled residually
   470        resold resourcefulness respondent restating restrainedly resubmission
   471        resurveyed retaliating retiarius retorsion retreated retrofitting
   472        returning revanchism reverberated reverted revitalization
   473        revolutionize rewind rhapsodizing rhizogenic rhythms ricketinesses
   474        ridicule righteous rilles rinks rippliest ritualize riyals roast rockery
   475        roguish romanizations rookiest roquelaure rotation rotundity rounder
   476        routinizing rubberize rubricated ruefully ruining rummaged runic
   477        russets ruttish sackers sacrosanctly safeguarding said salaciousness
   478        salinity salsas salutatorians sampan sandbag saned santonin
   479        saprophagous sarnies satem saturant savaged sawbucks scablike scalp
   480        scant scared scatter schedulers schizophrenics schnauzers schoolmarms
   481        scintillae scleroses scoped scotched scram scratchiness screwball
   482        scripting scrubwomen scrutinizing scumbled scuttled seals seasickness
   483        seccos secretions secularizing seditiousnesses seeking segregators
   484        seize selfish semeiology seminarian semitropical sensate sensors
   485        sentimo septicemic sequentially serener serine serums
   486        sesquicentennials seventeen sexiest sforzandos shadowing shallot
   487        shampooing sharking shearer sheered shelters shifter shiner shipper
   488        shitted shoaled shofroth shorebirds shortsightedly showboated shrank
   489        shrines shucking shuttlecocks sickeningly sideling sidewise sigil
   490        signifiers siliceous silty simony simulative singled sinkings sirrah
   491        situps skateboarder sketchpad skim skirmished skulkers skywalk slander
   492        slating sleaziest sleepyheads slicking slink slitting slot slub
   493        slumlords smallest smattered smilier smokers smriti snailfish snatch
   494        snides snitching snooze snowblowers snub soapboxing socialite sockeyes
   495        softest sold solicitings solleret sombreros somnolencies sons sopor
   496        sorites soubrette soupspoon southpaw spaces spandex sparkers spatially
   497        speccing specking spectroscopists speedsters spermatics sphincter
   498        spiffied spindlings spirals spitball splayfeet splitter spokeswomen
   499        spooled sportily spousals sprightliness sprogs spurner squalene
   500        squattered squelches squirms stablish staggerings stalactitic stamp
   501        stands starflower starwort stations stayed steamroll steeplebush
   502        stemmatics stepfathers stereos steroid sticks stillage stinker
   503        stirringly stockpiling stomaching stopcock stormers strabismuses
   504        strainer strappado strawberries streetwise striae strikeouts strives
   505        stroppiest stubbed study stunting style suavity subchloride subdeb
   506        subfields subjoin sublittoral subnotebooks subprograms subside
   507        substantial subtenants subtreasuries succeeding sucked sufferers
   508        sugarier sulfaguanidine sulphating summerhouse sunbonnets sunned
   509        superagency supercontinent superheroes supernatural superscribing
   510        superthin supplest suppositive surcease surfs surprise survey
   511        suspiration svelte swamplands swashes sweatshop swellhead swindling
   512        switching sworn syllabuses sympathetics synchrocyclotron syndic
   513        synonymously syringed tablatures tabulation tackling taiga takas talker
   514        tamarisks tangential tans taproom tarpapers taskmaster tattiest
   515        tautologically taxied teacup tearjerkers technocracies teepee
   516        telegenic telephony telexed temperaments temptress tenderizing tensed
   517        tenuring tergal terned terror testatrices tetherball textile thatched
   518        their theorem thereof thermometers thewy thimerosal thirsty
   519        thoroughwort threateningly thrived through thumbnails thwacks
   520        ticketing tie til timekeepers timorousness tinkers tippers tisane
   521        titrating toastmaster toff toking tomb tongs toolmakings topes topple
   522        torose tortilla totalizing touchlines tousling townsmen trachea
   523        tradeable tragedienne traitorous trances transcendentalists
   524        transferrable tranship translating transmogrifying transportable
   525        transvestism traumatize treachery treed trenail tressing tribeswoman
   526        trichromatism triennials trikes trims triplicate tristich trivializes
   527        trombonist trots trouts trued trunnion tryster tubes tulle tundras turban
   528        turgescence turnround tutelar tweedinesses twill twit tympanum typists
   529        tzarists ulcered ultramodern umbles unaccountability unamended
   530        unassertivenesses unbanned unblocked unbundled uncertified unclaimed
   531        uncoated unconcerns unconvinced uncrossing undefined underbodice
   532        underemphasize undergrowth underpayment undershirts understudy
   533        underwritten undissolved unearthed unentered unexpended unfeeling
   534        unforeseen unfussy unhair unhinges unifilar unimproved uninvitingly
   535        universalization unknowns unlimbering unman unmet unnaturalness
   536        unornament unperturbed unprecedentedly unproportionate unread
   537        unreflecting unreproducible unripe unsatisfying unseaworthiness
   538        unsharable unsociable unstacking unsubtly untactfully untied untruest
   539        unveils unwilled unyokes upheave upraised upstart upwind urethrae
   540        urtexts usurers uvula vacillators vailed validation valvule vanities
   541        varia variously vassaled vav veggies velours venerator ventrals
   542        verbalizes verification vernacularized verticality vestigially via
   543        vicariously victoriousness viewpoint villainies vines violoncellist
   544        virtual viscus vital vitrify viviparous vocalizers voidable volleys
   545        volutes vouches vulcanology wackos waggery wainwrights waling wallowing
   546        wanking wardroom warmup wartiest washwoman watchman watermarks waverer
   547        wayzgoose weariest weatherstripped weediness weevil welcomed
   548        wentletrap whackers wheatworm whelp whf whinged whirl whistles whithers
   549        wholesomeness whosoever widows wikiup willowier windburned windsail
   550        wingspread winterkilled wisecracking witchgrass witling wobbliest
   551        womanliness woodcut woodworking woozy working worldwide worthiest
   552        wrappings wretched writhe wynd xylophone yardarm yea yelped yippee yoni
   553        yuks zealotry zigzagger zitherists zoologists zygosis');
   554  }
   555  
   556  do_test fts3near-6.1 {
   557    execsql {
   558      SELECT docid FROM t1 WHERE content MATCH 'abbrev zygosis'
   559    }
   560  } {3}
   561  do_test fts3near-6.2 {
   562    execsql {
   563      SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR zygosis'
   564    }
   565  } {}
   566  do_test fts3near-6.3 {
   567    execsql {
   568      SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR/100 zygosis'
   569    }
   570  } {}
   571  do_test fts3near-6.4 {
   572    execsql {
   573      SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR/1000 zygosis'
   574    }
   575  } {}
   576  do_test fts3near-6.5 {
   577    execsql {
   578      SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR/10000 zygosis'
   579    }
   580  } {3}
   581  
   582  # Ticket 38b1ae018f.
   583  #
   584  do_execsql_test fts3near-7.1 {
   585    CREATE VIRTUAL TABLE x USING fts4(y,z);
   586    INSERT INTO x VALUES('aaa bbb ccc ddd', 'bbb ddd aaa ccc');
   587    SELECT * FROM x where y MATCH 'bbb NEAR/6 aaa';
   588  } {{aaa bbb ccc ddd} {bbb ddd aaa ccc}}
   589  
   590  do_execsql_test fts3near-7.2 {
   591    CREATE VIRTUAL TABLE t2 USING fts4(a, b);
   592    INSERT INTO t2 VALUES('A B C', 'A D E');
   593    SELECT * FROM t2 where t2 MATCH 'a:A NEAR E'
   594  } {}
   595  
   596  
   597  finish_test