Postgres perl module namespace

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-05-20T19:47:43Z
Lists: pgsql-hackers
While solving a problem with the Beta RPMs, I noticed that they export
our perl test modules as capabilities like this:

    [andrew@f34 x86_64]$ rpm -q --provides -p
    postgresql14-devel-14-beta1_PGDG.fc34.x86_64.rpm | grep ^perl
    perl(PostgresNode)
    perl(PostgresVersion)
    perl(RecursiveCopy)
    perl(SimpleTee)
    perl(TestLib)


I don't think we should be putting this stuff in a global namespace like
that. We should invent a namespace that's not likely to conflict with
other people, like, say, 'PostgreSQL::Test' to put these modules. That
would require moving some code around and adjusting a bunch of scripts,
but it would not be difficult. Maybe something to be done post-14?
Meanwhile I would suggest that RPM maintainers exclude both requires and
provides for these five names.


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