Merge branch 'prerelease' of ssh://git.zetetic.net/sqlcipher into prerelease
[sqlcipher.git] / test / fts3near.test
blob2d9981e5355197acfb28382c391005cfeadb6bb6
2 # 2007 October 15
4 # The author disclaims copyright to this source code.  In place of
5 # a legal notice, here is a blessing:
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.
11 #*************************************************************************
13 # $Id: fts3near.test,v 1.3 2009/01/02 17:33:46 danielk1977 Exp $
16 set testdir [file dirname $argv0]
17 source $testdir/tester.tcl
19 # If SQLITE_ENABLE_FTS3 is defined, omit this file.
20 ifcapable !fts3 {
21   finish_test
22   return
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');
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} 
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} 
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} 
91 # Output format of the offsets() function:
93 #     <column number> <term number> <starting offset> <number of bytes>
95 db eval {
96   INSERT INTO t1(content) VALUES('A X B C D A B');
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   \
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   );
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}}
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.
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   ') 
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>}}
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}
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');
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}
582 # Ticket 38b1ae018f.
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}}
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 } {}
597 finish_test