Re: Postgres perl module namespace

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Noah Misch <noah@leadboat.com>, Andres Freund <andres@anarazel.de>, Michael Paquier <michael@paquier.xyz>, Erik Rijkers <er@xs4all.nl>, Robert Haas <robertmhaas@gmail.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Mark Dilger <mark.dilger@enterprisedb.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-04-18T19:29:18Z
Lists: pgsql-hackers
On 2022-04-18 Mo 14:07, Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>> No, I think we could probably just port the whole of src/test/PostreSQL
>> back if required, and have it live alongside the old modules. Each TAP
>> test is a separate miracle - see comments elsewhere about port
>> assignment in parallel TAP tests.
>> But that would mean we have some tests in the old flavor and some in the
>> new flavor in the back branches, which might get confusing.
> That works for back-patching entire new test scripts, but not for adding
> some cases to an existing script, which I think is more common.
>
> 			


I think the only thing that should trip people up in those cases is the
the new/get_new_node thing. That's complicated by the fact that the old
PostgresNode module has both new() and get_new_node(), although it
advises people not to use its new(). Probably the best way around that
is a) rename it's new() and deal with any callers, and b) add a new
new(), which would be a wrapper around get_new_node(). I'll have a play
with that.


cheers


andrew


--
Andrew Dunstan
EDB: https://www.enterprisedb.com




Commits

  1. Fix PostgreSQL::Test aliasing for Perl v5.10.1.

  2. For PostgreSQL::Test compatibility, alias entire package symbol tables.

  3. Make PostgresNode easily subclassable