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:
parent
6d87107b0e
commit
4e71240dbb
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user