Re: Postgres perl module namespace
От | Noah Misch |
---|---|
Тема | Re: Postgres perl module namespace |
Дата | |
Msg-id | 20220624054540.GA853010@rfd.leadboat.com обсуждение исходный текст |
Ответ на | Re: Postgres perl module namespace (Andrew Dunstan <andrew@dunslane.net>) |
Ответы |
Re: Postgres perl module namespace
|
Список | pgsql-hackers |
On Wed, Jun 22, 2022 at 11:03:22AM -0400, Andrew Dunstan wrote: > On 2022-06-22 We 03:21, Noah Misch wrote: > > On Tue, Apr 19, 2022 at 07:24:58PM -0400, Andrew Dunstan wrote: > >> On 2022-04-19 Tu 18:39, Michael Paquier wrote: > >>> +*generate_ascii_string = *TestLib::generate_ascii_string; > >>> +*slurp_dir = *TestLib::slurp_dir; > >>> +*slurp_file = *TestLib::slurp_file; > >>> > >>> I am not sure if it is possible and my perl-fu is limited in this > >>> area, but could a failure be enforced when loading this path if a new > >>> routine added in TestLib.pm is forgotten in this list? > >> Not very easily that I'm aware of, but maybe some superior perl wizard > >> will know better. > > One can alias the symbol table, like https://metacpan.org/pod/Package::Alias > > does. I'm attaching what I plan to use. Today, check-world fails after > > > > sed -i 's/TestLib/PostgreSQL::Test::Utils/g; s/PostgresNode/PostgreSQL::Test::Cluster/g' **/*.pl > > > > on REL_14_STABLE, because today's alias list is incomplete. With this change, > > the same check-world passes. The patch wasn't sufficient to make that experiment pass for REL_10_STABLE, where 017_shm.pl uses the %params argument of get_new_node(). The problem call stack had PostgreSQL::Test::Cluster->get_new_code calling PostgreSQL::Test::Cluster->new, which needs v14- semantics. Here's a fixed version, just changing the new() hack. I suspect v1 also misbehaved for non-core tests that subclass PostgresNode (via the approach from commit 54dacc7) or PostgreSQL::Test::Cluster. I expect this version will work with subclasses written for v14- and with subclasses written for v15+. I didn't actually write dummy subclasses to test, and the relevant permutations are numerous (e.g. whether or not the subclass overrides new(), whether or not the subclass overrides get_new_node()). > Nice. 30 years of writing perl and I'm still learning of nifty features. Thanks for reviewing.
Вложения
В списке pgsql-hackers по дате отправления: