decode

package
v0.0.60 Latest Latest
Warning

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

Go to latest
Published: May 13, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ExtensionSchema  = "pgcapture"
	ExtensionDDLLogs = "ddl_logs"
	ExtensionSources = "sources"
)
View Source
const (
	PGLogicalOutputPlugin = "pglogical_output"
	PGOutputPlugin        = "pgoutput"
)

Variables

View Source
var (
	ErrSchemaNamespaceMissing = errors.New("namespace missing")
	ErrSchemaTableMissing     = errors.New("table missing")
	ErrSchemaColumnMissing    = errors.New("column missing")
	ErrSchemaIdentityMissing  = errors.New("table identity keys missing")
)
View Source
var StringEnd = []byte{0}

Functions

func Ignore

func Ignore(m *pb.Change) bool

func IsDDL

func IsDDL(m *pb.Change) bool

Types

type BytesReader

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

func NewBytesReader

func NewBytesReader(data []byte) *BytesReader

func (*BytesReader) Byte

func (b *BytesReader) Byte() (v byte, err error)

func (*BytesReader) Bytes32

func (b *BytesReader) Bytes32() (v []byte, err error)

func (*BytesReader) Int16

func (b *BytesReader) Int16() (v int, err error)

func (*BytesReader) Int32

func (b *BytesReader) Int32() (v int, err error)

func (*BytesReader) Int8

func (b *BytesReader) Int8() (v int, err error)

func (*BytesReader) IntEndIdx

func (b *BytesReader) IntEndIdx() (v int, err error)

func (*BytesReader) Skip

func (b *BytesReader) Skip(n int)

func (*BytesReader) String16

func (b *BytesReader) String16() (v string, err error)

func (*BytesReader) String8

func (b *BytesReader) String8() (v string, err error)

func (*BytesReader) StringEnd

func (b *BytesReader) StringEnd() (v string, err error)

func (*BytesReader) Uint16

func (b *BytesReader) Uint16() (v uint16, err error)

func (*BytesReader) Uint32

func (b *BytesReader) Uint32() (v uint32, err error)

type ColumnInfo

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

func (ColumnInfo) Filter

func (i ColumnInfo) Filter(fields []*pb.Field, fieldSelector fieldSelector) (fieldSet, []*pb.Field)

func (ColumnInfo) IsGenerated

func (i ColumnInfo) IsGenerated(f string) bool

func (ColumnInfo) IsIdentityGeneration

func (i ColumnInfo) IsIdentityGeneration(f string) bool

func (ColumnInfo) IsKey

func (i ColumnInfo) IsKey(f string) bool

func (ColumnInfo) KeyLength

func (i ColumnInfo) KeyLength() int

func (ColumnInfo) ListKeys

func (i ColumnInfo) ListKeys() []string

type Decoder

type Decoder interface {
	Decode(in []byte) (*pb.Message, error)
	GetPluginArgs() []string
}

func NewPGLogicalDecoder

func NewPGLogicalDecoder(schema *PGXSchemaLoader) (Decoder, error)

type Field

type Field struct {
	Format byte
	Datum  []byte
}

type KeysCache

type KeysCache map[string]map[string]ColumnInfo

type PGLogicalDecoder

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

func (*PGLogicalDecoder) Decode

func (p *PGLogicalDecoder) Decode(in []byte) (m *pb.Message, err error)

func (*PGLogicalDecoder) GetPluginArgs

func (p *PGLogicalDecoder) GetPluginArgs() []string

func (*PGLogicalDecoder) ReadBegin

func (p *PGLogicalDecoder) ReadBegin(in []byte) (*pb.Message, error)

func (*PGLogicalDecoder) ReadCommit

func (p *PGLogicalDecoder) ReadCommit(in []byte) (*pb.Message, error)

func (*PGLogicalDecoder) ReadRelation

func (p *PGLogicalDecoder) ReadRelation(in []byte, m *Relation) (err error)

func (*PGLogicalDecoder) ReadRowChange

func (p *PGLogicalDecoder) ReadRowChange(in []byte, m *RowChange) (err error)

type PGOutputDecoder

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

func NewPGOutputDecoder

func NewPGOutputDecoder(schema *PGXSchemaLoader, slotName string) *PGOutputDecoder

func (*PGOutputDecoder) Decode

func (p *PGOutputDecoder) Decode(in []byte) (m *pb.Message, err error)

func (*PGOutputDecoder) GetPluginArgs

func (p *PGOutputDecoder) GetPluginArgs() []string

func (*PGOutputDecoder) ReadBegin

func (p *PGOutputDecoder) ReadBegin(in []byte) (*pb.Message, error)

func (*PGOutputDecoder) ReadCommit

func (p *PGOutputDecoder) ReadCommit(in []byte) (*pb.Message, error)

func (*PGOutputDecoder) ReadRelation

func (p *PGOutputDecoder) ReadRelation(in []byte, m *Relation) (err error)

func (*PGOutputDecoder) ReadRowChange

func (p *PGOutputDecoder) ReadRowChange(in []byte, m *RowChange) (err error)

type PGXSchemaLoader

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

func NewPGXSchemaLoader

func NewPGXSchemaLoader(conn *pgx.Conn) *PGXSchemaLoader

func (*PGXSchemaLoader) GetColumnInfo

func (p *PGXSchemaLoader) GetColumnInfo(namespace, table string) (*ColumnInfo, error)

func (*PGXSchemaLoader) GetTableKey

func (p *PGXSchemaLoader) GetTableKey(namespace, table string) (keys []string, err error)

func (*PGXSchemaLoader) GetTypeInfo added in v0.0.57

func (p *PGXSchemaLoader) GetTypeInfo(namespace, table, field string) (*TypeInfo, error)

func (*PGXSchemaLoader) GetVersion

func (p *PGXSchemaLoader) GetVersion() (version int64, err error)

func (*PGXSchemaLoader) RefreshColumnInfo

func (p *PGXSchemaLoader) RefreshColumnInfo() error

func (*PGXSchemaLoader) RefreshType

func (p *PGXSchemaLoader) RefreshType() error

type Relation

type Relation struct {
	Rel     uint32
	NspName string
	RelName string
	Fields  []string
}

type ReplicaIdentity added in v0.0.57

type ReplicaIdentity rune
const (
	ReplicaIdentityDefault ReplicaIdentity = 'd'
	ReplicaIdentityFull    ReplicaIdentity = 'f'
	ReplicaIdentityIndex   ReplicaIdentity = 'i'
	ReplicaIdentityNothing ReplicaIdentity = 'n'
)

type RowChange

type RowChange struct {
	Op  byte
	Rel uint32
	Old []Field
	New []Field
}

type TypeCache

type TypeCache map[string]map[string]map[string]TypeInfo

type TypeInfo added in v0.0.57

type TypeInfo struct {
	OID             uint32
	ReplicaIdentity ReplicaIdentity
}

Jump to

Keyboard shortcuts

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