Documentation ¶
Overview ¶
Package pgproto3 is a encoder and decoder of the PostgreSQL wire protocol version 3.
See https://www.postgresql.org/docs/current/protocol-message-formats.html for meanings of the different messages.
Index ¶
- Constants
- type AuthenticationCleartextPassword
- func (*AuthenticationCleartextPassword) AuthenticationResponse()
- func (*AuthenticationCleartextPassword) Backend()
- func (dst *AuthenticationCleartextPassword) Decode(src []byte) error
- func (src *AuthenticationCleartextPassword) Encode(dst []byte) []byte
- func (src AuthenticationCleartextPassword) MarshalJSON() ([]byte, error)
- type AuthenticationMD5Password
- func (*AuthenticationMD5Password) AuthenticationResponse()
- func (*AuthenticationMD5Password) Backend()
- func (dst *AuthenticationMD5Password) Decode(src []byte) error
- func (src *AuthenticationMD5Password) Encode(dst []byte) []byte
- func (src AuthenticationMD5Password) MarshalJSON() ([]byte, error)
- func (dst *AuthenticationMD5Password) UnmarshalJSON(data []byte) error
- type AuthenticationOk
- type AuthenticationResponseMessage
- type AuthenticationSASL
- type AuthenticationSASLContinue
- func (*AuthenticationSASLContinue) AuthenticationResponse()
- func (*AuthenticationSASLContinue) Backend()
- func (dst *AuthenticationSASLContinue) Decode(src []byte) error
- func (src *AuthenticationSASLContinue) Encode(dst []byte) []byte
- func (src AuthenticationSASLContinue) MarshalJSON() ([]byte, error)
- func (dst *AuthenticationSASLContinue) UnmarshalJSON(data []byte) error
- type AuthenticationSASLFinal
- func (*AuthenticationSASLFinal) AuthenticationResponse()
- func (*AuthenticationSASLFinal) Backend()
- func (dst *AuthenticationSASLFinal) Decode(src []byte) error
- func (src *AuthenticationSASLFinal) Encode(dst []byte) []byte
- func (src AuthenticationSASLFinal) MarshalJSON() ([]byte, error)
- func (dst *AuthenticationSASLFinal) UnmarshalJSON(data []byte) error
- type Backend
- type BackendKeyData
- type BackendMessage
- type BigEndianBuf
- type Bind
- type BindComplete
- type CancelRequest
- type ChunkReader
- type Close
- type CloseComplete
- type CommandComplete
- type CopyBothResponse
- type CopyData
- type CopyDone
- type CopyFail
- type CopyInResponse
- type CopyOutResponse
- type DataRow
- type Describe
- type EmptyQueryResponse
- type ErrorResponse
- type Execute
- type FieldDescription
- type Flush
- type Frontend
- type FrontendMessage
- type FunctionCall
- type FunctionCallResponse
- type GSSEncRequest
- type Message
- type NoData
- type NoticeResponse
- type NotificationResponse
- type ParameterDescription
- type ParameterStatus
- type Parse
- type ParseComplete
- type PasswordMessage
- type PortalSuspended
- type Query
- type ReadyForQuery
- type RowDescription
- type SASLInitialResponse
- type SASLResponse
- type SSLRequest
- type StartupMessage
- type Sync
- type Terminate
Constants ¶
const ( AuthTypeOk = 0 AuthTypeCleartextPassword = 3 AuthTypeMD5Password = 5 AuthTypeSCMCreds = 6 AuthTypeGSS = 7 AuthTypeGSSCont = 8 AuthTypeSSPI = 9 AuthTypeSASL = 10 AuthTypeSASLContinue = 11 AuthTypeSASLFinal = 12 )
Authentication message type constants. See src/include/libpq/pqcomm.h for all constants.
const ( TextFormat = 0 BinaryFormat = 1 )
const ProtocolVersionNumber = 196608 // 3.0
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthenticationCleartextPassword ¶
type AuthenticationCleartextPassword struct { }
AuthenticationCleartextPassword is a message sent from the backend indicating that a clear-text password is required.
func (*AuthenticationCleartextPassword) AuthenticationResponse ¶
func (*AuthenticationCleartextPassword) AuthenticationResponse()
Backend identifies this message as an authentication response.
func (*AuthenticationCleartextPassword) Backend ¶
func (*AuthenticationCleartextPassword) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*AuthenticationCleartextPassword) Decode ¶
func (dst *AuthenticationCleartextPassword) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*AuthenticationCleartextPassword) Encode ¶
func (src *AuthenticationCleartextPassword) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (AuthenticationCleartextPassword) MarshalJSON ¶
func (src AuthenticationCleartextPassword) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type AuthenticationMD5Password ¶
type AuthenticationMD5Password struct {
Salt [4]byte
}
AuthenticationMD5Password is a message sent from the backend indicating that an MD5 hashed password is required.
func (*AuthenticationMD5Password) AuthenticationResponse ¶
func (*AuthenticationMD5Password) AuthenticationResponse()
Backend identifies this message as an authentication response.
func (*AuthenticationMD5Password) Backend ¶
func (*AuthenticationMD5Password) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*AuthenticationMD5Password) Decode ¶
func (dst *AuthenticationMD5Password) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*AuthenticationMD5Password) Encode ¶
func (src *AuthenticationMD5Password) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (AuthenticationMD5Password) MarshalJSON ¶
func (src AuthenticationMD5Password) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*AuthenticationMD5Password) UnmarshalJSON ¶
func (dst *AuthenticationMD5Password) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type AuthenticationOk ¶
type AuthenticationOk struct { }
AuthenticationOk is a message sent from the backend indicating that authentication was successful.
func (*AuthenticationOk) AuthenticationResponse ¶
func (*AuthenticationOk) AuthenticationResponse()
Backend identifies this message as an authentication response.
func (*AuthenticationOk) Backend ¶
func (*AuthenticationOk) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*AuthenticationOk) Decode ¶
func (dst *AuthenticationOk) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*AuthenticationOk) Encode ¶
func (src *AuthenticationOk) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (AuthenticationOk) MarshalJSON ¶
func (src AuthenticationOk) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type AuthenticationResponseMessage ¶
type AuthenticationResponseMessage interface { BackendMessage AuthenticationResponse() // no-op method to distinguish authentication responses }
type AuthenticationSASL ¶
type AuthenticationSASL struct {
AuthMechanisms []string
}
AuthenticationSASL is a message sent from the backend indicating that SASL authentication is required.
func (*AuthenticationSASL) AuthenticationResponse ¶
func (*AuthenticationSASL) AuthenticationResponse()
Backend identifies this message as an authentication response.
func (*AuthenticationSASL) Backend ¶
func (*AuthenticationSASL) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*AuthenticationSASL) Decode ¶
func (dst *AuthenticationSASL) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*AuthenticationSASL) Encode ¶
func (src *AuthenticationSASL) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (AuthenticationSASL) MarshalJSON ¶
func (src AuthenticationSASL) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type AuthenticationSASLContinue ¶
type AuthenticationSASLContinue struct {
Data []byte
}
AuthenticationSASLContinue is a message sent from the backend containing a SASL challenge.
func (*AuthenticationSASLContinue) AuthenticationResponse ¶
func (*AuthenticationSASLContinue) AuthenticationResponse()
Backend identifies this message as an authentication response.
func (*AuthenticationSASLContinue) Backend ¶
func (*AuthenticationSASLContinue) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*AuthenticationSASLContinue) Decode ¶
func (dst *AuthenticationSASLContinue) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*AuthenticationSASLContinue) Encode ¶
func (src *AuthenticationSASLContinue) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (AuthenticationSASLContinue) MarshalJSON ¶
func (src AuthenticationSASLContinue) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*AuthenticationSASLContinue) UnmarshalJSON ¶
func (dst *AuthenticationSASLContinue) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type AuthenticationSASLFinal ¶
type AuthenticationSASLFinal struct {
Data []byte
}
AuthenticationSASLFinal is a message sent from the backend indicating a SASL authentication has completed.
func (*AuthenticationSASLFinal) AuthenticationResponse ¶
func (*AuthenticationSASLFinal) AuthenticationResponse()
Backend identifies this message as an authentication response.
func (*AuthenticationSASLFinal) Backend ¶
func (*AuthenticationSASLFinal) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*AuthenticationSASLFinal) Decode ¶
func (dst *AuthenticationSASLFinal) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*AuthenticationSASLFinal) Encode ¶
func (src *AuthenticationSASLFinal) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (AuthenticationSASLFinal) MarshalJSON ¶
func (src AuthenticationSASLFinal) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Unmarshaler.
func (*AuthenticationSASLFinal) UnmarshalJSON ¶
func (dst *AuthenticationSASLFinal) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type Backend ¶
type Backend struct { MsgType byte // contains filtered or unexported fields }
Backend acts as a server for the PostgreSQL wire protocol version 3.
func NewBackend ¶
func NewBackend(cr ChunkReader, w io.Writer) *Backend
NewBackend creates a new Backend.
func (*Backend) Receive ¶
func (b *Backend) Receive() (FrontendMessage, error)
Receive receives a message from the frontend. The returned message is only valid until the next call to Receive.
func (*Backend) ReceiveStartupMessage ¶
func (b *Backend) ReceiveStartupMessage() (FrontendMessage, error)
ReceiveStartupMessage receives the initial connection message. This method is used of the normal Receive method because the initial connection message is "special" and does not include the message type as the first byte. This will return either a StartupMessage, SSLRequest, GSSEncRequest, or CancelRequest.
func (*Backend) Send ¶
func (b *Backend) Send(msg BackendMessage) error
Send sends a message to the frontend.
func (*Backend) SetAuthType ¶
SetAuthType sets the authentication type in the backend. Since multiple message types can start with 'p', SetAuthType allows contextual identification of FrontendMessages. For example, in the PG message flow documentation for PasswordMessage:
Byte1('p') Identifies the message as a password response. Note that this is also used for GSSAPI, SSPI and SASL response messages. The exact message type can be deduced from the context.
Since the Frontend does not know about the state of a backend, it is important to call SetAuthType() after an authentication request is received by the Frontend.
type BackendKeyData ¶
func (*BackendKeyData) Backend ¶
func (*BackendKeyData) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*BackendKeyData) Decode ¶
func (dst *BackendKeyData) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*BackendKeyData) Encode ¶
func (src *BackendKeyData) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (BackendKeyData) MarshalJSON ¶
func (src BackendKeyData) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
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 ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Bind) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Bind) Frontend ¶
func (*Bind) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Bind) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
func (*Bind) UnmarshalJSON ¶
UnmarshalJSON implements encoding/json.Unmarshaler.
type BindComplete ¶
type BindComplete struct{}
func (*BindComplete) Backend ¶
func (*BindComplete) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*BindComplete) Decode ¶
func (dst *BindComplete) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*BindComplete) Encode ¶
func (src *BindComplete) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (BindComplete) MarshalJSON ¶
func (src BindComplete) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type CancelRequest ¶
func (*CancelRequest) Decode ¶
func (dst *CancelRequest) Decode(src []byte) error
func (*CancelRequest) Encode ¶
func (src *CancelRequest) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 4 byte message length.
func (*CancelRequest) Frontend ¶
func (*CancelRequest) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (CancelRequest) MarshalJSON ¶
func (src CancelRequest) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type ChunkReader ¶
type ChunkReader interface { // Next returns buf filled with the next n bytes. If an error (including a partial read) occurs, // buf must be nil. Next must preserve any partially read data. Next must not reuse buf. Next(n int) (buf []byte, err error) }
ChunkReader is an interface to decouple github.com/jackc/chunkreader from this package.
func NewChunkReader ¶
func NewChunkReader(r io.Reader) ChunkReader
NewChunkReader creates and returns a new default ChunkReader.
type Close ¶
func (*Close) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Close) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Close) Frontend ¶
func (*Close) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Close) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
func (*Close) UnmarshalJSON ¶
UnmarshalJSON implements encoding/json.Unmarshaler.
type CloseComplete ¶
type CloseComplete struct{}
func (*CloseComplete) Backend ¶
func (*CloseComplete) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*CloseComplete) Decode ¶
func (dst *CloseComplete) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CloseComplete) Encode ¶
func (src *CloseComplete) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (CloseComplete) MarshalJSON ¶
func (src CloseComplete) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type CommandComplete ¶
type CommandComplete struct {
CommandTag []byte
}
func (*CommandComplete) Backend ¶
func (*CommandComplete) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*CommandComplete) Decode ¶
func (dst *CommandComplete) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CommandComplete) Encode ¶
func (src *CommandComplete) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (CommandComplete) MarshalJSON ¶
func (src CommandComplete) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*CommandComplete) UnmarshalJSON ¶
func (dst *CommandComplete) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type CopyBothResponse ¶
func (*CopyBothResponse) Backend ¶
func (*CopyBothResponse) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*CopyBothResponse) Decode ¶
func (dst *CopyBothResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CopyBothResponse) Encode ¶
func (src *CopyBothResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (CopyBothResponse) MarshalJSON ¶
func (src CopyBothResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*CopyBothResponse) UnmarshalJSON ¶
func (dst *CopyBothResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type CopyData ¶
type CopyData struct {
Data []byte
}
func (*CopyData) Backend ¶
func (*CopyData) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*CopyData) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CopyData) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*CopyData) Frontend ¶
func (*CopyData) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (CopyData) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
func (*CopyData) UnmarshalJSON ¶
UnmarshalJSON implements encoding/json.Unmarshaler.
type CopyDone ¶
type CopyDone struct { }
func (*CopyDone) Backend ¶
func (*CopyDone) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*CopyDone) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CopyDone) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*CopyDone) Frontend ¶
func (*CopyDone) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (CopyDone) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type CopyFail ¶
type CopyFail struct {
Message string
}
func (*CopyFail) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CopyFail) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*CopyFail) Frontend ¶
func (*CopyFail) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (CopyFail) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type CopyInResponse ¶
func (*CopyInResponse) Backend ¶
func (*CopyInResponse) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*CopyInResponse) Decode ¶
func (dst *CopyInResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CopyInResponse) Encode ¶
func (src *CopyInResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (CopyInResponse) MarshalJSON ¶
func (src CopyInResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*CopyInResponse) UnmarshalJSON ¶
func (dst *CopyInResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type CopyOutResponse ¶
func (*CopyOutResponse) Backend ¶
func (*CopyOutResponse) Backend()
func (*CopyOutResponse) Decode ¶
func (dst *CopyOutResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*CopyOutResponse) Encode ¶
func (src *CopyOutResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (CopyOutResponse) MarshalJSON ¶
func (src CopyOutResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*CopyOutResponse) UnmarshalJSON ¶
func (dst *CopyOutResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type DataRow ¶
type DataRow struct {
Values [][]byte
}
func (*DataRow) Backend ¶
func (*DataRow) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*DataRow) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*DataRow) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (DataRow) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
func (*DataRow) UnmarshalJSON ¶
UnmarshalJSON implements encoding/json.Unmarshaler.
type Describe ¶
func (*Describe) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Describe) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Describe) Frontend ¶
func (*Describe) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Describe) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
func (*Describe) UnmarshalJSON ¶
UnmarshalJSON implements encoding/json.Unmarshaler.
type EmptyQueryResponse ¶
type EmptyQueryResponse struct{}
func (*EmptyQueryResponse) Backend ¶
func (*EmptyQueryResponse) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*EmptyQueryResponse) Decode ¶
func (dst *EmptyQueryResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*EmptyQueryResponse) Encode ¶
func (src *EmptyQueryResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (EmptyQueryResponse) MarshalJSON ¶
func (src EmptyQueryResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type ErrorResponse ¶
type ErrorResponse struct { Severity string SeverityUnlocalized string // only in 9.6 and greater 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()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*ErrorResponse) Decode ¶
func (dst *ErrorResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*ErrorResponse) Encode ¶
func (src *ErrorResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (ErrorResponse) MarshalJSON ¶
func (src ErrorResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*ErrorResponse) UnmarshalJSON ¶
func (dst *ErrorResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type Execute ¶
func (*Execute) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Execute) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Execute) Frontend ¶
func (*Execute) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Execute) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type FieldDescription ¶
type FieldDescription struct { Name []byte TableOID uint32 TableAttributeNumber uint16 DataTypeOID uint32 DataTypeSize int16 TypeModifier int32 Format int16 }
func (FieldDescription) MarshalJSON ¶
func (fd FieldDescription) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type Flush ¶
type Flush struct{}
func (*Flush) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Flush) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Flush) Frontend ¶
func (*Flush) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Flush) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type Frontend ¶
type Frontend struct { MsgType byte // contains filtered or unexported fields }
Frontend acts as a client for the PostgreSQL wire protocol version 3.
func NewFrontend ¶
func NewFrontend(cr ChunkReader, w io.Writer) *Frontend
NewFrontend creates a new Frontend.
func (*Frontend) GetAuthType ¶
GetAuthType returns the authType used in the current state of the frontend. See SetAuthType for more information.
func (*Frontend) Receive ¶
func (f *Frontend) Receive() (BackendMessage, error)
Receive receives a message from the backend. The returned message is only valid until the next call to Receive.
func (*Frontend) Send ¶
func (f *Frontend) Send(msg FrontendMessage) error
Send sends a message to the backend.
type FrontendMessage ¶
type FrontendMessage interface { Message Frontend() // no-op method to distinguish frontend from backend methods }
type FunctionCall ¶
type FunctionCall struct { Function uint32 ArgFormatCodes []uint16 Arguments [][]byte ResultFormatCode uint16 }
func (*FunctionCall) Decode ¶
func (dst *FunctionCall) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*FunctionCall) Encode ¶
func (src *FunctionCall) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*FunctionCall) Frontend ¶
func (*FunctionCall) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
type FunctionCallResponse ¶
type FunctionCallResponse struct {
Result []byte
}
func (*FunctionCallResponse) Backend ¶
func (*FunctionCallResponse) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*FunctionCallResponse) Decode ¶
func (dst *FunctionCallResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*FunctionCallResponse) Encode ¶
func (src *FunctionCallResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (FunctionCallResponse) MarshalJSON ¶
func (src FunctionCallResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*FunctionCallResponse) UnmarshalJSON ¶
func (dst *FunctionCallResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type GSSEncRequest ¶
type GSSEncRequest struct { }
func (*GSSEncRequest) Decode ¶
func (dst *GSSEncRequest) Decode(src []byte) error
func (*GSSEncRequest) Encode ¶
func (src *GSSEncRequest) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 4 byte message length.
func (*GSSEncRequest) Frontend ¶
func (*GSSEncRequest) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (GSSEncRequest) MarshalJSON ¶
func (src GSSEncRequest) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
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()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*NoData) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*NoData) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (NoData) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type NoticeResponse ¶
type NoticeResponse ErrorResponse
func (*NoticeResponse) Backend ¶
func (*NoticeResponse) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*NoticeResponse) Decode ¶
func (dst *NoticeResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*NoticeResponse) Encode ¶
func (src *NoticeResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
type NotificationResponse ¶
func (*NotificationResponse) Backend ¶
func (*NotificationResponse) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*NotificationResponse) Decode ¶
func (dst *NotificationResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*NotificationResponse) Encode ¶
func (src *NotificationResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (NotificationResponse) MarshalJSON ¶
func (src NotificationResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type ParameterDescription ¶
type ParameterDescription struct {
ParameterOIDs []uint32
}
func (*ParameterDescription) Backend ¶
func (*ParameterDescription) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*ParameterDescription) Decode ¶
func (dst *ParameterDescription) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*ParameterDescription) Encode ¶
func (src *ParameterDescription) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (ParameterDescription) MarshalJSON ¶
func (src ParameterDescription) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type ParameterStatus ¶
func (*ParameterStatus) Backend ¶
func (*ParameterStatus) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*ParameterStatus) Decode ¶
func (dst *ParameterStatus) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*ParameterStatus) Encode ¶
func (src *ParameterStatus) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (ParameterStatus) MarshalJSON ¶
func (ps ParameterStatus) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type Parse ¶
func (*Parse) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Parse) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Parse) Frontend ¶
func (*Parse) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Parse) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type ParseComplete ¶
type ParseComplete struct{}
func (*ParseComplete) Backend ¶
func (*ParseComplete) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*ParseComplete) Decode ¶
func (dst *ParseComplete) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*ParseComplete) Encode ¶
func (src *ParseComplete) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (ParseComplete) MarshalJSON ¶
func (src ParseComplete) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type PasswordMessage ¶
type PasswordMessage struct {
Password string
}
func (*PasswordMessage) Decode ¶
func (dst *PasswordMessage) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*PasswordMessage) Encode ¶
func (src *PasswordMessage) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*PasswordMessage) Frontend ¶
func (*PasswordMessage) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (*PasswordMessage) InitialResponse ¶
func (*PasswordMessage) InitialResponse()
Frontend identifies this message as an authentication response.
func (PasswordMessage) MarshalJSON ¶
func (src PasswordMessage) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type PortalSuspended ¶
type PortalSuspended struct{}
func (*PortalSuspended) Backend ¶
func (*PortalSuspended) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*PortalSuspended) Decode ¶
func (dst *PortalSuspended) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*PortalSuspended) Encode ¶
func (src *PortalSuspended) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (PortalSuspended) MarshalJSON ¶
func (src PortalSuspended) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type Query ¶
type Query struct {
String string
}
func (*Query) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Query) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Query) Frontend ¶
func (*Query) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Query) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type ReadyForQuery ¶
type ReadyForQuery struct {
TxStatus byte
}
func (*ReadyForQuery) Backend ¶
func (*ReadyForQuery) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*ReadyForQuery) Decode ¶
func (dst *ReadyForQuery) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*ReadyForQuery) Encode ¶
func (src *ReadyForQuery) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (ReadyForQuery) MarshalJSON ¶
func (src ReadyForQuery) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*ReadyForQuery) UnmarshalJSON ¶
func (dst *ReadyForQuery) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type RowDescription ¶
type RowDescription struct {
Fields []FieldDescription
}
func (*RowDescription) Backend ¶
func (*RowDescription) Backend()
Backend identifies this message as sendable by the PostgreSQL backend.
func (*RowDescription) Decode ¶
func (dst *RowDescription) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*RowDescription) Encode ¶
func (src *RowDescription) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (RowDescription) MarshalJSON ¶
func (src RowDescription) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*RowDescription) UnmarshalJSON ¶
func (dst *RowDescription) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type SASLInitialResponse ¶
func (*SASLInitialResponse) Decode ¶
func (dst *SASLInitialResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*SASLInitialResponse) Encode ¶
func (src *SASLInitialResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*SASLInitialResponse) Frontend ¶
func (*SASLInitialResponse) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (SASLInitialResponse) MarshalJSON ¶
func (src SASLInitialResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*SASLInitialResponse) UnmarshalJSON ¶
func (dst *SASLInitialResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type SASLResponse ¶
type SASLResponse struct {
Data []byte
}
func (*SASLResponse) Decode ¶
func (dst *SASLResponse) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*SASLResponse) Encode ¶
func (src *SASLResponse) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*SASLResponse) Frontend ¶
func (*SASLResponse) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (SASLResponse) MarshalJSON ¶
func (src SASLResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
func (*SASLResponse) UnmarshalJSON ¶
func (dst *SASLResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON implements encoding/json.Unmarshaler.
type SSLRequest ¶
type SSLRequest struct { }
func (*SSLRequest) Decode ¶
func (dst *SSLRequest) Decode(src []byte) error
func (*SSLRequest) Encode ¶
func (src *SSLRequest) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 4 byte message length.
func (*SSLRequest) Frontend ¶
func (*SSLRequest) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (SSLRequest) MarshalJSON ¶
func (src SSLRequest) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type StartupMessage ¶
func (*StartupMessage) Decode ¶
func (dst *StartupMessage) Decode(src []byte) error
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*StartupMessage) Encode ¶
func (src *StartupMessage) Encode(dst []byte) []byte
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*StartupMessage) Frontend ¶
func (*StartupMessage) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (StartupMessage) MarshalJSON ¶
func (src StartupMessage) MarshalJSON() ([]byte, error)
MarshalJSON implements encoding/json.Marshaler.
type Sync ¶
type Sync struct{}
func (*Sync) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Sync) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Sync) Frontend ¶
func (*Sync) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Sync) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
type Terminate ¶
type Terminate struct{}
func (*Terminate) Decode ¶
Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message type identifier and 4 byte message length.
func (*Terminate) Encode ¶
Encode encodes src into dst. dst will include the 1 byte message type identifier and the 4 byte message length.
func (*Terminate) Frontend ¶
func (*Terminate) Frontend()
Frontend identifies this message as sendable by a PostgreSQL frontend.
func (Terminate) MarshalJSON ¶
MarshalJSON implements encoding/json.Marshaler.
Source Files ¶
- authentication_cleartext_password.go
- authentication_md5_password.go
- authentication_ok.go
- authentication_sasl.go
- authentication_sasl_continue.go
- authentication_sasl_final.go
- backend.go
- backend_key_data.go
- big_endian.go
- bind.go
- bind_complete.go
- cancel_request.go
- chunkreader.go
- close.go
- close_complete.go
- command_complete.go
- copy_both_response.go
- copy_data.go
- copy_done.go
- copy_fail.go
- copy_in_response.go
- copy_out_response.go
- data_row.go
- describe.go
- doc.go
- empty_query_response.go
- error_response.go
- execute.go
- flush.go
- frontend.go
- function_call.go
- function_call_response.go
- gss_enc_request.go
- no_data.go
- notice_response.go
- notification_response.go
- parameter_description.go
- parameter_status.go
- parse.go
- parse_complete.go
- password_message.go
- pgproto3.go
- portal_suspended.go
- query.go
- ready_for_query.go
- row_description.go
- sasl_initial_response.go
- sasl_response.go
- ssl_request.go
- startup_message.go
- sync.go
- terminate.go