From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Aleksander Alekseev <aleksander(at)timescale(dot)com> |
Cc: | dhyan(at)nataraj(dot)su, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #18708: regex problem: (?:[^\d\D]){0} asserts with "lp->nouts == 0 && rp->nins == 0" |
Date: | 2024-11-15 02:14:27 |
Message-ID: | 2344149.1731636867@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
I wrote:
> So I think the right thing to do is to fix colorcomplement() so
> that it still produces some arc between its "from" and "to"
> states, keeping the graph connected until we finish parsing the
> regex. It has to be a dummy arc that can't match anything, of
> course. We can throw away such an arc once we get to regex
> optimization, because we don't need delsub() to work anymore.
> In the attached draft patch I represented the dummy arc as a PLAIN
> arc with a new fake color BLACK. Another way to do it could be to
> introduce a new arc "type" value, but that seemed like it would
> involve touching more code.
After thinking awhile longer, I decided to try it that way (with
a new arc type), and I believe I like the result better after all.
It's just a few lines more code, and I think it's more robust.
Up to now PLAIN arcs always matched exactly one character,
so the first version was putting a major dent in their semantics.
We got rid of the bogus arcs before doing anything that really leans
hard on arc semantics, but still it seems messy. Hence v2 attached.
I'm not especially in love with the CANTMATCH arc type name, but
other possibilities such as DUMMY or NOMATCH felt too generic.
Better ideas anyone?
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
v2-fix-bug-18708.patch | text/x-diff | 6.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2024-11-15 02:50:47 | BUG #18710: "pg_get_viewdef" triggers assertions in special scenarios |
Previous Message | Tom Lane | 2024-11-14 23:36:14 | Re: BUG #18708: regex problem: (?:[^\d\D]){0} asserts with "lp->nouts == 0 && rp->nins == 0" |