The postgres documentation[1] regarding the password file, states
that:
password file to use can be specified using the connection parameter
passfile or the environment variable PGPASSFILE.
The current implementation of lib/pq only respects the environment
variable PGPASSFILE. This is not correct, but also limiting, as
the PGPASSFILE is global and we might want to use different files
for different clients in the same program.
Fixing that is easy, by just checking the parameter passfile first,
and if not, pull the value from PGPASSFILE.
The postgres documentation[1] regarding the password file, states that:
password file to use can be specified using the connection parameter passfile or the environment variable PGPASSFILE.
The current implementation of lib/pq only respects the environment variable PGPASSFILE. This is not correct, but also limiting, as the PGPASSFILE is global and we might want to use different files for different clients in the same program.
Fixing that is easy, by just checking the parameter passfile first, and if not, pull the value from PGPASSFILE.
[1] https://www.postgresql.org/docs/current/libpq-pgpass.html
How to test
Start a postgres
Run the test
go test -run TestPgpass -v .