pgsql: Refactor background psql TAP functions
Refactor background psql TAP functions
This breaks out the background and interactive psql functionality into a
new class, PostgreSQL::Test::BackgroundPsql. Sessions are still initiated
via PostgreSQL::Test::Cluster, but once started they can be manipulated by
the new helper functions which intend to make querying easier. A sample
session for a command which can be expected to finish at a later time can
be seen below.
my $session = $node->background_psql('postgres');
$bsession->query_until(qr/start/, q(
\echo start
CREATE INDEX CONCURRENTLY idx ON t(a);
));
$bsession->quit;
Patch by Andres Freund with some additional hacking by me.
Author: Andres Freund <andres@anarazel.de>
Reviewed-by: Andrew Dunstan <andrew@dunslane.net>
Discussion: /messages/by-id/20230130194350.zj5v467x4jgqt3d6@awork3.anarazel.de
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/664d757531e11ea5ef6971884ddb2a7af6fae69a
Modified Files
--------------
contrib/amcheck/t/003_cic_2pc.pl | 70 ++---
src/bin/psql/t/010_tab_completion.pl | 28 +-
src/test/perl/PostgreSQL/Test/BackgroundPsql.pm | 299 +++++++++++++++++++++
src/test/perl/PostgreSQL/Test/Cluster.pm | 79 ++----
.../recovery/t/010_logical_decoding_timelines.pl | 1 -
src/test/recovery/t/031_recovery_conflict.pl | 102 ++-----
src/test/subscription/t/015_stream.pl | 51 ++--
7 files changed, 388 insertions(+), 242 deletions(-)
On 07.04.23 22:21, Daniel Gustafsson wrote:
Refactor background psql TAP functions
This breaks out the background and interactive psql functionality into a
new class, PostgreSQL::Test::BackgroundPsql.
The new file also needs to be installed in
src/test/perl/{Makefile,meson.build}.
On 26 Apr 2023, at 08:28, Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote:
On 07.04.23 22:21, Daniel Gustafsson wrote:
Refactor background psql TAP functions
This breaks out the background and interactive psql functionality into a
new class, PostgreSQL::Test::BackgroundPsql.The new file also needs to be installed in src/test/perl/{Makefile,meson.build}.
Ugh, sorry about that. Fixing.
--
Daniel Gustafsson
Hello!
There is another perl module: AdjustUpgrade.pm that is not in Makefile. Do
we need it?
$(INSTALL_DATA) $(srcdir)/PostgreSQL/Test/RecursiveCopy.pm
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/RecursiveCopy.pm'
$(INSTALL_DATA) $(srcdir)/PostgreSQL/Test/Cluster.pm
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/Cluster.pm'
$(INSTALL_DATA) $(srcdir)/PostgreSQL/Test/BackgroundPsql.pm
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/BackgroundPsql.pm'
+ $(INSTALL_DATA) $(srcdir)/PostgreSQL/Test/BackgroundPsql.pm
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/AdjustUpgrade.pm'
$(INSTALL_DATA) $(srcdir)/PostgreSQL/Version.pm
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Version.pm'
uninstall:
@@ -32,6 +33,7 @@ uninstall:
rm -f
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/RecursiveCopy.pm'
rm -f '$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/Cluster.pm'
rm -f
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/BackgroundPsql.pm'
+ rm -f
'$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/AdjustUpgrade.pm'
rm -f '$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Version.pm'
Regards,
Damir Belyalov
Postgres Professional
On 16 May 2023, at 21:04, Damir Belyalov <dam.bel07@gmail.com> wrote:
There is another perl module: AdjustUpgrade.pm that is not in Makefile. Do we need it?
Yes, I think it should be installed too and skimming the linked thread I see no
mention of the omission being deliberate. I will take care of it.
+ $(INSTALL_DATA) $(srcdir)/PostgreSQL/Test/BackgroundPsql.pm '$(DESTDIR)$(pgxsdir)/$(subdir)/PostgreSQL/Test/AdjustUpgrade.pm'
This is wrong though, but no need to send a new version of this small thing.
--
Daniel Gustafsson
On 16 May 2023, at 21:43, Daniel Gustafsson <dgustafsson@postgresql.org> wrote:
On 16 May 2023, at 21:04, Damir Belyalov <dam.bel07@gmail.com> wrote:
There is another perl module: AdjustUpgrade.pm that is not in Makefile. Do we need it?
Yes, I think it should be installed too and skimming the linked thread I see no
mention of the omission being deliberate. I will take care of it.
The attached is the proposed fix, which will have to be backpatched to v11 to
match the original commit. Unless there are reasons to treat this module
differently from the others wrt installation I'll go ahead and fix it in time
for beta1.
--
Daniel Gustafsson
Attachments:
v1-0001-Add-installation-rules-for-AdjustUpgrade-test-mod.patchapplication/octet-stream; name=v1-0001-Add-installation-rules-for-AdjustUpgrade-test-mod.patch; x-unix-mode=0644Download+3-1
On 17 May 2023, at 14:38, Daniel Gustafsson <dgustafsson@postgresql.org> wrote:
On 16 May 2023, at 21:43, Daniel Gustafsson <dgustafsson@postgresql.org> wrote:
On 16 May 2023, at 21:04, Damir Belyalov <dam.bel07@gmail.com> wrote:
There is another perl module: AdjustUpgrade.pm that is not in Makefile. Do we need it?
Yes, I think it should be installed too and skimming the linked thread I see no
mention of the omission being deliberate. I will take care of it.The attached is the proposed fix, which will have to be backpatched to v11 to
match the original commit. Unless there are reasons to treat this module
differently from the others wrt installation I'll go ahead and fix it in time
for beta1.
After another round of thinking I opted out of pushing this, as the module is
so tied to pg_upgrade and the regress env it's use in installed pgxs is
questionable. While I would prefer a 1:1 between the modules in the source
tree and the installed tree, this module doesn't seem like a great fit for
installation.
--
Daniel Gustafsson