Pure Go Postgres driver for database/sql
Go Shell
Latest commit ba5d4f7 Feb 13, 2017 @mjibson mjibson committed on GitHub Merge pull request #564 from mjibson/multiple-tag-last
Return last instead of first tag
Permalink
Failed to load latest commit information.
certs sslmode=require compliance when root cert provided Jun 17, 2016
hstore Fix go vet lint even though it's kinda dumb here May 11, 2016
listen_example Remove unneeded for loop from listener example. Feb 13, 2017
oid Fix inconsistencies in import formatting Jan 22, 2015
.gitignore Add Vim temporary and backup files to .gitignore. Apr 17, 2012
.travis.sh Move server and client setup into shell script Jun 9, 2016
.travis.yml support conntext cancellation Jan 31, 2017
CONTRIBUTING.md Add CONTRIBUTING.md for contributing guidelines Oct 7, 2013
LICENSE.md Add more accurate copyright clause Jun 7, 2013
README.md Fix typo Jun 23, 2016
array.go Merge pull request #481 from cbandy/array-error Dec 20, 2016
array_test.go Merge pull request #481 from cbandy/array-error Dec 20, 2016
bench_test.go Transparently receive parameters in binary format when possible May 30, 2015
buf.go Document that readBuf.int16() is unsigned Jul 23, 2015
conn.go Return last instead of first tag Feb 13, 2017
conn_go18.go support conntext cancellation Jan 31, 2017
conn_test.go Return last instead of first tag Feb 13, 2017
copy.go Merge pull request #559 from mjibson/copy-bad-race Jan 17, 2017
copy_test.go TestCopyRespLoopConnectionError: Always ignore errors on stmt.Close() Jan 14, 2016
doc.go Document data types returned to database/sql Sep 3, 2016
encode.go Use space to separate date and time portions of Time literals Jan 1, 2017
encode_test.go Use space to separate date and time portions of Time literals Jan 1, 2017
error.go Fix bugs in errRecoverNoErrBadConn May 2, 2015
go18_test.go support conntext cancellation Jan 31, 2017
issues_test.go Keep track of being in the middle of a copy or not. Nov 2, 2016
notify.go Support arbitrary network dialers in listeners May 6, 2016
notify_test.go ListenerConn: Improve implementation of Close May 2, 2015
ssl.go Skip TLS-key file permissions check on Windows Oct 23, 2016
ssl_go1.7.go Accept TLS renegotiation requests initiated by the backend Oct 22, 2016
ssl_permissions.go Skip TLS-key file permissions check on Windows Oct 23, 2016
ssl_renegotiation.go Accept TLS renegotiation requests initiated by the backend Oct 22, 2016
ssl_test.go sslmode=require compliance when root cert provided Jun 17, 2016
ssl_windows.go Skip TLS-key file permissions check on Windows Oct 23, 2016
url.go Use `net.{Join,Split}HostPort` for proper ipv6 handling Feb 7, 2016
url_test.go Use `net.{Join,Split}HostPort` for proper ipv6 handling Feb 7, 2016
user_posix.go Support rumprun GOOS Apr 26, 2016
user_windows.go Fallback to USER env var if user.Current failed Jan 9, 2015
uuid.go Validate incoming binary UUID Dec 31, 2016
uuid_test.go Validate incoming binary UUID Dec 31, 2016

README.md

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

Build Status

Install

go get github.com/lib/pq

Docs

For detailed documentation and basic usage examples, please see the package documentation at http://godoc.org/github.com/lib/pq.

Tests

go test is used for testing. A running PostgreSQL server is required, with the ability to log in. The default database to connect to test with is "pqgotest," but it can be overridden using environment variables.

Example:

PGHOST=/run/postgresql go test github.com/lib/pq

Optionally, a benchmark suite can be run as part of the tests:

PGHOST=/run/postgresql go test -bench .

Features

  • 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

Future / Things you can help with

  • Better COPY FROM / COPY TO (see discussion in #181)

Thank you (alphabetical)

Some of these contributors are from the original library bmizerany/pq.go whose code still exists in here.

  • Andy Balholm (andybalholm)
  • Ben Berkert (benburkert)
  • Benjamin Heatwole (bheatwole)
  • Bill Mill (llimllib)
  • Bjørn Madsen (aeons)
  • Blake Gentry (bgentry)
  • Brad Fitzpatrick (bradfitz)
  • Charlie Melbye (cmelbye)
  • Chris Bandy (cbandy)
  • Chris Gilling (cgilling)
  • Chris Walsh (cwds)
  • Dan Sosedoff (sosedoff)
  • Daniel Farina (fdr)
  • Eric Chlebek (echlebek)
  • Eric Garrido (minusnine)
  • Eric Urban (hydrogen18)
  • Everyone at The Go Team
  • Evan Shaw (edsrzf)
  • Ewan Chou (coocood)
  • Fazal Majid (fazalmajid)
  • Federico Romero (federomero)
  • Fumin (fumin)
  • Gary Burd (garyburd)
  • Heroku (heroku)
  • James Pozdena (jpoz)
  • Jason McVetta (jmcvetta)
  • Jeremy Jay (pbnjay)
  • Joakim Sernbrant (serbaut)
  • John Gallagher (jgallagher)
  • Jonathan Rudenberg (titanous)
  • Joël Stemmer (jstemmer)
  • Kamil Kisiel (kisielk)
  • Kelly Dunn (kellydunn)
  • Keith Rarick (kr)
  • Kir Shatrov (kirs)
  • Lann Martin (lann)
  • Maciek Sakrejda (uhoh-itsmaciek)
  • Marc Brinkmann (mbr)
  • Marko Tiikkaja (johto)
  • Matt Newberry (MattNewberry)
  • Matt Robenolt (mattrobenolt)
  • Martin Olsen (martinolsen)
  • Mike Lewis (mikelikespie)
  • Nicolas Patry (Narsil)
  • Oliver Tonnhofer (olt)
  • Patrick Hayes (phayes)
  • Paul Hammond (paulhammond)
  • Ryan Smith (ryandotsmith)
  • Samuel Stauffer (samuel)
  • Timothée Peignier (cyberdelia)
  • Travis Cline (tmc)
  • TruongSinh Tran-Nguyen (truongsinh)
  • Yaismel Miranda (ympons)
  • notedit (notedit)