On Thu, Nov 27, 2014 at 1:40 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>> This doesn't seem to me to be terribly well expressed (I know it's not your fault, quite possibly it's mine.)
Perhapswe should replace
>> [r]?[cyl](pp)?
>> with
>> (c|cpp|y|l|rc)
>
> +1 ... the original coding is illegible already, not to mention wrong
> since it will match stuff it shouldn't.
Yes even the older code could find matches with ry or rl. Except that,
lpp and ypp could be present as well. OK, there are low chances to be
present in a Postgres extension (I don't have such extensions myself),
still they could. So I think that this expression should be written
like that instead:
(c|cpp|l|lpp|y|ypp|rc).
Updated patch is attached.
--
Michael