1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-22 23:02:54 +03:00

Now that I look at it, is_stopword() is broken and always has been.

Doesn't anyone remember how to program a binary search??
This commit is contained in:
Tom Lane 2000-07-04 06:29:27 +00:00
parent 6d87107b0e
commit 4e71240dbb

View File

@ -351,10 +351,9 @@ is_stopword(char *text)
StopLow = &StopWords[0]; /* initialize stuff for binary search */ StopLow = &StopWords[0]; /* initialize stuff for binary search */
StopHigh = endof(StopWords); StopHigh = endof(StopWords);
if (lengthof(StopWords) == 0) /* Loop invariant: *StopLow <= text < *StopHigh */
return false;
while (StopLow <= StopHigh) while (StopLow < StopHigh)
{ {
StopMiddle = StopLow + (StopHigh - StopLow) / 2; StopMiddle = StopLow + (StopHigh - StopLow) / 2;
difference = strcmp(*StopMiddle, text); difference = strcmp(*StopMiddle, text);
@ -363,7 +362,7 @@ is_stopword(char *text)
else if (difference < 0) else if (difference < 0)
StopLow = StopMiddle + 1; StopLow = StopMiddle + 1;
else else
StopHigh = StopMiddle - 1; StopHigh = StopMiddle;
} }
return (false); return (false);