Documentation

Index

Constants

View Source
const (
	AuthTypeOk                = 0
	AuthTypeCleartextPassword = 3
	AuthTypeMD5Password       = 5
	AuthTypeSASL              = 10
	AuthTypeSASLContinue      = 11
	AuthTypeSASLFinal         = 12
)
View Source
const (
	TextFormat   = 0
	BinaryFormat = 1
)
View Source
const (
	ProtocolVersionNumber = 196608 // 3.0

)

Variables

This section is empty.

Functions

This section is empty.

Types

type Authentication

type Authentication struct {
	Type uint32

	// MD5Password fields
	Salt [4]byte

	// SASL fields
	SASLAuthMechanisms []string

	// SASLContinue and SASLFinal data
	SASLData []byte
}

func (*Authentication) Backend

func (*Authentication) Backend()

func (*Authentication) Decode

func (dst *Authentication) Decode(src []byte) error

func (*Authentication) Encode

func (src *Authentication) Encode(dst []byte) []byte

type Backend

type Backend struct {
	// contains filtered or unexported fields
}

func NewBackend

func NewBackend(r io.Reader, w io.Writer) (*Backend, error)

func (*Backend) Receive

func (b *Backend) Receive() (FrontendMessage, error)

func (*Backend) ReceiveStartupMessage

func (b *Backend) ReceiveStartupMessage() (*StartupMessage, error)

func (*Backend) Send

func (b *Backend) Send(msg BackendMessage) error

type BackendKeyData

type BackendKeyData struct {
	ProcessID uint32
	SecretKey uint32
}

func (*BackendKeyData) Backend

func (*BackendKeyData) Backend()

func (*BackendKeyData) Decode

func (dst *BackendKeyData) Decode(src []byte) error

func (*BackendKeyData) Encode

func (src *BackendKeyData) Encode(dst []byte) []byte

func (*BackendKeyData) MarshalJSON

func (src *BackendKeyData) MarshalJSON() ([]byte, error)

type BackendMessage

type BackendMessage interface {
	Message
	Backend() // no-op method to distinguish frontend from backend methods
}

type BigEndianBuf

type BigEndianBuf [8]byte

func (BigEndianBuf) Int16

func (b BigEndianBuf) Int16(n int16) []byte

func (BigEndianBuf) Int32

func (b BigEndianBuf) Int32(n int32) []byte

func (BigEndianBuf) Int64

func (b BigEndianBuf) Int64(n int64) []byte

func (BigEndianBuf) Uint16

func (b BigEndianBuf) Uint16(n uint16) []byte

func (BigEndianBuf) Uint32

func (b BigEndianBuf) Uint32(n uint32) []byte

type Bind

type Bind struct {
	DestinationPortal    string
	PreparedStatement    string
	ParameterFormatCodes []int16
	Parameters           [][]byte
	ResultFormatCodes    []int16
}

func (*Bind) Decode

func (dst *Bind) Decode(src []byte) error

func (*Bind) Encode

func (src *Bind) Encode(dst []byte) []byte

func (*Bind) Frontend

func (*Bind) Frontend()

func (*Bind) MarshalJSON

func (src *Bind) MarshalJSON() ([]byte, error)

type BindComplete

type BindComplete struct{}

func (*BindComplete) Backend

func (*BindComplete) Backend()

func (*BindComplete) Decode

func (dst *BindComplete) Decode(src []byte) error

func (*BindComplete) Encode

func (src *BindComplete) Encode(dst []byte) []byte

func (*BindComplete) MarshalJSON

func (src *BindComplete) MarshalJSON() ([]byte, error)

type Close

type Close struct {
	ObjectType byte // 'S' = prepared statement, 'P' = portal
	Name       string
}

func (*Close) Decode

func (dst *Close) Decode(src []byte) error

func (*Close) Encode

func (src *Close) Encode(dst []byte) []byte

func (*Close) Frontend

func (*Close) Frontend()

func (*Close) MarshalJSON

func (src *Close) MarshalJSON() ([]byte, error)

type CloseComplete

type CloseComplete struct{}

func (*CloseComplete) Backend

func (*CloseComplete) Backend()

func (*CloseComplete) Decode

func (dst *CloseComplete) Decode(src []byte) error

func (*CloseComplete) Encode

func (src *CloseComplete) Encode(dst []byte) []byte

func (*CloseComplete) MarshalJSON

func (src *CloseComplete) MarshalJSON() ([]byte, error)

type CommandComplete

type CommandComplete struct {
	CommandTag string
}

func (*CommandComplete) Backend

func (*CommandComplete) Backend()

func (*CommandComplete) Decode

func (dst *CommandComplete) Decode(src []byte) error

func (*CommandComplete) Encode

func (src *CommandComplete) Encode(dst []byte) []byte

func (*CommandComplete) MarshalJSON

func (src *CommandComplete) MarshalJSON() ([]byte, error)

type CopyBothResponse

type CopyBothResponse struct {
	OverallFormat     byte
	ColumnFormatCodes []uint16
}

func (*CopyBothResponse) Backend

func (*CopyBothResponse) Backend()

func (*CopyBothResponse) Decode

func (dst *CopyBothResponse) Decode(src []byte) error

func (*CopyBothResponse) Encode

func (src *CopyBothResponse) Encode(dst []byte) []byte

func (*CopyBothResponse) MarshalJSON

func (src *CopyBothResponse) MarshalJSON() ([]byte, error)

type CopyData

type CopyData struct {
	Data []byte
}

func (*CopyData) Backend

func (*CopyData) Backend()

func (*CopyData) Decode

func (dst *CopyData) Decode(src []byte) error

func (*CopyData) Encode

func (src *CopyData) Encode(dst []byte) []byte

func (*CopyData) Frontend

func (*CopyData) Frontend()

func (*CopyData) MarshalJSON

func (src *CopyData) MarshalJSON() ([]byte, error)

type CopyDone

type CopyDone struct {
}

func (*CopyDone) Backend

func (*CopyDone) Backend()

func (*CopyDone) Decode

func (dst *CopyDone) Decode(src []byte) error

func (*CopyDone) Encode

func (src *CopyDone) Encode(dst []byte) []byte

func (*CopyDone) MarshalJSON

func (src *CopyDone) MarshalJSON() ([]byte, error)

type CopyFail

type CopyFail struct {
	Message string
}

func (*CopyFail) Backend

func (*CopyFail) Backend()

func (*CopyFail) Decode

func (dst *CopyFail) Decode(src []byte) error

func (*CopyFail) Encode

func (src *CopyFail) Encode(dst []byte) []byte

func (*CopyFail) MarshalJSON

func (src *CopyFail) MarshalJSON() ([]byte, error)

type CopyInResponse

type CopyInResponse struct {
	OverallFormat     byte
	ColumnFormatCodes []uint16
}

func (*CopyInResponse) Backend

func (*CopyInResponse) Backend()

func (*CopyInResponse) Decode

func (dst *CopyInResponse) Decode(src []byte) error

func (*CopyInResponse) Encode

func (src *CopyInResponse) Encode(dst []byte) []byte

func (*CopyInResponse) MarshalJSON

func (src *CopyInResponse) MarshalJSON() ([]byte, error)

type CopyOutResponse

type CopyOutResponse struct {
	OverallFormat     byte
	ColumnFormatCodes []uint16
}

func (*CopyOutResponse) Backend

func (*CopyOutResponse) Backend()

func (*CopyOutResponse) Decode

func (dst *CopyOutResponse) Decode(src []byte) error

func (*CopyOutResponse) Encode

func (src *CopyOutResponse) Encode(dst []byte) []byte

func (*CopyOutResponse) MarshalJSON

func (src *CopyOutResponse) MarshalJSON() ([]byte, error)

type DataRow

type DataRow struct {
	Values [][]byte
}

func (*DataRow) Backend

func (*DataRow) Backend()

func (*DataRow) Decode

func (dst *DataRow) Decode(src []byte) error

func (*DataRow) Encode

func (src *DataRow) Encode(dst []byte) []byte

