postgresql

package
v1.6.5 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2025 License: Apache-2.0 Imports: 24 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.6.5"
)

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 NewDefaultExQueryExecutorWith added in v1.6.1

func NewDefaultExQueryExecutorWith(executor QueryExecutor) *defaultExQueryExecutor

NewDefaultExQueryExecutorWith returns a defaultDMOExtraExecutor instance with the given DMOExecutor.

func NewGetPartitionResponseForPgbench added in v1.3.0

func NewGetPartitionResponseForPgbench() (protocol.Responses, error)

NewGetPartitionResponseForPgbench returns a new response for pgbenchGetPartitionQuery.

func NewPgxClient added in v1.6.1

func NewPgxClient() *sqltest.PgxClient

NewPgxClient returns a new Pgx client.

func NewPqClient added in v1.6.1

func NewPqClient() *sqltest.PqClient

NewPgClient returns a new pq client.

Types

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.

func NewNullBulkExecutor added in v1.6.0

func NewNullBulkExecutor() BulkQueryExecutor

NewNullBulkExecutor returns a new null BulkQueryExecutor.

type CertConfig added in v1.6.2

type CertConfig interface {
	// SetClientAuthType sets a client authentication type.
	SetClientAuthType(authType tls.ClientAuthType)
	// SetServerKeyFile sets a SSL server key file.
	SetServerKeyFile(file string) error
	// SetServerCertFile sets a SSL server certificate file.
	SetServerCertFile(file string) error
	// SetRootCertFile sets a SSL root certificates.
	SetRootCertFiles(files ...string) error
	// SetServerKey sets a SSL server key.
	SetServerKey(key []byte)
	// SetServerCert sets a SSL server certificate.
	SetServerCert(cert []byte)
	// SetRootCerts sets a SSL root certificates.
	SetRootCerts(certs ...[]byte)
	// SetTLSConfig sets a TLS configuration.
	SetTLSConfig(tlsConfig *tls.Config)
	// TLSConfig returns a TLS configuration from the configuration.
	TLSConfig() (*tls.Config, error)
}

CertConfig represents a TLS configuration interface.

type Client added in v1.6.1

type Client = sqltest.Client

Client represents a PostgreSQL client interface.

func NewDefaultClient added in v1.6.1

func NewDefaultClient() Client

NewDefaultClient returns a new default PostgreSQL client.

type Config

type Config interface {
	CertConfig

	// 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 DDOExExecutor added in v1.6.1

type DDOExExecutor interface {
	// CreateIndex handles a CREATE INDEX query.
	CreateIndex(Conn, query.CreateIndex) (protocol.Responses, error)
	// DropIndex handles a DROP INDEX query.
	DropIndex(Conn, query.DropIndex) (protocol.Responses, error)
}

DDOExExecutor defines a executor interface for extended DDO (Data Definition Operations).

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.

func NewNullErrorHandler added in v1.6.0

func NewNullErrorHandler() ErrorHandler

NewNullErrorHandler returns a new null ErrorHandler.

type ExQueryExecutor added in v1.5.9

type ExQueryExecutor interface {
	DDOExExecutor
	DMOExExecutor
}

ExQueryExecutor represents a user extended query message executor.

type PgxClient added in v1.6.1

type PgxClient = sqltest.PgxClient

PgxClient represents a PostgreSQL client.

type PqClient added in v1.6.1

type PqClient = sqltest.PqClient

PqClient represents a PostgreSQL client.

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 {
	protocol.StartupHandler
}

ProtocolStartupHander represents a start-up message handler.

type QueryExecutor

type QueryExecutor interface {
	TCOExecutor
	DDOExecutor
	DMOExecutor
}

QueryExecutor represents a user query message executor.

func NewDefaultQueryExecutor added in v1.6.1

func NewDefaultQueryExecutor() QueryExecutor

NewDefaultQueryExecutor returns a default QueryExecutor based on SQLExecutor.

func NewNullQueryExecutor added in v1.6.0

func NewNullQueryExecutor() QueryExecutor

NewNullQueryExecutor returns a new null QueryExecutor.

type SQLExecutor added in v1.5.9

type SQLExecutor = query.SQLExecutor

SQLExecutor represents a SQL executor.

type SQLExecutorSetter added in v1.6.1

type SQLExecutorSetter interface {
	SetSQLExecutor(SQLExecutor)
}

SQLExecutorSetter represents a SQL executor setter.

type Server

type Server interface {
	Config
	auth.Manager

	// SetTracer sets a tracing tracer.
	SetTracer(tracer.Tracer)
	// SetSQLExecutor sets a SQL executor.
	SetSQLExecutor(SQLExecutor)
	// 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)

	// SQLExecutor returns a SQL executor.
	SQLExecutor() SQLExecutor
	// QueryExecutor returns a user query executor.
	QueryExecutor() QueryExecutor
	// ExQueryExecutor returns a user extended query executor.
	ExQueryExecutor() ExQueryExecutor
	// SystemQueryExecutor returns a system query executor.
	SystemQueryExecutor() SystemQueryExecutor
	// BulkQueryExecutor returns a user bulk executor.
	BulkQueryExecutor() BulkQueryExecutor
	// ErrorHandler returns a user error handler.
	ErrorHandler() ErrorHandler

	// Start starts the server.
	Start() error
	// Stop stops the server.
	Stop() error
	// Restart restarts the server.
	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.

func NewDefaultSystemQueryExecutor added in v1.6.1

func NewDefaultSystemQueryExecutor() SystemQueryExecutor

NewDefaultSystemQueryExecutor returns a default SystemQueryExecutor based on SQLExecutor.

func NewNullSystemQueryExecutor added in v1.6.0

func NewNullSystemQueryExecutor() SystemQueryExecutor

NewNullSystemQueryExecutor returns a new null SystemQueryExecutor.

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

Directories

Path Synopsis
encoding

Jump to

Keyboard shortcuts

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