Re: Latest patches break one of our unit-test, related to RLS
От | jian he |
---|---|
Тема | Re: Latest patches break one of our unit-test, related to RLS |
Дата | |
Msg-id | CACJufxHQA5HubHV88SztwENPyibfSBJ3wZNBDbJoR6svxmEGCw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Latest patches break one of our unit-test, related to RLS (Dominique Devienne <ddevienne@gmail.com>) |
Ответы |
Re: Latest patches break one of our unit-test, related to RLS
|
Список | pgsql-general |
On Fri, Sep 12, 2025 at 9:35 PM Dominique Devienne <ddevienne@gmail.com> wrote: > > On Fri, Sep 12, 2025 at 3:29 PM Dominique Devienne <ddevienne@gmail.com> wrote: > > On Fri, Sep 12, 2025 at 3:24 PM Dominique Devienne <ddevienne@gmail.com> wrote: > > > On Fri, Sep 12, 2025 at 3:11 PM Dominique Devienne <ddevienne@gmail.com> wrote: > > > > > So I don't see how my `... where v similar to 'foo[\d\w]_%'` is incorrect. > > > So again, is this a bug / regression or not? Thanks, --DD > > > > If I use (x|y) instead of [xy] it seems to behave correctly. > > Whether x is the full-length POSIX class, or the shorthand notation. > > This DOES look like a bug, no? I've done regexes for a long time, > > and these two forms should be equivalent IMHO. --DD > > > > postgres=# show server_version; > > server_version > > ---------------- > > 18rc1 > > (1 row) > > > > > > postgres=# with t(v) as (values ('foo:bar'), ('foo/bar'), ('foo0bar')) > > select v from t where v similar to 'foo[\d\w]_%'; > > v > > --- > > (0 rows) > > > > > > postgres=# with t(v) as (values ('foo:bar'), ('foo/bar'), ('foo0bar')) > > select v from t where v similar to 'foo[[[:digit:]][[:word:]]]_%'; > > v > > --- > > (0 rows) > > The above two examples are the same, per (Table 9.21. Regular Expression Class-Shorthand Escapes) https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP my guess why 'foo0bar' will fail for 'foo[[[:digit:]][[:word:]]]_%'; 1. process character 0, it does meet [[:digits]] character class. 2. process character b, it does not meet [[:digits]], then fails, it won't check again whether character b is satisfied with [[:word:]] or not.
В списке pgsql-general по дате отправления: