From: | jian he <jian(dot)universality(at)gmail(dot)com> |
---|---|
To: | Dominique Devienne <ddevienne(at)gmail(dot)com> |
Cc: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Latest patches break one of our unit-test, related to RLS |
Date: | 2025-09-12 13:53:34 |
Message-ID: | CACJufxHQA5HubHV88SztwENPyibfSBJ3wZNBDbJoR6svxmEGCw@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Fri, Sep 12, 2025 at 9:35 PM Dominique Devienne <ddevienne(at)gmail(dot)com> wrote:
>
> On Fri, Sep 12, 2025 at 3:29 PM Dominique Devienne <ddevienne(at)gmail(dot)com> wrote:
> > On Fri, Sep 12, 2025 at 3:24 PM Dominique Devienne <ddevienne(at)gmail(dot)com> wrote:
> > > On Fri, Sep 12, 2025 at 3:11 PM Dominique Devienne <ddevienne(at)gmail(dot)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.
From | Date | Subject | |
---|---|---|---|
Next Message | Dominique Devienne | 2025-09-12 13:57:45 | Re: Latest patches break one of our unit-test, related to RLS |
Previous Message | Dominique Devienne | 2025-09-12 13:34:58 | Re: Latest patches break one of our unit-test, related to RLS |