Repair bug in regexp split performance improvements. Commit c8ea87e4b introduced a temporary conversion buffer for substrings extracted during regexp splits. Unfortunately the code that sized it was failing to ignore the effects of ignored degenerate regexp matches, so for regexp_split_* calls it could under-size the buffer in such cases.
Fix, and add some regression test cases (though those will only catch the bug if run in a multibyte encoding). Backpatch to 9.3 as the faulty code was. Thanks to the PostGIS project, Regina Obe and Paul Ramsey for the report (via IRC) and assistance in analysis. Patch by me. Branch ------ REL9_5_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/77c2663de779f702dbe3fe6e05213c2eca14fcf5 Modified Files -------------- src/backend/utils/adt/regexp.c | 16 ++++++++++------ src/test/regress/expected/strings.out | 18 ++++++++++++++++++ src/test/regress/sql/strings.sql | 3 +++ 3 files changed, 31 insertions(+), 6 deletions(-)