summaryrefslogtreecommitdiff
path: root/contrib/tsearch/query.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tsearch/query.c')
-rw-r--r--contrib/tsearch/query.c13
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);