mirror of https://github.com/sqlite/sqlite
Fix the NEAR connector in FTS3 so that it can take ranges in excess of 9.
The maximum range is now 32767. (CVS 5695) FossilOrigin-Name: 8e9b9553115c42dae38cad0612d98d9a0c453a5c
This commit is contained in:
parent
39001e7525
commit
8578611b95
|
@ -1824,7 +1824,7 @@ typedef struct QueryTerm {
|
|||
short int nPhrase; /* How many following terms are part of the same phrase */
|
||||
short int iPhrase; /* This is the i-th term of a phrase. */
|
||||
short int iColumn; /* Column of the index that must match this term */
|
||||
signed char nNear; /* term followed by a NEAR operator with span=(nNear-1) */
|
||||
short int nNear; /* term followed by a NEAR operator with span=(nNear-1) */
|
||||
signed char isOr; /* this term is preceded by "OR" */
|
||||
signed char isNot; /* this term is preceded by "-" */
|
||||
signed char isPrefix; /* this term is followed by "*" */
|
||||
|
@ -3805,10 +3805,10 @@ static int checkColumnSpecifier(
|
|||
}
|
||||
|
||||
/*
|
||||
** Parse the text at pSegment[0..nSegment-1]. Add additional terms
|
||||
** Parse the text at zSegment[0..nSegment-1]. Add additional terms
|
||||
** to the query being assemblied in pQuery.
|
||||
**
|
||||
** inPhrase is true if pSegment[0..nSegement-1] is contained within
|
||||
** inPhrase is true if zSegment[0..nSegement-1] is contained within
|
||||
** double-quotes. If inPhrase is true, then the first term
|
||||
** is marked with the number of terms in the phrase less one and
|
||||
** OR and "-" syntax is ignored. If inPhrase is false, then every
|
||||
|
@ -3816,7 +3816,7 @@ static int checkColumnSpecifier(
|
|||
*/
|
||||
static int tokenizeSegment(
|
||||
sqlite3_tokenizer *pTokenizer, /* The tokenizer to use */
|
||||
const char *pSegment, int nSegment, /* Query expression being parsed */
|
||||
const char *zSegment, int nSegment, /* Query expression being parsed */
|
||||
int inPhrase, /* True if within "..." */
|
||||
Query *pQuery /* Append results here */
|
||||
){
|
||||
|
@ -3826,49 +3826,45 @@ static int tokenizeSegment(
|
|||
int iCol;
|
||||
int nTerm = 1;
|
||||
|
||||
int rc = pModule->xOpen(pTokenizer, pSegment, nSegment, &pCursor);
|
||||
int rc = pModule->xOpen(pTokenizer, zSegment, nSegment, &pCursor);
|
||||
if( rc!=SQLITE_OK ) return rc;
|
||||
pCursor->pTokenizer = pTokenizer;
|
||||
|
||||
while( 1 ){
|
||||
const char *pToken;
|
||||
const char *zToken;
|
||||
int nToken, iBegin, iEnd, iPos;
|
||||
|
||||
rc = pModule->xNext(pCursor,
|
||||
&pToken, &nToken,
|
||||
&zToken, &nToken,
|
||||
&iBegin, &iEnd, &iPos);
|
||||
if( rc!=SQLITE_OK ) break;
|
||||
if( !inPhrase &&
|
||||
pSegment[iEnd]==':' &&
|
||||
(iCol = checkColumnSpecifier(pQuery->pFts, pToken, nToken))>=0 ){
|
||||
zSegment[iEnd]==':' &&
|
||||
(iCol = checkColumnSpecifier(pQuery->pFts, zToken, nToken))>=0 ){
|
||||
pQuery->nextColumn = iCol;
|
||||
continue;
|
||||
}
|
||||
if( !inPhrase && pQuery->nTerms>0 && nToken==2
|
||||
&& pSegment[iBegin+0]=='O'
|
||||
&& pSegment[iBegin+1]=='R'
|
||||
&& zSegment[iBegin+0]=='O'
|
||||
&& zSegment[iBegin+1]=='R'
|
||||
){
|
||||
pQuery->nextIsOr = 1;
|
||||
continue;
|
||||
}
|
||||
if( !inPhrase && pQuery->nTerms>0 && !pQuery->nextIsOr && nToken==4
|
||||
&& pSegment[iBegin+0]=='N'
|
||||
&& pSegment[iBegin+1]=='E'
|
||||
&& pSegment[iBegin+2]=='A'
|
||||
&& pSegment[iBegin+3]=='R'
|
||||
&& memcmp(&zSegment[iBegin], "NEAR", 4)==0
|
||||
){
|
||||
QueryTerm *pTerm = &pQuery->pTerms[pQuery->nTerms-1];
|
||||
if( (iBegin+6)<nSegment
|
||||
&& pSegment[iBegin+4] == '/'
|
||||
&& pSegment[iBegin+5]>='0' && pSegment[iBegin+5]<='9'
|
||||
&& zSegment[iBegin+4] == '/'
|
||||
&& isdigit(zSegment[iBegin+5])
|
||||
){
|
||||
pTerm->nNear = (pSegment[iBegin+5] - '0');
|
||||
nToken += 2;
|
||||
if( pSegment[iBegin+6]>='0' && pSegment[iBegin+6]<=9 ){
|
||||
pTerm->nNear = pTerm->nNear * 10 + (pSegment[iBegin+6] - '0');
|
||||
iEnd++;
|
||||
int k;
|
||||
pTerm->nNear = 0;
|
||||
for(k=5; (iBegin+k)<=nSegment && isdigit(zSegment[iBegin+k]); k++){
|
||||
pTerm->nNear = pTerm->nNear*10 + (zSegment[iBegin+k] - '0');
|
||||
}
|
||||
pModule->xNext(pCursor, &pToken, &nToken, &iBegin, &iEnd, &iPos);
|
||||
pModule->xNext(pCursor, &zToken, &nToken, &iBegin, &iEnd, &iPos);
|
||||
} else {
|
||||
pTerm->nNear = SQLITE_FTS3_DEFAULT_NEAR_PARAM;
|
||||
}
|
||||
|
@ -3876,11 +3872,11 @@ static int tokenizeSegment(
|
|||
continue;
|
||||
}
|
||||
|
||||
queryAdd(pQuery, pToken, nToken);
|
||||
if( !inPhrase && iBegin>0 && pSegment[iBegin-1]=='-' ){
|
||||
queryAdd(pQuery, zToken, nToken);
|
||||
if( !inPhrase && iBegin>0 && zSegment[iBegin-1]=='-' ){
|
||||
pQuery->pTerms[pQuery->nTerms-1].isNot = 1;
|
||||
}
|
||||
if( iEnd<nSegment && pSegment[iEnd]=='*' ){
|
||||
if( iEnd<nSegment && zSegment[iEnd]=='*' ){
|
||||
pQuery->pTerms[pQuery->nTerms-1].isPrefix = 1;
|
||||
}
|
||||
pQuery->pTerms[pQuery->nTerms-1].iPhrase = nTerm;
|
||||
|
|
14
manifest
14
manifest
|
@ -1,5 +1,5 @@
|
|||
C Declare\sthe\sisInterrupted\sfield\sof\sthe\ssqlite3\sstructure\sto\sbe\svolatile.\nTicket\s#3369.\s(CVS\s5694)
|
||||
D 2008-09-12T16:03:48
|
||||
C Fix\sthe\sNEAR\sconnector\sin\sFTS3\sso\sthat\sit\scan\stake\sranges\sin\sexcess\sof\s9.\nThe\smaximum\srange\sis\snow\s32767.\s(CVS\s5695)
|
||||
D 2008-09-12T18:25:31
|
||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||
F Makefile.in d15a7ebfe5e057a72a49805ffb302dbb601c8329
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
|
@ -51,7 +51,7 @@ F ext/fts2/fts2_tokenizer1.c 8545ce12b41922004da46e91a7b023b92b76f94e
|
|||
F ext/fts2/mkfts2amal.tcl 974d5d438cb3f7c4a652639262f82418c1e4cff0
|
||||
F ext/fts3/README.tokenizers 226644a0eab97724e8de83061912e8bb248461b6
|
||||
F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
|
||||
F ext/fts3/fts3.c fa37048c369491ba6fb74e1732f24a8a8daaef65
|
||||
F ext/fts3/fts3.c e67453b6ac421b79e600385491ed7f038b3bb271
|
||||
F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
|
||||
F ext/fts3/fts3_hash.c 83e7bb4042106b32811681dd2859b4577a7a6b35
|
||||
F ext/fts3/fts3_hash.h 004b759e1602ff16dfa02fea3ca1c77336ad6798
|
||||
|
@ -350,7 +350,7 @@ F test/fts3b.test b3a25180a633873d37d86e1ccd00ed690d37237a
|
|||
F test/fts3c.test 4c7ef29b37aca3e8ebb6a39b57910caa6506034e
|
||||
F test/fts3d.test d92a47fe8ed59c9e53d2d8e6d2685bb380aadadc
|
||||
F test/fts3e.test 1f6c6ac9cc8b772ca256e6b22aaeed50c9350851
|
||||
F test/fts3near.test 2d4dadcaac5025ab65bb87e66c45f39e92966194
|
||||
F test/fts3near.test e8a9b4e16c63a795918b334b74d4aec14815bf8b
|
||||
F test/func.test 628dc9b321fc66dd6d055fca6525e157004744e1
|
||||
F test/fuzz.test 62fc19dd36a427777fd671b569df07166548628a
|
||||
F test/fuzz2.test ea38692ce2da99ad79fe0be5eb1a452c1c4d37bb
|
||||
|
@ -635,7 +635,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
|
|||
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
P 80bdaafa77ec5c967f633eaaf5ee6f493a6e5a56
|
||||
R 459f9fc431217cf781a414864860109b
|
||||
P 414da4ebcecbed37177aecf649ddd3d258af260d
|
||||
R 30fe40585fda84091e0ee18bc0941dc6
|
||||
U drh
|
||||
Z 0b8a274367e2088529ac83c60572b420
|
||||
Z a8f9df1c6b8baaa9d26a99abcbf57852
|
||||
|
|
|
@ -1 +1 @@
|
|||
414da4ebcecbed37177aecf649ddd3d258af260d
|
||||
8e9b9553115c42dae38cad0612d98d9a0c453a5c
|
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id: fts3near.test,v 1.1 2007/10/22 18:02:20 danielk1977 Exp $
|
||||
# $Id: fts3near.test,v 1.2 2008/09/12 18:25:31 drh Exp $
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
|
@ -165,4 +165,401 @@ do_test fts3near-4.1 {
|
|||
}
|
||||
} {{<b>...</b> devices, handheld devices, etc. This <b>specification</b> also <b>supports</b> content positioning, downloadable fonts, <b>...</b>}}
|
||||
|
||||
do_test fts3near-5.1 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'specification attach'
|
||||
}
|
||||
} {2}
|
||||
do_test fts3near-5.2 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'specification NEAR attach'
|
||||
}
|
||||
} {}
|
||||
do_test fts3near-5.3 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/18 attach'
|
||||
}
|
||||
} {}
|
||||
do_test fts3near-5.4 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/19 attach'
|
||||
}
|
||||
} {2}
|
||||
do_test fts3near-5.5 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/000018 attach'
|
||||
}
|
||||
} {}
|
||||
do_test fts3near-5.6 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'specification NEAR/000019 attach'
|
||||
}
|
||||
} {2}
|
||||
|
||||
db eval {
|
||||
INSERT INTO t1 VALUES('
|
||||
abbrev aberrations abjurations aboding abr abscesses absolutistic
|
||||
abstention abuses acanthuses acceptance acclaimers accomplish
|
||||
accoutring accusation acetonic acid acolytes acquitting acrylonitrile
|
||||
actives acyclic addicted adenoid adjacently adjusting admissible
|
||||
adoption adulated advantaging advertisers aedes aerogramme aetiology
|
||||
affiliative afforest afterclap agamogenesis aggrade agings agonize
|
||||
agron ailurophile airfreight airspeed alarmists alchemizing
|
||||
alexandrines alien aliped all allergenic allocator allowances almost
|
||||
alphabetizes altho alvine amaurosis ambles ameliorate amicability amnio
|
||||
amour ampicillin amusement anadromous analogues anarchy anchormen
|
||||
anecdota aneurin angst animating anlage announcements anodized
|
||||
answerable antemeridian anthracene antiabortionist anticlimaxes
|
||||
antifriction antimitotic antiphon antiques antithetic anviled
|
||||
apatosaurus aphrodisia apodal aposiopesis apparatus appendectomies
|
||||
applications appraisingly appropriate apteryx arabinose
|
||||
arboricultural archdeaconates archipelago ardently arguers armadillo
|
||||
arnicas arrayed arrowy arthroscope artisans ascensive ashier
|
||||
aspersorium assail assentor assignees assonants astereognosis
|
||||
astringency astutest atheistical atomize attachment attenuates
|
||||
attrahent audibility augite auricle auteurists autobus autolysis
|
||||
autosome avenge avidest aw awl ayes babirusa backbeats backgrounder
|
||||
backseat backswings baddie bagnios baked balefuller ballista balmily
|
||||
bandbox bandylegged bankruptcy baptism barbering bargain barneys
|
||||
barracuda barterer bashes bassists bathers batterer bavardage
|
||||
beachfront beanstalk beauteous become bedim bedtimes beermats begat
|
||||
begun belabors bellarmine belongings bending benthos bereavements
|
||||
besieger bestialized betide bevels biases bicarbonates bidentate bigger
|
||||
bile billow bine biodynamics biomedicine biotites birding bisection
|
||||
bitingly bkg blackheads blaeberry blanking blatherer bleeper blindage
|
||||
blithefulness blockish bloodstreams bloused blubbing bluestocking
|
||||
blurted boatbill bobtailed boffo bold boltrope bondservant bonks
|
||||
bookbinding bookworm booting borating boscages botchers bougainvillea
|
||||
bounty bowlegged boyhood bracketed brainstorm brandishes
|
||||
braunschweigers brazilin breakneck breathlessness brewage bridesmaids
|
||||
brighter brisker broader brokerages bronziest browband brunets bryology
|
||||
bucking budlike bugleweed bulkily bulling bummer bunglers bureau burgs
|
||||
burrito bushfire buss butlery buttressing bylines cabdriver cached
|
||||
cadaverousnesses cafeterias cakewalk calcifies calendula callboy calms
|
||||
calyptra camisoles camps candelabrum caned cannolis canoodling cantors
|
||||
cape caponize capsuling caracoled carbolics carcase carditis caretakers
|
||||
carnallite carousel carrageenan cartels carves cashbook castanets
|
||||
casuistry catalyzer catchers categorizations cathexis caucuses
|
||||
causeway cavetto cede cella cementite centenary centrals ceramics ceria
|
||||
cervixes chafferer chalcopyrites chamfers change chaotically
|
||||
characteristically charivari chases chatterer cheats cheeks chef
|
||||
chemurgy chetah chickaree chigoes chillies chinning chirp chive
|
||||
chloroforms chokebore choplogic chorioids chromatic chronically
|
||||
chubbiest chunder chutzpah cimetidine cinque circulated circumscribe
|
||||
cirrose citrin claddagh clamorousness clapperboards classicalism
|
||||
clauses cleanse clemency clicker clinchers cliquiest clods closeting
|
||||
cloudscape clucking cnidarian coalfish coatrack coca cockfights coddled
|
||||
coeducation coexistence cognitively coiffed colatitude collage
|
||||
collections collinear colonelcy colorimetric columelliform combos
|
||||
comforters commence commercialist commit commorancy communized compar
|
||||
compendiously complainers compliance composition comprised comradery
|
||||
concelebrants concerted conciliation concourses condensate
|
||||
condonations confab confessionals confirmed conforming congeal
|
||||
congregant conjectured conjurers connoisseurs conscripting
|
||||
conservator consolable conspired constricting consuls contagious
|
||||
contemporaneity contesters continuities contractors contrarian
|
||||
contrive convalescents convents convexly convulsed cooncan coparcenary
|
||||
coprolite copyreader cordially corklike cornflour coroner corralling
|
||||
corrigible corsages cosies cosmonauts costumer cottontails counselings
|
||||
counterclaim counterpane countertenors courageously couth coveting
|
||||
coworker cozier cracklings crampon crappies craved cream credenzas
|
||||
crematoriums cresol cricoid crinkle criterion crocodile crore crossover
|
||||
crowded cruelest crunch cruzeiros cryptomeria cubism cuesta culprit
|
||||
cumquat cupped curdle curly cursoring curvy customized cutting cyclamens
|
||||
cylindrical cytaster dachshund daikon damages damselfly dangling
|
||||
darkest databanks dauphine dazzling deadpanned deathday debauchers
|
||||
debunking decameter decedents decibel decisions declinations
|
||||
decomposition decoratively decretive deduct deescalated defecating
|
||||
deferentially definiendum defluxion defrocks degrade deice dekaliters
|
||||
deli delinquencies deludedly demarcates demineralizers demodulating
|
||||
demonstrabilities demurred deniabilities denouncement denudation
|
||||
departure deplorable deposing depredatory deputizes derivational
|
||||
desalinization descriptors desexes desisted despising destitute
|
||||
detectability determiner detoxifying devalued devilries devotions
|
||||
dextrous diagenesis dialling diaphoresis diazonium dickeys diddums
|
||||
differencing dig dignified dildo dimetric dineric dinosaurs diplodocus
|
||||
directer dirty disagrees disassembler disburses disclosures
|
||||
disconcerts discountability discrete disembarrass disenthrone
|
||||
disgruntled dishpans disintegrators dislodged disobedient
|
||||
dispassionate dispiritednesses dispraised disqualifying
|
||||
dissatisfying dissidence dissolvers distich distracting distrusts
|
||||
ditto diverse divineness dizzily dockyard dodgers doggish doited dom
|
||||
dominium doohickey doozie dorsum doubleheaders dourer downbeats
|
||||
downshifted doyennes draftsman dramatic drawling dredge drifter
|
||||
drivelines droopier drowsed drunkards dubiosities duding dulcifying
|
||||
dumpcart duodecillion durable duteous dyed dysgenic eagles earplugs
|
||||
earwitness ebonite echoers economical ectothermous edibility educates
|
||||
effected effigies eggbeaters egresses ejaculates elasticize elector
|
||||
electrodynamometer electrophorus elem eligibly eloped emaciating
|
||||
embarcaderos embezzlers embosses embryectomy emfs emotionalizing
|
||||
empiricist emu enamels enchained encoded encrusts endeavored endogamous
|
||||
endothelioma energizes engager engrosses enl enologist enrolls ensphere
|
||||
enters entirety entrap entryways envies eosinophil epicentral
|
||||
epigrammatized episodic epochs equestrian equitably erect ernes
|
||||
errorless escalated eschatology espaliers essonite estop eternity
|
||||
ethnologically eudemonics euphonious euthenist evangelizations
|
||||
eventuality evilest evulsion examinee exceptionably exciter
|
||||
excremental execrably exemplars exhalant exhorter exocrine exothermic
|
||||
expected expends explainable exploratory expostulatory expunges
|
||||
extends externals extorts extrapolative extrorse eyebolt eyra
|
||||
facetiously factor faeries fairings fallacies falsities fancifulness
|
||||
fantasticalness farmhouse fascinate fatalistically fattener fave
|
||||
fearlessly featly federates feints fellowman fencers ferny
|
||||
fertilenesses feta feudality fibers fictionalize fiefs fightback
|
||||
filefish filmier finaglers fingerboards finochio firefly firmament
|
||||
fishmeal fitted fjords flagitiousnesses flamen flaps flatfooting
|
||||
flauntier fleapit fleshes flickertail flints floaty floorboards
|
||||
floristic flow fluffily fluorescein flutes flyspecks foetal folderols
|
||||
followable foolhardier footlockers foppish forceless foredo foreknows
|
||||
foreseeing foretaste forgather forlorn formidableness fortalice
|
||||
forwarding founding foxhunting fragmentarily frangipani fray freeform
|
||||
freezable freshening fridges frilliest frizzed frontbench frottages
|
||||
fruitcake fryable fugleman fulminated functionalists fungoid furfuran
|
||||
furtive fussy fwd gadolinium galabias gallinaceous galvanism gamers
|
||||
gangland gaoling garganey garrisoning gasp gate gauger gayety geed
|
||||
geminately generalissimos genii gentled geochronology geomorphic
|
||||
geriatricians gesellschaft ghat gibbeting giggles gimps girdlers
|
||||
glabella glaive glassfuls gleefully glistered globetrotted glorifier
|
||||
gloving glutathione glyptodont goaled gobsmacked goggliest golliwog
|
||||
goobers gooseberries gormandizer gouramis grabbier gradually grampuses
|
||||
grandmothers granulated graptolite gratuitously gravitates greaten
|
||||
greenmailer greys grills grippers groan gropingly grounding groveling
|
||||
grueled grunter guardroom guggle guineas gummed gunnysacks gushingly
|
||||
gutturals gynecoid gyrostabilizer habitudes haemophilia hailer hairs
|
||||
halest hallow halters hamsters handhelds handsaw hangup haranguer
|
||||
hardheartedness harlotry harps hashing hated hauntingly hayrack
|
||||
headcases headphone headword heartbreakers heaters hebephrenia
|
||||
hedonist heightening heliozoan helots hemelytron hemorrhagic hent
|
||||
herbicides hereunto heroines heteroclitics heterotrophs hexers
|
||||
hidebound hies hightails hindmost hippopotomonstrosesquipedalian
|
||||
histologist hittable hobbledehoys hogans holdings holocrine homegirls
|
||||
homesteader homogeneousness homopolar honeys hoodwinks hoovered
|
||||
horizontally horridness horseshoers hospitalization hotdogging houri
|
||||
housemate howitzers huffier humanist humid humors huntress husbandmen
|
||||
hyaenas hydride hydrokinetics hydroponically hygrothermograph
|
||||
hyperbolically hypersensitiveness hypnogogic hypodermically
|
||||
hypothermia iatrochemistry ichthyological idealist ideograms idling
|
||||
igniting illegal illuminatingly ilmenite imbibing immateriality
|
||||
immigrating immortalizes immures imparts impeder imperfection
|
||||
impersonated implant implying imposition imprecating imprimis
|
||||
improvising impv inanenesses inaugurate incapably incentivize
|
||||
incineration incloses incomparableness inconsequential incorporate
|
||||
incrementing incumbered indecorous indentation indicative indignities
|
||||
indistinguishably indoors indulges ineducation inerrable
|
||||
inexperienced infants infestations infirmnesses inflicting
|
||||
infracostal ingathered ingressions inheritances iniquity
|
||||
injuriousnesses innervated inoculates inquisitionist insectile
|
||||
insiders insolate inspirers instatement instr insulates intactness
|
||||
intellects intensifies intercalations intercontinental interferon
|
||||
interlarded intermarrying internalizing interpersonally
|
||||
interrelatednesses intersperse interviewees intolerance
|
||||
intransigents introducing intubates invades inventing inveterate
|
||||
invocate iodides irenicism ironsmith irreducibly irresistibility
|
||||
irriguous isobarisms isometrically issuable itineracies jackdaws
|
||||
jaggery jangling javelins jeeringly jeremiad jeweler jigsawing jitter
|
||||
jocosity jokester jot jowls judicative juicy jungly jurists juxtaposed
|
||||
kalpa karstify keddah kendo kermesses keynote kibbutznik kidnaper
|
||||
kilogram kindred kingpins kissers klatch kneads knobbed knowingest
|
||||
kookaburras kruller labefaction labyrinths lacquer laddered lagoons
|
||||
lambency laminates lancinate landscapist lankiness lapse larked lasso
|
||||
laterite laudableness laundrywomen lawgiver laypersons leafhoppers
|
||||
leapfrogs leaven leeches legated legislature leitmotifs lenients
|
||||
leprous letterheads levelling lexicographically liberalists
|
||||
librettist licorice lifesaving lightheadedly likelier limekiln limped
|
||||
lines linkers lipoma liquidator listeners litharge litmus
|
||||
liverishnesses loamier lobeline locative locutionary loggier loiterer
|
||||
longevity loomed loping lotion louts lowboys luaus lucrativeness lulus
|
||||
lumpier lungi lush luthern lymphangial lythraceous machinists maculate
|
||||
maggot magnetochemistry maharani maimers majored malaprops malignants
|
||||
maloti mammary manchineel manfully manicotti manipulativenesses
|
||||
mansards manufactories maraschino margin markdown marooning marshland
|
||||
mascaraing massaging masticate matchmark matings mattes mausoleum
|
||||
mayflies mealworm meataxe medevaced medievalist meetings megavitamin
|
||||
melded melodramatic memorableness mendaciousnesses mensurable
|
||||
mercenaries mere meronymous mesmerizes mestee metallurgical
|
||||
metastasize meterages meticulosity mewed microbe microcrystalline
|
||||
micromanager microsporophyll midiron miffed milder militiamen
|
||||
millesimal milometer mincing mingily minims minstrelsy mires
|
||||
misanthropic miscalculate miscomprehended misdefines misery mishears
|
||||
misled mispickel misrepresent misspending mistranslate miswriting
|
||||
mixologists mobilizers moderators modulate mojo mollies momentum monde
|
||||
monied monocles monographs monophyletic monotonousness moocher
|
||||
moorages morality morion mortally moseyed motherly motorboat mouldering
|
||||
mousers moveables mucky mudslides mulatto multicellularity
|
||||
multipartite multivalences mundanities murkiest mushed muskiness
|
||||
mutability mutisms mycelia myosotis mythicist nacred namable napkin
|
||||
narghile nastiness nattering nauseations nearliest necessitate
|
||||
necrophobia neg negotiators neologizes nephrotomy netiquette
|
||||
neurophysiology newbie newspaper niccolite nielsbohriums nightlong
|
||||
nincompoops nitpicked nix noddling nomadize nonadhesive noncandidates
|
||||
nonconducting nondigestible nones nongreasy nonjoinder nonoccurrence
|
||||
nonporousness nonrestrictive nonstaining nonuniform nooses northwards
|
||||
nostalgic notepaper nourishment noyades nuclides numberless numskulls
|
||||
nutmegged nymphaea oatmeal obis objurgators oblivious obsequiousness
|
||||
obsoletism obtruding occlusions ocher octettes odeums offcuts
|
||||
officiation ogival oilstone olestras omikron oncogenesis onsetting
|
||||
oomphs openly ophthalmoscope opposites optimum orangutans
|
||||
orchestrations ordn organophosphates origin ornithosis orthognathous
|
||||
oscillatory ossuaries ostracized ounce outbreaks outearning outgrows
|
||||
outlived outpoints outrunning outspends outwearing overabound
|
||||
overbalance overcautious overcrowds overdubbing overexpanding
|
||||
overgraze overindustrialize overlearning overoptimism overproducing
|
||||
overripe overshadowing overspreading overstuff overtones overwind ow
|
||||
oxidizing pacer packs paganish painstakingly palate palette pally
|
||||
palsying pandemic panhandled pantheism papaws papped parading
|
||||
parallelize paranoia parasitically pardners parietal parodied pars
|
||||
participator partridgeberry passerines password pastors
|
||||
paterfamiliases patination patrolman paunch pawnshops peacekeeper
|
||||
peatbog peculator pedestrianism peduncles pegboard pellucidnesses
|
||||
pendency penitentiary penstock pentylenetetrazol peptidase perched
|
||||
perennial performing perigynous peripheralize perjurer permissively
|
||||
perpetuals persistency perspicuously perturbingly pesky petcock
|
||||
petrologists pfennige pharmacies phenformin philanderers
|
||||
philosophically phonecards phosgenes photocomposer photogenic photons
|
||||
phototype phylloid physiotherapeutics picadores pickup pieces pigging
|
||||
pilaster pillion pimples pinioned pinpricks pipers pirogi pit
|
||||
pitifullest pizza placental plainly planing plasmin platforming
|
||||
playacts playwrights plectra pleurisy plopped plug plumule plussed
|
||||
poaches poetasters pointless polarize policyholder polkaed
|
||||
polyadelphous polygraphing polyphonous pomace ponderers pooch poplar
|
||||
porcelains portableness portly positioning postage posthumously
|
||||
postponed potages potholed poulard powdering practised pranksters
|
||||
preadapt preassigning precentors precipitous preconditions predefined
|
||||
predictors preengage prefers prehumans premedical prenotification
|
||||
preplanning prepuberty presbytery presentation presidia prestissimo
|
||||
preterites prevailer prewarmed priding primitively principalships
|
||||
prisage privileged probed prochurch proctoscope products proficients
|
||||
prognathism prohibiting proletarianisms prominence promulgates
|
||||
proofreading property proportions prorate proselytize prosthesis
|
||||
proteins prototypic provenances provitamin prudish pseudonymities
|
||||
psychoanalysts psychoneuroses psychrometer publishable pufferies
|
||||
pullet pulses punchy punkins purchased purities pursers pushover
|
||||
putridity pylons pyrogenous pzazz quadricepses quaff qualmish quarriers
|
||||
quasilinear queerness questionnaires quieten quintals quislings quoits
|
||||
rabidness racketeers radiative radioisotope radiotherapists ragingly
|
||||
rainband rakishness rampagers rands raped rare raspy ratiocinator
|
||||
rattlebrain ravening razz reactivation readoption realm reapportioning
|
||||
reasoning reattempts rebidding rebuts recapitulatory receptiveness
|
||||
recipes reckonings recognizee recommendatory reconciled reconnoiters
|
||||
recontaminated recoupments recruits recumbently redact redefine
|
||||
redheaded redistributable redraw redwing reeled reenlistment reexports
|
||||
refiles reflate reflowing refortified refried refuses regelate
|
||||
registrant regretting rehabilitative reigning reinduced reinstalled
|
||||
reinvesting rejoining relations relegates religiosities reluctivity
|
||||
remastered reminisce remodifying remounted rends renovate reordered
|
||||
repartee repel rephrase replicate repossessing reprint reprogramed
|
||||
repugnantly requiter rescheduling resegregate resettled residually
|
||||
resold resourcefulness respondent restating restrainedly resubmission
|
||||
resurveyed retaliating retiarius retorsion retreated retrofitting
|
||||
returning revanchism reverberated reverted revitalization
|
||||
revolutionize rewind rhapsodizing rhizogenic rhythms ricketinesses
|
||||
ridicule righteous rilles rinks rippliest ritualize riyals roast rockery
|
||||
roguish romanizations rookiest roquelaure rotation rotundity rounder
|
||||
routinizing rubberize rubricated ruefully ruining rummaged runic
|
||||
russets ruttish sackers sacrosanctly safeguarding said salaciousness
|
||||
salinity salsas salutatorians sampan sandbag saned santonin
|
||||
saprophagous sarnies satem saturant savaged sawbucks scablike scalp
|
||||
scant scared scatter schedulers schizophrenics schnauzers schoolmarms
|
||||
scintillae scleroses scoped scotched scram scratchiness screwball
|
||||
scripting scrubwomen scrutinizing scumbled scuttled seals seasickness
|
||||
seccos secretions secularizing seditiousnesses seeking segregators
|
||||
seize selfish semeiology seminarian semitropical sensate sensors
|
||||
sentimo septicemic sequentially serener serine serums
|
||||
sesquicentennials seventeen sexiest sforzandos shadowing shallot
|
||||
shampooing sharking shearer sheered shelters shifter shiner shipper
|
||||
shitted shoaled shofroth shorebirds shortsightedly showboated shrank
|
||||
shrines shucking shuttlecocks sickeningly sideling sidewise sigil
|
||||
signifiers siliceous silty simony simulative singled sinkings sirrah
|
||||
situps skateboarder sketchpad skim skirmished skulkers skywalk slander
|
||||
slating sleaziest sleepyheads slicking slink slitting slot slub
|
||||
slumlords smallest smattered smilier smokers smriti snailfish snatch
|
||||
snides snitching snooze snowblowers snub soapboxing socialite sockeyes
|
||||
softest sold solicitings solleret sombreros somnolencies sons sopor
|
||||
sorites soubrette soupspoon southpaw spaces spandex sparkers spatially
|
||||
speccing specking spectroscopists speedsters spermatics sphincter
|
||||
spiffied spindlings spirals spitball splayfeet splitter spokeswomen
|
||||
spooled sportily spousals sprightliness sprogs spurner squalene
|
||||
squattered squelches squirms stablish staggerings stalactitic stamp
|
||||
stands starflower starwort stations stayed steamroll steeplebush
|
||||
stemmatics stepfathers stereos steroid sticks stillage stinker
|
||||
stirringly stockpiling stomaching stopcock stormers strabismuses
|
||||
strainer strappado strawberries streetwise striae strikeouts strives
|
||||
stroppiest stubbed study stunting style suavity subchloride subdeb
|
||||
subfields subjoin sublittoral subnotebooks subprograms subside
|
||||
substantial subtenants subtreasuries succeeding sucked sufferers
|
||||
sugarier sulfaguanidine sulphating summerhouse sunbonnets sunned
|
||||
superagency supercontinent superheroes supernatural superscribing
|
||||
superthin supplest suppositive surcease surfs surprise survey
|
||||
suspiration svelte swamplands swashes sweatshop swellhead swindling
|
||||
switching sworn syllabuses sympathetics synchrocyclotron syndic
|
||||
synonymously syringed tablatures tabulation tackling taiga takas talker
|
||||
tamarisks tangential tans taproom tarpapers taskmaster tattiest
|
||||
tautologically taxied teacup tearjerkers technocracies teepee
|
||||
telegenic telephony telexed temperaments temptress tenderizing tensed
|
||||
tenuring tergal terned terror testatrices tetherball textile thatched
|
||||
their theorem thereof thermometers thewy thimerosal thirsty
|
||||
thoroughwort threateningly thrived through thumbnails thwacks
|
||||
ticketing tie til timekeepers timorousness tinkers tippers tisane
|
||||
titrating toastmaster toff toking tomb tongs toolmakings topes topple
|
||||
torose tortilla totalizing touchlines tousling townsmen trachea
|
||||
tradeable tragedienne traitorous trances transcendentalists
|
||||
transferrable tranship translating transmogrifying transportable
|
||||
transvestism traumatize treachery treed trenail tressing tribeswoman
|
||||
trichromatism triennials trikes trims triplicate tristich trivializes
|
||||
trombonist trots trouts trued trunnion tryster tubes tulle tundras turban
|
||||
turgescence turnround tutelar tweedinesses twill twit tympanum typists
|
||||
tzarists ulcered ultramodern umbles unaccountability unamended
|
||||
unassertivenesses unbanned unblocked unbundled uncertified unclaimed
|
||||
uncoated unconcerns unconvinced uncrossing undefined underbodice
|
||||
underemphasize undergrowth underpayment undershirts understudy
|
||||
underwritten undissolved unearthed unentered unexpended unfeeling
|
||||
unforeseen unfussy unhair unhinges unifilar unimproved uninvitingly
|
||||
universalization unknowns unlimbering unman unmet unnaturalness
|
||||
unornament unperturbed unprecedentedly unproportionate unread
|
||||
unreflecting unreproducible unripe unsatisfying unseaworthiness
|
||||
unsharable unsociable unstacking unsubtly untactfully untied untruest
|
||||
unveils unwilled unyokes upheave upraised upstart upwind urethrae
|
||||
urtexts usurers uvula vacillators vailed validation valvule vanities
|
||||
varia variously vassaled vav veggies velours venerator ventrals
|
||||
verbalizes verification vernacularized verticality vestigially via
|
||||
vicariously victoriousness viewpoint villainies vines violoncellist
|
||||
virtual viscus vital vitrify viviparous vocalizers voidable volleys
|
||||
volutes vouches vulcanology wackos waggery wainwrights waling wallowing
|
||||
wanking wardroom warmup wartiest washwoman watchman watermarks waverer
|
||||
wayzgoose weariest weatherstripped weediness weevil welcomed
|
||||
wentletrap whackers wheatworm whelp whf whinged whirl whistles whithers
|
||||
wholesomeness whosoever widows wikiup willowier windburned windsail
|
||||
wingspread winterkilled wisecracking witchgrass witling wobbliest
|
||||
womanliness woodcut woodworking woozy working worldwide worthiest
|
||||
wrappings wretched writhe wynd xylophone yardarm yea yelped yippee yoni
|
||||
yuks zealotry zigzagger zitherists zoologists zygosis');
|
||||
}
|
||||
|
||||
do_test fts3near-6.1 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'abbrev zygosis'
|
||||
}
|
||||
} {3}
|
||||
do_test fts3near-6.2 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR zygosis'
|
||||
}
|
||||
} {}
|
||||
do_test fts3near-6.3 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR/100 zygosis'
|
||||
}
|
||||
} {}
|
||||
do_test fts3near-6.4 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR/1000 zygosis'
|
||||
}
|
||||
} {}
|
||||
do_test fts3near-6.5 {
|
||||
execsql {
|
||||
SELECT docid FROM t1 WHERE content MATCH 'abbrev NEAR/10000 zygosis'
|
||||
}
|
||||
} {3}
|
||||
|
||||
|
||||
finish_test
|
||||
|
|
Loading…
Reference in New Issue