• Tom Lane's avatar
    Fix similar_escape() so that SIMILAR TO works properly for patterns involving · cc39aca7
    Tom Lane authored
    alternatives ("|" symbol).  The original coding allowed the added ^ and $
    constraints to be absorbed into the first and last alternatives, producing
    a pattern that would match more than it should.  Per report from Eric Noriega.
    
    I also changed the pattern to add an ARE director ("***:"), ensuring that
    SIMILAR TO patterns do not change behavior if regex_flavor is changed.  This
    is necessary to make the non-capturing parentheses work, and seems like a
    good idea on general principles.
    
    Back-patched as far as 7.4.  7.3 also has the bug, but a fix seems impractical
    because that version's regex engine doesn't have non-capturing parens.
    cc39aca7
regexp.c 15.6 KB