Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

* Use and respect the passfile connection parameter

The postgres documentation[1] regarding the password file, states

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.

This also moves the parsing of PGPASSFILE to `parseEnviron`.
Now the connection only checks the parameter passfile, that
is populated by `parseEnviron`.


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
July 20, 2019 06:54
July 20, 2019 06:54
September 1, 2021 16:08
September 9, 2021 09:15
July 2, 2019 18:50
May 6, 2022 18:13
June 8, 2020 13:51
September 13, 2017 09:06
August 30, 2022 22:52
April 28, 2023 23:32
February 12, 2021 11:49
October 13, 2021 15:51
December 31, 2016 16:29
August 8, 2017 11:42

pq - A pure Go postgres driver for Go's database/sql package



go get


  • SSL
  • Handles bad connections for database/sql
  • Scan time.Time correctly (i.e. timestamp[tz], time[tz], date)
  • Scan binary blobs correctly (i.e. bytea)
  • Package for hstore support
  • COPY FROM support
  • pq.ParseURL for converting urls to connection strings for sql.Open.
  • Many libpq compatible environment variables
  • Unix socket support
  • Notifications: LISTEN/NOTIFY
  • pgpass support
  • GSS (Kerberos) auth


go test is used for testing. See for more details.


This package is currently in maintenance mode, which means:

  1. It generally does not accept new features.
  2. It does accept bug fixes and version compatability changes provided by the community.
  3. Maintainers usually do not resolve reported issues.
  4. Community members are encouraged to help each other with reported issues.

For users that require new features or reliable resolution of reported bugs, we recommend using pgx which is under active development.