Re: change regexp_substr first argument make tests more easier to understand.
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Ilia Evdokimov <ilya.evdokimov@tantorlabs.com>
Cc: jian he <jian.universality@gmail.com>,
Tomas Vondra <tomas.vondra@enterprisedb.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-09-05T17:45:29Z
Lists: pgsql-hackers
Ilia Evdokimov <ilya.evdokimov@tantorlabs.com> writes:
> Current tests with regexp_instr() and regexp_substr() with string
> 'abcabcabc' are really unreadable and you would spend time to understand
> that happens in these tests and if they are really correct. I'd better
> change them into "abcdefghi" just like in query
> SELECT regexp_substr('abcdefghi', 'd.q') IS NULL AS t;
On looking more closely at these test cases, I think the point of them
is exactly to show the behavior of the functions with multiple copies
of the target substring. Thus, what Jian is proposing breaks the
tests: it's no longer perfectly clear whether the result is because
the function did what we expect, or because the pattern failed to
match anywhere else. (Sure, "a.c" *should* match "aXc", but if it
didn't, you wouldn't discover that from this test.) What Ilia
proposes would break them worse.
I think we should just reject this patch, or at least reject the
parts of it that change existing test cases. I have no opinion
about whether the new test cases add anything useful.
regards, tom lane