func (*DataRow) MarshalJSON

func (src *DataRow) MarshalJSON() ([]byte, error)

type Describe

type Describe struct {
	ObjectType byte // 'S' = prepared statement, 'P' = portal
	Name       string
}

func (*Describe) Decode

func (dst *Describe) Decode(src []byte) error

func (*Describe) Encode

func (src *Describe) Encode(dst []byte) []byte

func (*Describe) Frontend

func (*Describe) Frontend()

func (*Describe) MarshalJSON

func (src *Describe) MarshalJSON() ([]byte, error)

type EmptyQueryResponse

type EmptyQueryResponse struct{}

func (*EmptyQueryResponse) Backend

func (*EmptyQueryResponse) Backend()

func (*EmptyQueryResponse) Decode

func (dst *EmptyQueryResponse) Decode(src []byte) error

func (*EmptyQueryResponse) Encode

func (src *EmptyQueryResponse) Encode(dst []byte) []byte

func (*EmptyQueryResponse) MarshalJSON

func (src *EmptyQueryResponse) MarshalJSON() ([]byte, error)

type ErrorResponse

type ErrorResponse struct {
	Severity         string
	Code             string
	Message          string
	Detail           string
	Hint             string
	Position         int32
	InternalPosition int32
	InternalQuery    string
	Where            string
	SchemaName       string
	TableName        string
	ColumnName       string
	DataTypeName     string
	ConstraintName   string
	File             string
	Line             int32
	Routine          string

	UnknownFields map[byte]string
}

func (*ErrorResponse) Backend

func (*ErrorResponse) Backend()

func (*ErrorResponse) Decode

func (dst *ErrorResponse) Decode(src []byte) error

func (*ErrorResponse) Encode

func (src *ErrorResponse) Encode(dst []byte) []byte

type Execute

type Execute struct {
	Portal  string
	MaxRows uint32
}

func (*Execute) Decode

func (dst *Execute) Decode(src []byte) error

func (*Execute) Encode

func (src *Execute) Encode(dst []byte) []byte

func (*Execute) Frontend

func (*Execute) Frontend()

func (*Execute) MarshalJSON

func (src *Execute) MarshalJSON() ([]byte, error)

type FieldDescription

type FieldDescription struct {
	Name                 string
	TableOID             uint32
	TableAttributeNumber uint16
	DataTypeOID          uint32
	DataTypeSize         int16
	TypeModifier         int32
	Format               int16
}

type Flush

type Flush struct{}

func (*Flush) Decode

func (dst *Flush) Decode(src []byte) error

func (*Flush) Encode

func (src *Flush) Encode(dst []byte) []byte

func (*Flush) Frontend

func (*Flush) Frontend()

func (*Flush) MarshalJSON

func (src *Flush) MarshalJSON() ([]byte, error)

type Frontend

type Frontend struct {
	// contains filtered or unexported fields
}

func NewFrontend

func NewFrontend(r io.Reader, w io.Writer) (*Frontend, error)

func (*Frontend) Receive

func (b *Frontend) Receive() (BackendMessage, error)

func (*Frontend) Send

func (b *Frontend) Send(msg FrontendMessage) error

type FrontendMessage

type FrontendMessage interface {
	Message
	Frontend() // no-op method to distinguish frontend from backend methods
}

type FunctionCallResponse

type FunctionCallResponse struct {
	Result []byte
}

func (*FunctionCallResponse) Backend

func (*FunctionCallResponse) Backend()

func (*FunctionCallResponse) Decode

func (dst *FunctionCallResponse) Decode(src []byte) error

func (*FunctionCallResponse) Encode

func (src *FunctionCallResponse) Encode(dst []byte) []byte

func (*FunctionCallResponse) MarshalJSON

func (src *FunctionCallResponse) MarshalJSON() ([]byte, error)

type Message

