fts3near.test 32 KB

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