diff options
Diffstat (limited to 'contrib/tsearch/query.c')
-rw-r--r-- | contrib/tsearch/query.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/contrib/tsearch/query.c b/contrib/tsearch/query.c index 9d5e126c5bc..0e495eaaae1 100644 --- a/contrib/tsearch/query.c +++ b/contrib/tsearch/query.c @@ -232,9 +232,18 @@ pushval_morph(QPRS_STATE * state, int typeval, char *strval, int lenval) lemm = lemmatize(token, &lenlemm, type); if (lemm) { + if ( lemm==token ) { + char *ptrs=token,*ptrd; + ptrd = lemm = palloc(lenlemm+1); + while(ptrs-token<lenlemm) { + *ptrd = tolower((unsigned char) *ptrs); + ptrs++; + ptrd++; + } + *ptrd='\0'; + } pushval_asis(state, VAL, lemm, lenlemm); - if (lemm != token) - pfree(lemm); + pfree(lemm); } else pushval_asis(state, VALTRUE, 0, 0); |