From e25a6e185bbb3894ed87459354099df877b0d311 Mon Sep 17 00:00:00 2001
From: Teodor Sigaev <teodor@sigaev.ru>
Date: Mon, 7 Jun 2004 16:48:18 +0000
Subject: [PATCH] Remove asymetrical word processing in query and text

---
 contrib/tsearch/query.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/contrib/tsearch/query.c b/contrib/tsearch/query.c
index bcf2e0d83c4..88b7f7e4cb2 100644
--- a/contrib/tsearch/query.c
+++ b/contrib/tsearch/query.c
@@ -240,9 +240,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);
-- 
GitLab