Documentation
¶
Index ¶
- Constants
- func WithConnDatabase(name string) func(*Conn)
- func WithConnTracer(t tracer.Context) func(*Conn)
- type Authenticator
- type BaseAuthenticator
- type BaseBulkExecutor
- type BaseErrorHandler
- type BaseExecutor
- func (executor *BaseExecutor) SetAuthenticator(at Authenticator)
- func (executor *BaseExecutor) SetBulkExecutor(be BulkExecutor)
- func (executor *BaseExecutor) SetErrorHandler(eh ErrorHandler)
- func (executor *BaseExecutor) SetQueryExecutor(qe QueryExecutor)
- func (executor *BaseExecutor) SetStartupHandler(sh StartupHandler)
- type BaseProtocolExecutor
- type BaseQueryExecutor
- func (executor *BaseQueryExecutor) CreateDatabase(*Conn, *query.CreateDatabase) (message.Responses, error)
- func (executor *BaseQueryExecutor) CreateIndex(*Conn, *query.CreateIndex) (message.Responses, error)
- func (executor *BaseQueryExecutor) CreateTable(*Conn, *query.CreateTable) (message.Responses, error)
- func (executor *BaseQueryExecutor) Delete(*Conn, *query.Delete) (message.Responses, error)
- func (executor *BaseQueryExecutor) DropDatabase(*Conn, *query.DropDatabase) (message.Responses, error)
- func (executor *BaseQueryExecutor) DropTable(*Conn, *query.DropTable) (message.Responses, error)
- func (executor *BaseQueryExecutor) Insert(*Conn, *query.Insert) (message.Responses, error)
- func (executor *BaseQueryExecutor) Select(*Conn, *query.Select) (message.Responses, error)
- func (executor *BaseQueryExecutor) Update(*Conn, *query.Update) (message.Responses, error)
- type BulkExecutor
- type Config
- type Conn
- type ConnOption
- type CopyStream
- type DDOExecutor
- type DMOExecutor
- type ErrorHandler
- type Executor
- type PreparedQuery
- type PreparedQueryMap
- type QueryExecutor
- type Server
- type StartupHandler
- type StatusHandler
Constants ¶
const ( // PackageName is the package name. PackageName = "go-postgresql" // DefaultPort is the default port for PostgreSQL protocol server. DefaultPort = 5432 )
const (
Version = "1.1.1"
)
Variables ¶
This section is empty.
Functions ¶
func WithConnDatabase ¶
WithConnDatabase sets the database name.
func WithConnTracer ¶
WithConnDatabase sets the database name.
Types ¶
type Authenticator ¶
type Authenticator interface { // Authenticate handles the Start-up message and returns an Authentication or ErrorResponse message. Authenticate(*Conn, *message.Startup) (message.Response, error) }
Authenticator represents a frontend message authenticator.
type BaseAuthenticator ¶
type BaseAuthenticator struct { }
BaseAuthenticator represents a base frontend message authenticator.
func NewBaseAuthenticator ¶
func NewBaseAuthenticator() *BaseAuthenticator
NewBaseAuthenticator returns a base frontend message authenticator.
func (*BaseAuthenticator) Authenticate ¶
Authenticate authenticates the connection with the startup message.
type BaseBulkExecutor ¶ added in v1.0.0
type BaseBulkExecutor struct { }
BaseBulkExecutor represents a base bulk message executor.
func NewBaseBulkExecutor ¶ added in v1.0.0
func NewBaseBulkExecutor() *BaseBulkExecutor
NewBaseBulkExecutor returns a base frontend message executor.
func (*BaseBulkExecutor) Copy ¶ added in v1.0.0
func (executor *BaseBulkExecutor) Copy(*Conn, *query.Copy, *CopyStream) (message.Responses, error)
Copy handles a COPY query.
type BaseErrorHandler ¶ added in v1.1.0
type BaseErrorHandler struct { }
BaseErrorHandler represents a base error handler.
func NewBaseErrorHandler ¶ added in v1.1.0
func NewBaseErrorHandler() *BaseErrorHandler
NewBaseErrorHandler returns a new BaseErrorHandler.
func (*BaseErrorHandler) ParserError ¶ added in v1.1.0
func (executor *BaseErrorHandler) ParserError(conn *Conn, q string, err error) (message.Responses, error)
ParserError handles a parser error.
type BaseExecutor ¶
type BaseExecutor struct { Authenticator StartupHandler QueryExecutor BulkExecutor ErrorHandler }
BaseExecutor represents a base frontend message executor.
func NewBaseExecutor ¶
func NewBaseExecutor() *BaseExecutor
NewBaseExecutor returns a base frontend message executor.
func (*BaseExecutor) SetAuthenticator ¶
func (executor *BaseExecutor) SetAuthenticator(at Authenticator)
SetAuthenticator sets a user authenticator.
func (*BaseExecutor) SetBulkExecutor ¶ added in v1.0.0
func (executor *BaseExecutor) SetBulkExecutor(be BulkExecutor)
SetBulkExecutor sets a user bulk executor.
func (*BaseExecutor) SetErrorHandler ¶ added in v1.1.0
func (executor *BaseExecutor) SetErrorHandler(eh ErrorHandler)
SetErrorHandler sets a user error handler.
func (*BaseExecutor) SetQueryExecutor ¶
func (executor *BaseExecutor) SetQueryExecutor(qe QueryExecutor)
SetQueryExecutor sets a user query executor.
func (*BaseExecutor) SetStartupHandler ¶ added in v1.0.0
func (executor *BaseExecutor) SetStartupHandler(sh StartupHandler)
SetStartupHandler sets a user startup handler.
type BaseProtocolExecutor ¶
type BaseProtocolExecutor struct {
// contains filtered or unexported fields
}
BaseProtocolExecutor represents a base frontend message executor.
func NewBaseProtocolExecutor ¶
func NewBaseProtocolExecutor() *BaseProtocolExecutor
NewBaseProtocolExecutor returns a base frontend message executor.
func (*BaseProtocolExecutor) Authenticate ¶
func (executor *BaseProtocolExecutor) Authenticate(*Conn, *message.Startup) (message.Response, error)
Authenticate authenticates the connection with the startup message.
func (*BaseProtocolExecutor) BackendKeyData ¶
func (executor *BaseProtocolExecutor) BackendKeyData(*Conn) (message.Response, error)
BackendKeyData returns the backend key data.
func (*BaseProtocolExecutor) ParameterStatuses ¶ added in v1.0.1
func (executor *BaseProtocolExecutor) ParameterStatuses(*Conn) (message.Responses, error)
ParameterStatuses returns the parameter statuses.
type BaseQueryExecutor ¶
type BaseQueryExecutor struct { }
BaseQueryExecutor represents a base query message executor.
func NewBaseQueryExecutor ¶
func NewBaseQueryExecutor() *BaseQueryExecutor
NewBaseQueryExecutor returns a base frontend message executor.
func (*BaseQueryExecutor) CreateDatabase ¶
func (executor *BaseQueryExecutor) CreateDatabase(*Conn, *query.CreateDatabase) (message.Responses, error)
CreateDatabase handles a CREATE DATABASE query.
func (*BaseQueryExecutor) CreateIndex ¶
func (executor *BaseQueryExecutor) CreateIndex(*Conn, *query.CreateIndex) (message.Responses, error)
CreateIndex handles a CREATE INDEX query.
func (*BaseQueryExecutor) CreateTable ¶
func (executor *BaseQueryExecutor) CreateTable(*Conn, *query.CreateTable) (message.Responses, error)
CreateTable handles a CREATE TABLE query.
func (*BaseQueryExecutor) DropDatabase ¶
func (executor *BaseQueryExecutor) DropDatabase(*Conn, *query.DropDatabase) (message.Responses, error)
DropDatabase handles a DROP DATABASE query.
type BulkExecutor ¶ added in v0.9.1
type BulkExecutor interface { // Copy handles a COPY query. Copy(*Conn, *query.Copy, *CopyStream) (message.Responses, error) }
BulkExecutor defines a executor interface for bulk operations.
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config stores server configuration parammeters.
func NewDefaultConfig ¶
func NewDefaultConfig() *Config
NewDefaultConfig returns a default configuration instance.
func (*Config) SetAddress ¶ added in v1.0.0
SetAddress sets a listen address to the configuration.
type Conn ¶
type Conn struct { tracer.Context PreparedQueryMap // contains filtered or unexported fields }
Conn represents a connection of PostgreSQL binary protocol.
func NewConnWith ¶
func NewConnWith(c net.Conn, opts ...ConnOption) *Conn
NewConnWith returns a connection with a raw connection.
func (*Conn) SetDatabase ¶ added in v1.0.0
SetDatabase sets the database name.
func (*Conn) SpanContext ¶
SpanContext returns the tracer span context of the connection.
type CopyStream ¶ added in v0.9.1
type CopyStream struct {
*message.MessageReader
}
CopyStream represents a copy stream.
func NewCopyStreamWithReader ¶ added in v0.9.1
func NewCopyStreamWithReader(reader *message.MessageReader) *CopyStream
NewCopyStreamWithReader returns a new copy stream with the specified reader.
func (*CopyStream) CopyData ¶ added in v0.9.1
func (stream *CopyStream) CopyData() (*message.CopyData, error)
CopyData returns a copy data message.
func (*CopyStream) Next ¶ added in v0.9.1
func (stream *CopyStream) Next() (bool, error)
Next returns true if the next message is available.
type DDOExecutor ¶
type DDOExecutor interface { // CreateDatabase handles a CREATE DATABASE query. CreateDatabase(*Conn, *query.CreateDatabase) (message.Responses, error) // CreateTable handles a CREATE TABLE query. CreateTable(*Conn, *query.CreateTable) (message.Responses, error) // CreateIndex handles a CREATE INDEX query. CreateIndex(*Conn, *query.CreateIndex) (message.Responses, error) // DropDatabase handles a DROP DATABASE query. DropDatabase(*Conn, *query.DropDatabase) (message.Responses, error) // DropIndex handles a DROP INDEX query. DropTable(*Conn, *query.DropTable) (message.Responses, error) }
DDOExecutor defines a executor interface for DDO (Data Definition Operations).
type DMOExecutor ¶
type DMOExecutor interface { // Insert handles a INSERT query. Insert(*Conn, *query.Insert) (message.Responses, error) // Select handles a SELECT query. Select(*Conn, *query.Select) (message.Responses, error) // Update handles a UPDATE query. Update(*Conn, *query.Update) (message.Responses, error) // Delete handles a DELETE query. Delete(*Conn, *query.Delete) (message.Responses, error) }
DMOExecutor defines a executor interface for DMO (Data Manipulation Operations).
type ErrorHandler ¶ added in v1.1.0
ErrorHandler represents a user error handler.
type Executor ¶
type Executor interface { Authenticator StartupHandler QueryExecutor ErrorHandler // SetAuthenticator sets a user authenticator. SetAuthenticator(Authenticator) // SetStartupHandler sets a user startup handler. SetStartupHandler(StartupHandler) // SetQueryExecutor sets a user query executor. SetQueryExecutor(QueryExecutor) // SetQueryExecutor sets a user query executor. SetErrorHandler(ErrorHandler) }
Executor represents a frontend message executor.
type PreparedQuery ¶ added in v0.9.1
PreparedQuery represents a prepared query.
type PreparedQueryMap ¶ added in v0.9.1
type PreparedQueryMap map[string]*PreparedQuery
PreparedQueryMap represents a prepared query map.
func NewPreparedQueryMap ¶ added in v0.9.1
func NewPreparedQueryMap() PreparedQueryMap
NewPreparedQueryMap returns a new prepared query map.
func (PreparedQueryMap) PreparedQuery ¶ added in v0.9.1
func (queries PreparedQueryMap) PreparedQuery(name string) (*PreparedQuery, error)
PreparedQuery returns a prepared query.
func (PreparedQueryMap) SetPreparedQuery ¶ added in v0.9.1
func (queries PreparedQueryMap) SetPreparedQuery(query *PreparedQuery) error
SetPreparedQuery sets a prepared query.
type QueryExecutor ¶
type QueryExecutor interface { DDOExecutor DMOExecutor }
QueryExecutor represents a user query message executor.
type Server ¶
Server represents a PostgreSQL protocol server.
type StartupHandler ¶ added in v1.0.0
type StartupHandler interface { StatusHandler }
StartupHandler represents a backend protocol message handler.
type StatusHandler ¶
type StatusHandler interface { // ParameterStatuses returns the parameter statuses. ParameterStatuses(*Conn) (message.Responses, error) // BackendKeyData returns the backend key data. BackendKeyData(*Conn) (message.Response, error) }
StatusHandler represents a backend status message handler.