postgresql

package
v1.5.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2024 License: Apache-2.0 Imports: 20 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// PackageName is the package name.
	PackageName = "go-postgresql"
	// DefaultPort is the default port for PostgreSQL protocol server.
	DefaultPort = 5432
)
View Source
const (
	Version = "v1.5.9"
)

Variables

This section is empty.

Functions

func IsMatchQuery added in v1.3.0

func IsMatchQuery(q string, prefix string) bool

IsMatchQuery returns true if the query is matched with the prefix.

func IsPgbenchGetPartitionQuery added in v1.3.0

func IsPgbenchGetPartitionQuery(q string) bool

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

func NewCopyInResponsesFrom(q query.Copy, schema sql.Schema) (protocol.Responses, error)

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

func NewGetPartitionResponseForPgbench() (protocol.Responses, error)

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) Copy added in v1.0.0

func (executor *BaseBulkExecutor) Copy(Conn, query.Copy) (protocol.Responses, error)

Copy handles a COPY query.

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

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) Begin added in v1.5.9

func (executor *BaseQueryExecutor) Begin(Conn, query.Begin) (protocol.Responses, error)

Begin handles a BEGIN query.

func (*BaseQueryExecutor) Commit added in v1.5.9

func (executor *BaseQueryExecutor) Commit(Conn, query.Commit) (protocol.Responses, error)

Commit handles a COMMIT 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) Delete

func (executor *BaseQueryExecutor) Delete(Conn, query.Delete) (protocol.Responses, error)

Delete handles a DELETE query.

func (*BaseQueryExecutor) DropDatabase

func (executor *BaseQueryExecutor) DropDatabase(Conn, query.DropDatabase) (protocol.Responses, error)

DropDatabase handles a DROP DATABASE query.

func (*BaseQueryExecutor) DropTable

func (executor *BaseQueryExecutor) DropTable(Conn, query.DropTable) (protocol.Responses, error)

DropIndex handles a DROP INDEX query.

func (*BaseQueryExecutor) Insert

func (executor *BaseQueryExecutor) Insert(Conn, query.Insert) (protocol.Responses, error)

Insert handles a INSERT query.

func (*BaseQueryExecutor) Rollback added in v1.5.9

func (executor *BaseQueryExecutor) Rollback(Conn, query.Rollback) (protocol.Responses, error)

Rollback handles a ROLLBACK query.

func (*BaseQueryExecutor) Select

func (executor *BaseQueryExecutor) Select(Conn, query.Select) (protocol.Responses, error)

Select handles a SELECT query.

func (*BaseQueryExecutor) Update

func (executor *BaseQueryExecutor) Update(Conn, query.Update) (protocol.Responses, error)

Update handles a UPDATE 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 Conn

type Conn = protocol.Conn

Conn represents a connection.

type ConnID added in v1.5.6

type ConnID = net.ConnID

ConnID represents a connection ID.

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.

func (*CopyStream) Next added in v0.9.1

func (stream *CopyStream) Next() (*protocol.CopyData, 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) (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

type ErrorHandler interface {
	ParserError(Conn, string, error) (protocol.Responses, error)
}

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

type PreparedPortal = protocol.Query

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

type PreparedStatement struct {
	*protocol.Parse
	ParsedStatement *query.Statement
}

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.

func NewServer

func NewServer() Server

NewServer returns a new server instance.

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).

type TLSConfig added in v1.5.8

type TLSConfig = protocol.TLSConfig

TLSConfig represents a TLS configuration.

func NewTLSConfig added in v1.5.9

func NewTLSConfig() TLSConfig

NewTLSConfig creates a new TLS configuration.

Directories

Path Synopsis
encoding

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL