]> granicus.if.org Git - postgresql/commit
Fix regexp substring matching (substring(string from pattern)) for the corner
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 19 Mar 2008 02:41:08 +0000 (02:41 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 19 Mar 2008 02:41:08 +0000 (02:41 +0000)
commit90f58833638e4a0f5a0f62ff29f7e98d5a6ade83
treef4e61117e8fe74652b344144795cbbc907c94c00
parentd4cdc314df4efe107b1e6d4803340009c42d1d8d
Fix regexp substring matching (substring(string from pattern)) for the corner
case where there is a match to the pattern overall but the user has specified
a parenthesized subexpression and that subexpression hasn't got a match.
An example is substring('foo' from 'foo(bar)?').  This should return NULL,
since (bar) isn't matched, but it was mistakenly returning the whole-pattern
match instead (ie, 'foo').  Per bug #4044 from Rui Martins.

This has been broken since the beginning; patch in all supported versions.
The old behavior was sufficiently inconsistent that it's impossible to believe
anyone is depending on it.
src/backend/utils/adt/regexp.c