| From: | "Joel Jacobson" <joel(at)compiler(dot)org> |
|---|---|
| To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | "Mark Dilger" <mark(dot)dilger(at)enterprisedb(dot)com>, "Postgres hackers" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "Andreas Karlsson" <andreas(at)proxel(dot)se>, "David Fetter" <david(at)fetter(dot)org> |
| Subject: | Re: [PATCH] regexp_positions ( string text, pattern text, flags text ) → setof int4range[] |
| Date: | 2021-03-04 13:21:02 |
| Message-ID: | [email protected] |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Mar 2, 2021, at 06:31, Tom Lane wrote:
> "Joel Jacobson" <joel(at)compiler(dot)org> writes:
> > Unless fixed, then the way I see it, I don't think we can use int4range[] for regexp_positions(),
>
> Yeah. It's a cute idea, but the semantics aren't quite right.
Having abandoned the cute idea that didn't work,
here comes a new patch with a regexp_positions() instead returning
setof record (start_pos integer[], end_pos integer[]).
Example:
SELECT * FROM regexp_positions('foobarbequebazilbarfbonk', $re$(b[^b]+)(b[^b]+)$re$, 'g');
start_pos | end_pos
-----------+---------
{3,6} | {6,11}
{11,16} | {16,20}
(2 rows)
Based on HEAD (040af779382e8e4797242c49b93a5a8f9b79c370).
I've updated docs and tests.
/Joel
| Attachment | Content-Type | Size |
|---|---|---|
| 0002-regexp-positions.patch | application/octet-stream | 9.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alvaro Herrera | 2021-03-04 13:31:42 | Re: make coverage-html would fail within build directory separate from source tree |
| Previous Message | Bharath Rupireddy | 2021-03-04 12:55:13 | Re: Printing backtrace of postgres processes |