binlog

package
v0.7.16 Latest Latest
Warning

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

Go to latest
Published: May 20, 2016 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NotDML    EventDML = "NoDML"
	InsertDML          = "Insert"
	UpdateDML          = "Update"
	DeleteDML          = "Delete"
)
View Source
const (
	InvalidState                      BinlogEntryState = "InvalidState"
	SearchForStartPosOrStatementState                  = "SearchForStartPosOrStatementState"
	ExpectEndLogPosState                               = "ExpectEndLogPosState"
	ExpectTokenState                                   = "ExpectTokenState"
	PositionalColumnAssignmentState                    = "PositionalColumnAssignmentState"
)

States of the state machine

Variables

This section is empty.

Functions

This section is empty.

Types

type BinlogDMLEvent

type BinlogDMLEvent struct {
	DatabaseName      string
	TableName         string
	DML               EventDML
	WhereColumnValues *sql.ColumnValues
	NewColumnValues   *sql.ColumnValues
}

BinlogDMLEvent is a binary log rows (DML) event entry, with data

func NewBinlogDMLEvent

func NewBinlogDMLEvent(databaseName, tableName string, dml EventDML) *BinlogDMLEvent

func (*BinlogDMLEvent) String

func (this *BinlogDMLEvent) String() string

type BinlogEntry

type BinlogEntry struct {
	Coordinates mysql.BinlogCoordinates
	EndLogPos   uint64

	DmlEvent *BinlogDMLEvent
}

BinlogEntry describes an entry in the binary log

func NewBinlogEntry

func NewBinlogEntry(logFile string, logPos uint64) *BinlogEntry

NewBinlogEntry creates an empty, ready to go BinlogEntry object

func NewBinlogEntryAt

func NewBinlogEntryAt(coordinates mysql.BinlogCoordinates) *BinlogEntry

NewBinlogEntry creates an empty, ready to go BinlogEntry object

func (*BinlogEntry) Duplicate

func (this *BinlogEntry) Duplicate() *BinlogEntry

Duplicate creates and returns a new binlog entry, with some of the attributes pre-assigned

func (*BinlogEntry) String

func (this *BinlogEntry) String() string

Duplicate creates and returns a new binlog entry, with some of the attributes pre-assigned

type BinlogEntryState

type BinlogEntryState string

BinlogEntryState is a state in the binlog parser automaton / state machine

type BinlogReader

type BinlogReader interface {
	StreamEvents(canStopStreaming func() bool, entriesChannel chan<- *BinlogEntry) error
	GetCurrentBinlogCoordinates() *mysql.BinlogCoordinates
	Reconnect() error
}

BinlogReader is a general interface whose implementations can choose their methods of reading a binary log file and parsing it into binlog entries

type EventDML

type EventDML string

func ToEventDML

func ToEventDML(description string) EventDML

type GoMySQLReader

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

func NewGoMySQLReader

func NewGoMySQLReader(connectionConfig *mysql.ConnectionConfig) (binlogReader *GoMySQLReader, err error)

func (*GoMySQLReader) ConnectBinlogStreamer

func (this *GoMySQLReader) ConnectBinlogStreamer(coordinates mysql.BinlogCoordinates) (err error)

ConnectBinlogStreamer

func (*GoMySQLReader) GetCurrentBinlogCoordinates added in v0.7.16

func (this *GoMySQLReader) GetCurrentBinlogCoordinates() *mysql.BinlogCoordinates

func (*GoMySQLReader) Reconnect added in v0.7.16

func (this *GoMySQLReader) Reconnect() error

func (*GoMySQLReader) StreamEvents

func (this *GoMySQLReader) StreamEvents(canStopStreaming func() bool, entriesChannel chan<- *BinlogEntry) error

StreamEvents

type MySQLBinlogReader

type MySQLBinlogReader struct {
	Basedir           string
	Datadir           string
	MySQLBinlogBinary string
}

MySQLBinlogReader reads binary log entries by executing the `mysqlbinlog` process and textually parsing its output

func NewMySQLBinlogReader

func NewMySQLBinlogReader(basedir string, datadir string) (mySQLBinlogReader *MySQLBinlogReader)

NewMySQLBinlogReader creates a new reader that directly parses binlog files from the filesystem

func (*MySQLBinlogReader) ReadEntries

func (this *MySQLBinlogReader) ReadEntries(logFile string, startPos uint64, stopPos uint64) (entries [](*BinlogEntry), err error)

ReadEntries will read binlog entries from parsed text output of `mysqlbinlog` utility

Jump to

Keyboard shortcuts

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