type Message interface {
	// Decode is allowed and expected to retain a reference to data after
	// returning (unlike encoding.BinaryUnmarshaler).
	Decode(data []byte) error

	// Encode appends itself to dst and returns the new buffer.
	Encode(dst []byte) []byte
}

    Message is the interface implemented by an object that can decode and encode a particular PostgreSQL message.

    type NoData

    type NoData struct{}

    func (*NoData) Backend

    func (*NoData) Backend()

    func (*NoData) Decode

    func (dst *NoData) Decode(src []byte) error

    func (*NoData) Encode

    func (src *NoData) Encode(dst []byte) []byte

    func (*NoData) MarshalJSON

    func (src *NoData) MarshalJSON() ([]byte, error)

    type NoticeResponse

    type NoticeResponse ErrorResponse

    func (*NoticeResponse) Backend

    func (*NoticeResponse) Backend()

    func (*NoticeResponse) Decode

    func (dst *NoticeResponse) Decode(src []byte) error

    func (*NoticeResponse) Encode

    func (src *NoticeResponse) Encode(dst []byte) []byte

    type NotificationResponse

    type NotificationResponse struct {
    	PID     uint32
    	Channel string
    	Payload string
    }

    func (*NotificationResponse) Backend

    func (*NotificationResponse) Backend()

    func (*NotificationResponse) Decode

    func (dst *NotificationResponse) Decode(src []byte) error

    func (*NotificationResponse) Encode

    func (src *NotificationResponse) Encode(dst []byte) []byte

    func (*NotificationResponse) MarshalJSON

    func (src *NotificationResponse) MarshalJSON() ([]byte, error)

    type ParameterDescription

    type ParameterDescription struct {
    	ParameterOIDs []uint32
    }

    func (*ParameterDescription) Backend

    func (*ParameterDescription) Backend()

    func (*ParameterDescription) Decode

    func (dst *ParameterDescription) Decode(src []byte) error

    func (*ParameterDescription) Encode

    func (src *ParameterDescription) Encode(dst []byte) []byte

    func (*ParameterDescription) MarshalJSON

    func (src *ParameterDescription) MarshalJSON() ([]byte, error)

    type ParameterStatus

    type ParameterStatus struct {
    	Name  string
    	Value string
    }

    func (*ParameterStatus) Backend

    func (*ParameterStatus) Backend()

    func (*ParameterStatus) Decode

    func (dst *ParameterStatus) Decode(src []byte) error

    func (*ParameterStatus) Encode

    func (src *ParameterStatus) Encode(dst []byte) []byte

    func (*ParameterStatus) MarshalJSON

    func (ps *ParameterStatus) MarshalJSON() ([]byte, error)

    type Parse

    type Parse struct {
    	Name          string
    	Query         string
    	ParameterOIDs []uint32
    }

    func (*Parse) Decode

    func (dst *Parse) Decode(src []byte) error

    func (*Parse) Encode

    func (src *Parse) Encode(dst []byte) []byte

    func (*Parse) Frontend

    func (*Parse) Frontend()

    func (*Parse) MarshalJSON

    func (src *Parse) MarshalJSON() ([]byte, error)

    type ParseComplete

    type ParseComplete struct{}

    func (*ParseComplete) Backend

    func (*ParseComplete) Backend()

    func (*ParseComplete) Decode

    func (dst *ParseComplete) Decode(src []byte) error

    func (*ParseComplete) Encode

    func (src *ParseComplete) Encode(dst []byte) []byte

    func (*ParseComplete) MarshalJSON

    func (src *ParseComplete) MarshalJSON() ([]byte, error)

    type PasswordMessage

    type PasswordMessage struct {
    	Password string
    }

    func (*PasswordMessage) Decode

    func (dst *PasswordMessage) Decode(src []byte) error

    func (*PasswordMessage) Encode

    func (src *PasswordMessage) Encode(dst []byte) []byte

    func (*PasswordMessage) Frontend

    func (*PasswordMessage) Frontend()

    func (*PasswordMessage) MarshalJSON

    func (src *PasswordMessage) MarshalJSON() ([]byte, error)

    type PortalSuspended

    type PortalSuspended struct{}

    func (*PortalSuspended) Backend

    func (*PortalSuspended) Backend()

    func (*PortalSuspended) Decode

    func (dst *PortalSuspended) Decode(src []byte) error

    func (*PortalSuspended) Encode

    func (src *PortalSuspended) Encode(dst []byte) []byte

    func (*PortalSuspended) MarshalJSON

    func (src *PortalSuspended) MarshalJSON() ([]byte, error)

    type Query

    type Query struct {
    	String string
    }

    func (*Query) Decode

    func (dst *Query) Decode(src []byte) error

    func (*Query) Encode

    func (src *Query) Encode(dst []byte) []byte

    func (*Query) Frontend

    func (*Query) Frontend()

    func (*Query) MarshalJSON

    func (src *Query) MarshalJSON() ([]byte, error)

    type ReadyForQuery

    type ReadyForQuery struct {
    	TxStatus byte
    }

    func (*ReadyForQuery) Backend

    func (*ReadyForQuery) Backend()

    func (*ReadyForQuery) Decode

    func (dst *ReadyForQuery) Decode(src []byte) error

    func (*ReadyForQuery) Encode

    func (src *ReadyForQuery) Encode(dst []byte) []byte

    func (*ReadyForQuery) MarshalJSON

    func (src *ReadyForQuery) MarshalJSON() ([]byte, error)

    type RowDescription

    type RowDescription struct {
    	Fields []FieldDescription
    }

    func (*RowDescription) Backend

    func (*RowDescription) Backend()

    func (*RowDescription) Decode

    func (dst *RowDescription) Decode(src []byte) error

    func (*RowDescription) Encode

    func (src *RowDescription) Encode(dst []byte) []byte

    func (*RowDescription) MarshalJSON

    func (src *RowDescription) MarshalJSON() ([]byte, error)

    type SASLInitialResponse

    type SASLInitialResponse struct {
    	AuthMechanism string
    	Data          []byte
    }

    func (*SASLInitialResponse) Decode

    func (dst *SASLInitialResponse) Decode(src []byte) error

    func (*SASLInitialResponse) Encode

    func (src *SASLInitialResponse) Encode(dst []byte) []byte

    func (*SASLInitialResponse) Frontend

    func (*SASLInitialResponse) Frontend()

    func (*SASLInitialResponse) MarshalJSON

    func (src *SASLInitialResponse) MarshalJSON() ([]byte, error)

    type SASLResponse

    type SASLResponse struct {
    	Data []byte
    }

    func (*SASLResponse) Decode

    func (dst *SASLResponse) Decode(src []byte) error

    func (*SASLResponse) Encode

    func (src *SASLResponse) Encode(dst []byte) []byte

    func (*SASLResponse) Frontend

    func (*SASLResponse) Frontend()

    func (*SASLResponse) MarshalJSON

    func (src *SASLResponse) MarshalJSON() ([]byte, error)

    type StartupMessage

    type StartupMessage struct {
    	ProtocolVersion uint32
    	Parameters      map[string]string
    }

    func (*StartupMessage) Decode

    func (dst *StartupMessage) Decode(src []byte) error

    func (*StartupMessage) Encode

    func (src *StartupMessage) Encode(dst []byte) []byte

    func (*StartupMessage) Frontend

    func (*StartupMessage) Frontend()

    func (*StartupMessage) MarshalJSON

    func (src *StartupMessage) MarshalJSON() ([]byte, error)

    type Sync

    type Sync struct{}

    func (*Sync) Decode

    func (dst *Sync) Decode(src []byte) error

    func (*Sync) Encode

    func (src *Sync) Encode(dst []byte) []byte

    func (*Sync) Frontend

    func (*Sync) Frontend()

    func (*Sync) MarshalJSON

    func (src *Sync) MarshalJSON() ([]byte, error)

    type Terminate

    type Terminate struct{}

    func (*Terminate) Decode

    func (dst *Terminate) Decode(src []byte) error

    func (*Terminate) Encode

    func (src *Terminate) Encode(dst []byte) []byte

    func (*Terminate) Frontend

    func (*Terminate) Frontend()

    func (*Terminate) MarshalJSON

    func (src *Terminate) MarshalJSON() ([]byte, error)