pg_dump should use current_database() instead of PQdb()
Hackorum builds and tests every patch posted to the lists, not only commitfest submissions. This is Hackorum's own CI rather than the PostgreSQL project's, and it is still under testing - please report anything that looks wrong.
You can run a PostgreSQL built from this patch straight from Docker, with no checkout and no build:
docker run --rm -p 5432:5432 ghcr.io/hackorum-dev/postgres-patch:t38534psql -h localhost -U postgresBuilt from patchset v1 (message #1), July 27, 2026 at 08:40 PM.
Every patchset is also pushed to a branch of our PostgreSQL fork, so you can check out the same tree CI built. Without a PostgreSQL checkout:
git clone --branch t38534_1 https://github.com/hackorum-dev/postgres.gitIn a checkout you already have, add the fork once:
git remote add hackorum https://github.com/hackorum-dev/postgres.gitthen, for this patchset and every later one:
git fetch hackorum t38534_1 && git checkout t38534_1Patchset v1 (message #1) is on t38534_1
A report from a pgbouncer user revealed that running pg_dump -C/--create
does not work through a connection proxy if the virtual database name on
the proxy does not match the real database name on the database server.
That's because pg_dump looks up the database to be dumped using the
information from PQdb(). It should be using current_database() instead.
(The code was quite likely written before current_database() was
available (PG 7.3)).
See attached patch.
There are a few other uses of PQdb() in pg_dump, but I think those are
OK because they relate to connection information.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
A report from a pgbouncer user revealed that running pg_dump -C/--create
does not work through a connection proxy if the virtual database name on
the proxy does not match the real database name on the database server.
That's because pg_dump looks up the database to be dumped using the
information from PQdb(). It should be using current_database() instead.
(The code was quite likely written before current_database() was
available (PG 7.3)).
See attached patch.
Looks reasonable in a quick once-over, but I've not tested it.
regards, tom lane
On 4/10/18 12:40, Peter Eisentraut wrote:
A report from a pgbouncer user revealed that running pg_dump -C/--create
does not work through a connection proxy if the virtual database name on
the proxy does not match the real database name on the database server.
That's because pg_dump looks up the database to be dumped using the
information from PQdb(). It should be using current_database() instead.
(The code was quite likely written before current_database() was
available (PG 7.3)).See attached patch.
committed
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services