diff options
Diffstat (limited to 'src/backend/regex/regexec.c')
-rw-r--r-- | src/backend/regex/regexec.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/regex/regexec.c b/src/backend/regex/regexec.c index 7f41437cb58..5e78f8149c8 100644 --- a/src/backend/regex/regexec.c +++ b/src/backend/regex/regexec.c @@ -1190,6 +1190,10 @@ creviterdissect(struct vars * v, (k >= min_matches || min_matches - k < end - limit)) limit++; + /* if this is the last allowed sub-match, it must reach to the end */ + if (k >= max_matches) + limit = end; + /* try to find an endpoint for the k'th sub-match */ endpts[k] = shortest(v, d, endpts[k - 1], limit, end, (chr **) NULL, (int *) NULL); |