Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jackc/pgconn
https://github.com/jackc/pgconn
Last synced: 7 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/jackc/pgconn
- Owner: jackc
- License: mit
- Created: 2019-03-30T15:26:30.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-09T22:57:33.000Z (6 months ago)
- Last Synced: 2024-10-29T19:59:25.392Z (8 days ago)
- Language: Go
- Size: 332 KB
- Stars: 181
- Watchers: 8
- Forks: 86
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![](https://godoc.org/github.com/jackc/pgconn?status.svg)](https://godoc.org/github.com/jackc/pgconn)
![CI](https://github.com/jackc/pgconn/workflows/CI/badge.svg)---
This version is used with pgx `v4`. In pgx `v5` it is part of the https://github.com/jackc/pgx repository. Only bug
fixes will be made to this version. New features will only be considered for the current release.---
# pgconn
Package pgconn is a low-level PostgreSQL database driver. It operates at nearly the same level as the C library libpq.
It is primarily intended to serve as the foundation for higher level libraries such as https://github.com/jackc/pgx.
Applications should handle normal queries with a higher level library and only use pgconn directly when required for
low-level access to PostgreSQL functionality.## Example Usage
```go
pgConn, err := pgconn.Connect(context.Background(), os.Getenv("DATABASE_URL"))
if err != nil {
log.Fatalln("pgconn failed to connect:", err)
}
defer pgConn.Close(context.Background())result := pgConn.ExecParams(context.Background(), "SELECT email FROM users WHERE id=$1", [][]byte{[]byte("123")}, nil, nil, nil)
for result.NextRow() {
fmt.Println("User 123 has email:", string(result.Values()[0]))
}
_, err = result.Close()
if err != nil {
log.Fatalln("failed reading result:", err)
}
```## Testing
The pgconn tests require a PostgreSQL database. It will connect to the database specified in the `PGX_TEST_CONN_STRING`
environment variable. The `PGX_TEST_CONN_STRING` environment variable can be a URL or DSN. In addition, the standard `PG*`
environment variables will be respected. Consider using [direnv](https://github.com/direnv/direnv) to simplify
environment variable handling.### Example Test Environment
Connect to your PostgreSQL server and run:
```
create database pgx_test;
```Now you can run the tests:
```bash
PGX_TEST_CONN_STRING="host=/var/run/postgresql dbname=pgx_test" go test ./...
```### Connection and Authentication Tests
Pgconn supports multiple connection types and means of authentication. These tests are optional. They
will only run if the appropriate environment variable is set. Run `go test -v | grep SKIP` to see if any tests are being
skipped. Most developers will not need to enable these tests. See `ci/setup_test.bash` for an example set up if you need change
authentication code.