Re: Assert triggered during RE_compile_and_cache
Mark Dilger <mark.dilger@enterprisedb.com>
From: Mark Dilger <mark.dilger@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-08-05T22:22:57Z
Lists: pgsql-hackers
Attachments
- backref.pl (text/x-perl-script)
- (unnamed) (text/plain)
> On Aug 5, 2021, at 3:15 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> I don't immediately see what's different about your failing case
> versus the not-failing ones.
I have now found lots of cases of this failure. I *believe* the backreference is always greater than 1, and it is always in a capture group which then has the {0} or {0,0} applied to it.
You can find lots of cases using the attached regex generating script I whipped up for testing your work. (Note this is just a quick and dirty tool for hacking, not anything refined.)
Commits
-
Check the size in COPY_POINTER_FIELD
- c1132aae336c 15.0 cited
-
Rethink regexp engine's backref-related compilation state.
- 5227d9989672 14.0 landed
- 00116dee5ad4 15.0 landed
-
Fix use-after-free issue in regexp engine.
- f42ea8350db2 14.0 landed
- cc1868799c83 15.0 landed
-
Make regexp engine's backref-related compilation state more bulletproof.
- cb76fbd7ec87 15.0 landed
- 5e6ad63c6db7 14.0 landed
-
Really fix the ambiguity in REFRESH MATERIALIZED VIEW CONCURRENTLY.
- ba9f665a4413 13.4 cited
-
Avoid generating extra subre tree nodes for capturing parentheses.
- ea1268f6301c 14.0 cited