• Tom Lane's avatar
    Fix regexp substring matching (substring(string from pattern)) for the corner · 965a2a19
    Tom Lane authored
    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.
    965a2a19
regexp.c 30.9 KB