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 NewDefaultExQueryExecutorWith(executor QueryExecutor) *defaultExQueryExecutor
- func NewGetPartitionResponseForPgbench() (protocol.Responses, error)
- func NewPgxClient() *sqltest.PgxClient
- func NewPqClient() *sqltest.PqClient
- type BulkQueryExecutor
- type CertConfig
- type Client
- type Config
- type Conn
- type ConnID
- type CopyStream
- type DDOExExecutor
- type DDOExecutor
- type DMOExExecutor
- type DMOExecutor
- type ErrorHandler
- type ExQueryExecutor
- type PgxClient
- type PqClient
- type ProtocolQueryHandler
- type ProtocolStartupHander
- type QueryExecutor
- type SQLExecutor
- type SQLExecutorSetter
- type Server
- type SystemDMOExecutor
- type SystemQueryExecutor
- type TCOExecutor
Constants ¶
const ( // PackageName is the package name. PackageName = "go-postgresql" // DefaultPort is the default port for PostgreSQL protocol server. DefaultPort = 5432 )
const (
Version = "v1.6.5"
)
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 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
NewGetPartitionResponseForPgbench returns a new response for pgbenchGetPartitionQuery.
func NewPgxClient ¶ added in v1.6.1
NewPgxClient returns a new Pgx client.
func NewPqClient ¶ added in v1.6.1
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
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 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 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
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 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.
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).