0004-redefine-bad-endpoint.patch
text/x-diff
Filename: 0004-redefine-bad-endpoint.patch
Type: text/x-diff
Part: 3
Patch
Format: unified
Series: patch 0004
| File | + | − |
|---|---|---|
| src/backend/tsearch/wparser_def.c | 3 | 2 |
| src/test/regress/expected/tsearch.out | 6 | 6 |
diff --git a/src/backend/tsearch/wparser_def.c b/src/backend/tsearch/wparser_def.c
index 84b6f8f9..aa4271a 100644
--- a/src/backend/tsearch/wparser_def.c
+++ b/src/backend/tsearch/wparser_def.c
@@ -2074,9 +2074,10 @@ mark_fragment(HeadlineParsedText *prs, int highlight, int startpos, int endpos)
#define INTERESTINGWORD(j) \
(prs->words[j].item && !prs->words[j].repeated)
-/* Don't want to end at a non-word or a short word */
+/* Don't want to end at a non-word or a short word, unless interesting */
#define BADENDPOINT(j) \
- (NOENDTOKEN(prs->words[j].type) || prs->words[j].len <= shortword)
+ ((NOENDTOKEN(prs->words[j].type) || prs->words[j].len <= shortword) && \
+ !INTERESTINGWORD(j))
typedef struct
{
diff --git a/src/test/regress/expected/tsearch.out b/src/test/regress/expected/tsearch.out
index e6fb820..36e995b 100644
--- a/src/test/regress/expected/tsearch.out
+++ b/src/test/regress/expected/tsearch.out
@@ -1367,15 +1367,15 @@ to_tsquery('english', 'sea&foo'), 'HighlightAll=true');
(1 row)
SELECT ts_headline('simple', '1 2 3 1 3'::text, '1 <-> 3', 'MaxWords=2, MinWords=1');
- ts_headline
--------------
- <b>1</b>
+ ts_headline
+-------------------
+ <b>1</b> <b>3</b>
(1 row)
SELECT ts_headline('simple', '1 2 3 1 3'::text, '1 & 3', 'MaxWords=4, MinWords=1');
- ts_headline
-------------------------------
- <b>1</b> 2 <b>3</b> <b>1</b>
+ ts_headline
+---------------------
+ <b>1</b> 2 <b>3</b>
(1 row)
SELECT ts_headline('simple', '1 2 3 1 3'::text, '1 <-> 3', 'MaxWords=4, MinWords=1');