mirror of
https://codeberg.org/superseriousbusiness/gotosocial.git
synced 2024-12-19 07:31:53 +03:00
24f6a447f3
Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.17.2 to 4.18.1. - [Release notes](https://github.com/jackc/pgx/releases) - [Changelog](https://github.com/jackc/pgx/blob/v4.18.1/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v4.17.2...v4.18.1) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
62 lines
2.2 KiB
Markdown
62 lines
2.2 KiB
Markdown
[![](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.
|
|
|
|
---
|
|
|
|
# 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.
|