# README
pq - A pure Go postgres driver for Go's database/sql package
Install
go get github.com/lib/pq
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
- GSS (Kerberos) auth
Tests
go test
is used for testing. See TESTS.md for more details.
Status
This package is currently in maintenance mode, which means:
- It generally does not accept new features.
- It does accept bug fixes and version compatability changes provided by the community.
- Maintainers usually do not resolve reported issues.
- 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.
# Functions
Array returns the optimal driver.Valuer and sql.Scanner for an array or slice of any dimension.
BufferQuoteIdentifier satisfies the same purpose as QuoteIdentifier, but backed by a byte buffer.
ConnectorNoticeHandler returns the currently set notice handler, if any.
ConnectorNotificationHandler returns the currently set notification handler, if any.
ConnectorWithNoticeHandler creates or sets the given handler for the given connector.
ConnectorWithNotificationHandler creates or sets the given handler for the given connector.
CopyIn creates a COPY FROM statement which can be prepared with Tx.Prepare().
CopyInSchema creates a COPY FROM statement which can be prepared with Tx.Prepare().
DialOpen opens a new connection to the database using a dialer.
EnableInfinityTs controls the handling of Postgres' "-infinity" and "infinity" "timestamp"s.
FormatTimestamp formats t into Postgres' text format for timestamps.
NewConnector returns a connector for the pq driver in a fixed configuration with the given dsn.
NewDialListener is like NewListener but it takes a Dialer.
NewListener creates a new database connection dedicated to LISTEN / NOTIFY.
NewListenerConn creates a new ListenerConn.
NoticeHandler returns the notice handler on the given connection, if any.
Open opens a new connection to the database.
ParseTimestamp parses Postgres' text format.
ParseURL no longer needs to be used by clients of this library since supplying a URL as a connection string to sql.Open() is now supported:
sql.Open("postgres", "postgres://bob:[email protected]:5432/mydb?sslmode=verify-full")
It remains exported here for backwards-compatibility.
QuoteIdentifier quotes an "identifier" (e.g.
QuoteLiteral quotes a 'literal' (e.g.
RegisterGSSProvider registers a GSS authentication provider.
SetNoticeHandler sets the given notice handler on the given connection.
SetNotificationHandler sets the given notification handler on the given connection.
# Constants
Error severities.
Error severities.
Error severities.
Error severities.
Error severities.
Error severities.
Error severities.
ListenerEventConnected is emitted only when the database connection has been initially initialized.
ListenerEventConnectionAttemptFailed is emitted after a connection to the database was attempted, but failed.
ListenerEventDisconnected is emitted after a database connection has been lost, either because of an error or because Close has been called.
ListenerEventReconnected is emitted after a database connection has been re-established after connection loss.
# Variables
ErrChannelAlreadyOpen is returned from Listen when a channel is already open.
ErrChannelNotOpen is returned from Unlisten when a channel is not open.
Common error types.
Common error types.
Common error types.
Common error types.
Common error types.
Common error types.
# Structs
Connector represents a fixed configuration for the pq driver with a given name.
Driver is the Postgres database driver.
Error represents an error communicating with the server.
GenericArray implements the driver.Valuer and sql.Scanner interfaces for an array or slice of any dimension.
Listener provides an interface for listening to notifications from a PostgreSQL database.
ListenerConn is a low-level interface for waiting for notifications.
NoticeHandlerConnector wraps a regular connector and sets a notice handler on it.
Notification represents a single notification from the database.
NotificationHandlerConnector wraps a regular connector and sets a notification handler on it.
NullTime represents a time.Time that may be null.
# Interfaces
ArrayDelimiter may be optionally implemented by driver.Valuer or sql.Scanner to override the array delimiter used by GenericArray.
Dialer is the dialer interface.
DialerContext is the context-aware dialer interface.
GSS provides GSSAPI authentication (e.g., Kerberos).
PGError is an interface used by previous versions of pq.
# Type aliases
BoolArray represents a one-dimensional array of the PostgreSQL boolean type.
ByteaArray represents a one-dimensional array of the PostgreSQL bytea type.
ErrorClass is only the class part of an error code.
ErrorCode is a five-character error code.
EventCallbackType is the event callback type.
Float32Array represents a one-dimensional array of the PostgreSQL double precision type.
Float64Array represents a one-dimensional array of the PostgreSQL double precision type.
Int32Array represents a one-dimensional array of the PostgreSQL integer types.
Int64Array represents a one-dimensional array of the PostgreSQL integer types.
ListenerEventType is an enumeration of listener event types.
NewGSSFunc creates a GSS authentication provider, for use with RegisterGSSProvider.
StringArray represents a one-dimensional array of the PostgreSQL character types.