Re: IPC::Run::time[r|out] vs our TAP tests

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Daniel Gustafsson <daniel@yesql.se>
Cc: Andrew Dunstan <andrew@dunslane.net>, Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-02-11T20:19:00Z
Lists: pgsql-hackers

Attachments

Daniel Gustafsson <daniel@yesql.se> writes:
> [ v4 patches for better timeout handling ]

I got around to reviewing these finally.  v4-0001 looks good, except
that there is now another copy of the same logic in 030_pager.pl
which should be fixed in the same way.  Proposed revision to do that
attached.

I'm not very comfortable with v4-0002, specifically the decision
that sub query and sub query_until should now return undef instead
of dying.  I think that next to no call sites will handle that well.
Also, as this stands both subs will fail to reset $self->{stdout},
pretty much guaranteeing that the next query will fail too.
(Although if psql is stuck, do we have any chance at all of
subsequent tests succeeding?  Dying might be superior to spewing
a bunch of content-free follow-on failures.)

a1d7ae2b2 already made what I think is the critical debuggability
improvement in sub query, namely to not die until after reporting
whatever we got from the query.  I'm inclined to suggest that
sub query_until should be made to print a similar report, but
still die on timeout.

			regards, tom lane

Commits

  1. Restart BackgroundPsql's timer more nicely.

  2. Implement pg_wal_replay_wait() stored procedure

  3. psql: fix variable existence tab completion