Documentation
¶
Index ¶
- Constants
- func IsMatchQuery(q string, prefix string) bool
- func IsPgbenchGetPartitionQuery(q string) bool
- func NewCopyCompleteResponsesFrom(q query.Copy, stream *CopyStream, conn Conn, schema sql.Schema, ...) (protocol.Responses, error)
- func NewCopyInResponsesFrom(q query.Copy, schema sql.Schema) (protocol.Responses, error)
- func NewCopyQueryFrom(schema query.Schema, copyColumns sql.Columns, copyData *protocol.CopyData) (query.Insert, error)
- func NewGetPartitionResponseForPgbench() (protocol.Responses, error)
- type AuthManager
- type BaseBulkExecutor
- type BaseErrorHandler
- type BaseExecutor
- func (executor *BaseExecutor) SetBulkQueryExecutor(be BulkQueryExecutor)
- func (executor *BaseExecutor) SetErrorHandler(eh ErrorHandler)
- func (executor *BaseExecutor) SetExQueryExecutor(qe ExQueryExecutor)
- func (executor *BaseExecutor) SetQueryExecutor(qe QueryExecutor)
- func (executor *BaseExecutor) SetSystemQueryExecutor(sq SystemQueryExecutor)
- type BaseQueryExecutor
- func (executor *BaseQueryExecutor) AlterDatabase(Conn, query.AlterDatabase) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) AlterTable(Conn, query.AlterTable) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) Begin(Conn, query.Begin) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) Commit(Conn, query.Commit) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) CreateDatabase(Conn, query.CreateDatabase) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) CreateTable(Conn, query.CreateTable) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) Delete(Conn, query.Delete) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) DropDatabase(Conn, query.DropDatabase) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) DropTable(Conn, query.DropTable) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) Insert(Conn, query.Insert) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) Rollback(Conn, query.Rollback) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) Select(Conn, query.Select) (protocol.Responses, error)
- func (executor *BaseQueryExecutor) Update(Conn, query.Update) (protocol.Responses, error)
- type BaseSystemQueryExecutor
- type BulkQueryExecutor
- type Config
- type Conn
- type ConnID
- type CopyStream
- type DDOExecutor
- type DMOExExecutor
- type DMOExecutor
- type ErrorHandler
- type ExQueryExecutor
- type PreparedManager
- func (mgr *PreparedManager) PreparedPortal(conn Conn, name string) (*PreparedPortal, error)
- func (mgr *PreparedManager) PreparedStatement(conn Conn, name string) (*PreparedStatement, error)
- func (mgr *PreparedManager) RemovePreparedPortal(conn Conn, name string) error
- func (mgr *PreparedManager) RemovePreparedStatement(conn Conn, name string) error
- func (mgr *PreparedManager) SetPreparedPortal(conn Conn, name string, query *PreparedPortal) error
- func (mgr *PreparedManager) SetPreparedStatement(conn Conn, msg *protocol.Parse) error
- type PreparedPortal
- type PreparedPortalMap
- type PreparedStatement
- type PreparedStatementMap
- type ProtocolMessageExecutor
- type ProtocolQueryHandler
- type ProtocolStartupHander
- type QueryExecutor
- type SQLExecutor
- type Server
- type SystemDMOExecutor
- type SystemQueryExecutor
- type TCOExecutor
- type TLSConfig
Constants ¶
const ( // PackageName is the package name. PackageName = "go-postgresql" // DefaultPort is the default port for PostgreSQL protocol server. DefaultPort = 5432 )
const (
Version = "v1.5.9"
)
Variables ¶
This section is empty.
Functions ¶
func IsMatchQuery ¶ added in v1.3.0
IsMatchQuery returns true if the query is matched with the prefix.
func IsPgbenchGetPartitionQuery ¶ added in v1.3.0
IsPgbenchGetPartitionQuery returns true if the query is pgbenchGetPartitionQuery.
func NewCopyCompleteResponsesFrom ¶ added in v1.3.0
func NewCopyCompleteResponsesFrom(q query.Copy, stream *CopyStream, conn Conn, schema sql.Schema, queryExecutor QueryExecutor) (protocol.Responses, error)
NewCopyCompleteResponsesFrom returns a new copy complete response from the specified query.
func NewCopyInResponsesFrom ¶ added in v1.3.0
NewCopyInResponsesFrom returns a new copy in response from the specified query.
func NewCopyQueryFrom ¶ added in v1.3.0
func NewCopyQueryFrom(schema query.Schema, copyColumns sql.Columns, copyData *protocol.CopyData) (query.Insert, error)
NewCopyQueryFrom returns a new copy query from the specified query.
func NewGetPartitionResponseForPgbench ¶ added in v1.3.0
NewGetPartitionResponseForPgbench returns a new response for pgbenchGetPartitionQuery.
Types ¶
type AuthManager ¶ added in v1.5.8
type AuthManager interface {
// AddAuthenticator adds a new authenticator.
AddAuthenticator(authenticator auth.Authenticator)
// ClearAuthenticators clears all authenticators.
ClearAuthenticators()
}
AuthManager represent an authenticator manager.
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) CopyData ¶ added in v1.3.0
func (executor *BaseBulkExecutor) CopyData(Conn, query.Copy, *CopyStream) (protocol.Responses, error)
Copy handles a COPY DATA protocol.
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) (protocol.Responses, error)
ParserError handles a parser error.
type BaseExecutor ¶
type BaseExecutor struct {
ProtocolStartupHander
ProtocolQueryHandler
QueryExecutor
ExQueryExecutor
BulkQueryExecutor
ErrorHandler
SystemQueryExecutor
}
BaseExecutor represents a base frontend message executor.
func NewBaseExecutor ¶
func NewBaseExecutor() *BaseExecutor
NewBaseExecutor returns a base frontend message executor.
func (*BaseExecutor) SetBulkQueryExecutor ¶ added in v1.5.9
func (executor *BaseExecutor) SetBulkQueryExecutor(be BulkQueryExecutor)
SetBulkQueryExecutor 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) SetExQueryExecutor ¶ added in v1.5.9
func (executor *BaseExecutor) SetExQueryExecutor(qe ExQueryExecutor)
SetExQueryExecutor sets a user query extra executor.
func (*BaseExecutor) SetQueryExecutor ¶
func (executor *BaseExecutor) SetQueryExecutor(qe QueryExecutor)
SetQueryExecutor sets a user query executor.
func (*BaseExecutor) SetSystemQueryExecutor ¶ added in v1.3.0
func (executor *BaseExecutor) SetSystemQueryExecutor(sq SystemQueryExecutor)
SetSystemQueryExecutor sets a system query executor.
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) AlterDatabase ¶ added in v1.2.0
func (executor *BaseQueryExecutor) AlterDatabase(Conn, query.AlterDatabase) (protocol.Responses, error)
AlterDatabase handles a ALTER DATABASE query.
func (*BaseQueryExecutor) AlterTable ¶ added in v1.2.0
func (executor *BaseQueryExecutor) AlterTable(Conn, query.AlterTable) (protocol.Responses, error)
AlterTable handles a ALTER TABLE query.
func (*BaseQueryExecutor) CreateDatabase ¶
func (executor *BaseQueryExecutor) CreateDatabase(Conn, query.CreateDatabase) (protocol.Responses, error)
CreateDatabase handles a CREATE DATABASE query.
func (*BaseQueryExecutor) CreateTable ¶
func (executor *BaseQueryExecutor) CreateTable(Conn, query.CreateTable) (protocol.Responses, error)
CreateTable handles a CREATE TABLE query.
func (*BaseQueryExecutor) DropDatabase ¶
func (executor *BaseQueryExecutor) DropDatabase(Conn, query.DropDatabase) (protocol.Responses, error)
DropDatabase handles a DROP DATABASE query.
type BaseSystemQueryExecutor ¶ added in v1.3.0
type BaseSystemQueryExecutor struct {
}
BaseSystemQueryExecutor represents a base query message executor.
func NewBaseSystemQueryExecutor ¶ added in v1.3.0
func NewBaseSystemQueryExecutor() *BaseSystemQueryExecutor
NewBaseSystemQueryExecutor returns a base frontend message executor.
func (*BaseSystemQueryExecutor) SystemSelect ¶ added in v1.3.0
func (executor *BaseSystemQueryExecutor) SystemSelect(Conn, query.Select) (protocol.Responses, error)
SystemSelect handles a SELECT query for system tables.
type BulkQueryExecutor ¶ added in v1.5.9
type BulkQueryExecutor interface {
// Copy handles a COPY query.
Copy(Conn, query.Copy) (protocol.Responses, error)
// CopyData handles a COPY data protocol.
CopyData(Conn, query.Copy, *CopyStream) (protocol.Responses, error)
}
BulkQueryExecutor defines a executor interface for bulk operations.
type Config ¶
type Config interface {
TLSConfig
// SetAddress sets a listen address to the configuration.
SetAddress(addr string)
// SetPort sets a listen port to the configuration.
SetPort(port int)
// Address returns a listen address from the configuration.
Address() string
// Port returns a listen port from the configuration.
Port() int
}
Config represents a server configuration.
type CopyStream ¶ added in v0.9.1
type CopyStream struct {
*protocol.MessageReader
}
CopyStream represents a copy stream.
func NewCopyStreamWithReader ¶ added in v0.9.1
func NewCopyStreamWithReader(reader *protocol.MessageReader) *CopyStream
NewCopyStreamWithReader returns a new copy stream with the specified reader.
type DDOExecutor ¶
type DDOExecutor interface {
// CreateDatabase handles a CREATE DATABASE query.
CreateDatabase(Conn, query.CreateDatabase) (protocol.Responses, error)
// CreateTable handles a CREATE TABLE query.
CreateTable(Conn, query.CreateTable) (protocol.Responses, error)
// AlterDatabase handles a ALTER DATABASE query.
AlterDatabase(Conn, query.AlterDatabase) (protocol.Responses, error)
// AlterTable handles a ALTER TABLE query.
AlterTable(Conn, query.AlterTable) (protocol.Responses, error)
// DropDatabase handles a DROP DATABASE query.
DropDatabase(Conn, query.DropDatabase) (protocol.Responses, error)
// DropIndex handles a DROP INDEX query.
DropTable(Conn, query.DropTable) (protocol.Responses, error)
}
DDOExecutor defines a executor interface for DDO (Data Definition Operations).
type DMOExExecutor ¶ added in v1.5.9
type DMOExExecutor interface {
// Vacuum handles a VACUUM query.
Vacuum(Conn, query.Vacuum) (protocol.Responses, error)
// Truncate handles a TRUNCATE query.
Truncate(Conn, query.Truncate) (protocol.Responses, error)
}
DMOExExecutor defines a executor interface for extended DMO (Data Manipulation Operations).
type DMOExecutor ¶
type DMOExecutor interface {
// Insert handles a INSERT query.
Insert(Conn, query.Insert) (protocol.Responses, error)
// Select handles a SELECT query.
Select(Conn, query.Select) (protocol.Responses, error)
// Update handles a UPDATE query.
Update(Conn, query.Update) (protocol.Responses, error)
// Delete handles a DELETE query.
Delete(Conn, query.Delete) (protocol.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 ExQueryExecutor ¶ added in v1.5.9
type ExQueryExecutor interface {
DMOExExecutor
}
ExQueryExecutor represents a user extended query message executor.
type PreparedManager ¶ added in v1.5.9
type PreparedManager struct {
// contains filtered or unexported fields
}
PreparedManager represents a prepared manager.
func NewPreparedManager ¶ added in v1.5.9
func NewPreparedManager() *PreparedManager
NewPreparedManager returns a new prepared manager.
func (*PreparedManager) PreparedPortal ¶ added in v1.5.9
func (mgr *PreparedManager) PreparedPortal(conn Conn, name string) (*PreparedPortal, error)
PreparedPortal returns a prepared query statement.
func (*PreparedManager) PreparedStatement ¶ added in v1.5.9
func (mgr *PreparedManager) PreparedStatement(conn Conn, name string) (*PreparedStatement, error)
PreparedStatement returns a prepared statement.
func (*PreparedManager) RemovePreparedPortal ¶ added in v1.5.9
func (mgr *PreparedManager) RemovePreparedPortal(conn Conn, name string) error
RemovePreparedPortal removes a prepared query statement.
func (*PreparedManager) RemovePreparedStatement ¶ added in v1.5.9
func (mgr *PreparedManager) RemovePreparedStatement(conn Conn, name string) error
RemovePreparedStatement removes a prepared statement.
func (*PreparedManager) SetPreparedPortal ¶ added in v1.5.9
func (mgr *PreparedManager) SetPreparedPortal(conn Conn, name string, query *PreparedPortal) error
SetPreparedPortal sets a prepared query statement.
func (*PreparedManager) SetPreparedStatement ¶ added in v1.5.9
func (mgr *PreparedManager) SetPreparedStatement(conn Conn, msg *protocol.Parse) error
SetPreparedStatement sets a prepared statement.
type PreparedPortal ¶ added in v1.3.0
PreparedPortal represents a prepared query statement.
type PreparedPortalMap ¶ added in v1.3.0
type PreparedPortalMap map[string]PreparedPortal
PreparedPortalMap represents a prepared query statement map.
func NewPreparedPortalMap ¶ added in v1.3.0
func NewPreparedPortalMap() PreparedPortalMap
NewPreparedPortalMap returns a new prepared query statement map.
func (PreparedPortalMap) PreparedPortal ¶ added in v1.3.0
func (portalMap PreparedPortalMap) PreparedPortal(name string) (*PreparedPortal, error)
PreparedPortal returns a prepared query statement.
func (PreparedPortalMap) RemovePreparedPortal ¶ added in v1.3.0
func (portalMap PreparedPortalMap) RemovePreparedPortal(name string) error
RemovePreparedPortal removes a prepared query statement.
func (PreparedPortalMap) SetPreparedPortal ¶ added in v1.3.0
func (portalMap PreparedPortalMap) SetPreparedPortal(name string, query *PreparedPortal) error
SetPreparedPortal sets a prepared query statement.
type PreparedStatement ¶ added in v1.3.0
PreparedStatement represents a prepared statement.
func (*PreparedStatement) Name ¶ added in v1.3.0
func (stmt *PreparedStatement) Name() string
Name returns a prepared statement name.
type PreparedStatementMap ¶ added in v1.3.0
type PreparedStatementMap map[string]*PreparedStatement
PreparedStatementMap represents a prepared statement map.
func NewPreparedStatementMap ¶ added in v1.3.0
func NewPreparedStatementMap() PreparedStatementMap
NewPreparedStatementMap returns a new prepared statement map.
func (PreparedStatementMap) PreparedStatement ¶ added in v1.3.0
func (stmtMap PreparedStatementMap) PreparedStatement(name string) (*PreparedStatement, error)
PreparedStatement returns a prepared statement.
func (PreparedStatementMap) RemovePreparedStatement ¶ added in v1.3.0
func (stmtMap PreparedStatementMap) RemovePreparedStatement(name string) error
RemovePreparedStatement removes a prepared statement.
func (PreparedStatementMap) SetPreparedStatement ¶ added in v1.3.0
func (stmtMap PreparedStatementMap) SetPreparedStatement(msg *protocol.Parse) error
SetPreparedStatement sets a prepared statement.
type ProtocolMessageExecutor ¶ added in v1.5.9
type ProtocolMessageExecutor interface {
// SetQueryExecutor sets a user query executor.
SetQueryExecutor(QueryExecutor)
// SetExQueryExecutor sets a user query executor.
SetExQueryExecutor(ExQueryExecutor)
// SetSystemQueryExecutor sets a system query executor.
SetSystemQueryExecutor(SystemQueryExecutor)
// SetBulkQueryExecutor sets a user bulk executor.
SetBulkQueryExecutor(BulkQueryExecutor)
// SetErrorHandler sets a user error handler.
SetErrorHandler(ErrorHandler)
}
ProtocolMessageExecutor represents a protocol message executor.
type ProtocolQueryHandler ¶ added in v1.5.9
type ProtocolQueryHandler interface {
protocol.QueryHandler
}
ProtocolQueryHandler represents a query message handler.
type ProtocolStartupHander ¶ added in v1.5.9
type ProtocolStartupHander interface {
AuthManager
protocol.StartupHandler
}
ProtocolStartupHander represents a start-up message handler.
type QueryExecutor ¶
type QueryExecutor interface {
TCOExecutor
DDOExecutor
DMOExecutor
}
QueryExecutor represents a user query message executor.
type SQLExecutor ¶ added in v1.5.9
type SQLExecutor = query.SQLExecutor
SQLExecutor represents a SQL executor.
type Server ¶
type Server interface {
tracer.Tracer
Config
AuthManager
ProtocolMessageExecutor
SetTracer(tracer.Tracer)
Start() error
Stop() error
Restart() error
}
Server represents a PostgreSQL protocol server.
type SystemDMOExecutor ¶ added in v1.5.9
type SystemDMOExecutor interface {
// Select handles a SELECT query.
SystemSelect(Conn, query.Select) (protocol.Responses, error)
}
SystemDMOExecutor represents a system DMO message executor.
type SystemQueryExecutor ¶ added in v1.3.0
type SystemQueryExecutor interface {
SystemDMOExecutor
}
SystemQueryExecutor represents a system query message executor.
type TCOExecutor ¶ added in v1.5.9
type TCOExecutor interface {
// Begin handles a BEGIN query.
Begin(Conn, query.Begin) (protocol.Responses, error)
// Commit handles a COMMIT query.
Commit(Conn, query.Commit) (protocol.Responses, error)
// Rollback handles a ROLLBACK query.
Rollback(Conn, query.Rollback) (protocol.Responses, error)
}
TCOExecutor defines a executor interface for TCL (Transaction Control Operations).
Source Files
¶
- auth.go
- config.go
- conn.go
- const.go
- copy.go
- copy_stream.go
- executor.go
- executor_auth.go
- executor_base.go
- executor_bulk.go
- executor_error.go
- executor_query.go
- executor_sugar_query.go
- executor_system.go
- pgbench.go
- prepared.go
- prepared_manager.go
- server.go
- server_impl.go
- server_query_handler.go
- server_startup_handler.go
- tls_config.go
- version.go