]> granicus.if.org Git - postgresql/commit
Repair bug in regexp split performance improvements.
authorAndrew Gierth <rhodiumtoad@postgresql.org>
Wed, 12 Sep 2018 18:31:06 +0000 (19:31 +0100)
committerAndrew Gierth <rhodiumtoad@postgresql.org>
Wed, 12 Sep 2018 18:44:28 +0000 (19:44 +0100)
commitab78c6e36635da96c5ef8c229942a16b5391c0b9
tree4642ff6091df246b7bd3813fb0d225d25b0992a9
parent6592d89068b694af6894117e629ab45c1e1f49b2
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.
src/backend/utils/adt/regexp.c
src/test/regress/expected/strings.out
src/test/regress/sql/strings.sql