db

package
v0.3.13 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2022 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoTableMapping = errors.New("no table mapping found")
View Source
var MarmotPrefix = "__marmot__"

Functions

func GetAllDBTables added in v0.3.13

func GetAllDBTables(path string) ([]string, error)

func OpenRaw

func OpenRaw(dns string) (*sql.DB, *sqlite3.SQLiteConn, error)

Types

type ChangeLogEvent

type ChangeLogEvent struct {
	Id        int64
	Type      string
	TableName string
	Row       map[string]any
	// contains filtered or unexported fields
}

func (*ChangeLogEvent) Hash

func (e *ChangeLogEvent) Hash() (uint64, error)

func (*ChangeLogEvent) Marshal

func (e *ChangeLogEvent) Marshal() ([]byte, error)

func (*ChangeLogEvent) Unmarshal

func (e *ChangeLogEvent) Unmarshal(data []byte) error

type ChangeLogState

type ChangeLogState = int16
const (
	Pending   ChangeLogState = 0
	Published ChangeLogState = 1
	Failed    ChangeLogState = -1
)

type ColumnInfo

type ColumnInfo struct {
	Name         string `db:"name"`
	Type         string `db:"type"`
	NotNull      bool   `db:"notnull"`
	DefaultValue any    `db:"dflt_value"`
	IsPrimaryKey bool   `db:"pk"`
}

type EnhancedRows

type EnhancedRows struct {
	*sql.Rows
}

func (*EnhancedRows) Finalize

func (rs *EnhancedRows) Finalize()

type EnhancedStatement

type EnhancedStatement struct {
	*sql.Stmt
}

func (*EnhancedStatement) Finalize

func (stmt *EnhancedStatement) Finalize()

type SqliteDriverConnector

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

func (SqliteDriverConnector) Connect

func (SqliteDriverConnector) Driver

func (t SqliteDriverConnector) Driver() driver.Driver

type SqliteStreamDB

type SqliteStreamDB struct {
	*goqu.Database

	OnChange func(event *ChangeLogEvent) error
	// contains filtered or unexported fields
}

func OpenStreamDB

func OpenStreamDB(path string, tables []string) (*SqliteStreamDB, error)

func (*SqliteStreamDB) BackupTo

func (conn *SqliteStreamDB) BackupTo(bkFilePath string) error

func (*SqliteStreamDB) CleanupChangeLogs

func (conn *SqliteStreamDB) CleanupChangeLogs() (int64, error)

func (*SqliteStreamDB) Execute

func (conn *SqliteStreamDB) Execute(query string) error

func (*SqliteStreamDB) GetPath

func (conn *SqliteStreamDB) GetPath() string

func (*SqliteStreamDB) GetRawConnection

func (conn *SqliteStreamDB) GetRawConnection() *sqlite3.SQLiteConn

func (*SqliteStreamDB) GetTableInfo

func (conn *SqliteStreamDB) GetTableInfo(table string) ([]*ColumnInfo, error)

func (*SqliteStreamDB) RemoveCDC

func (conn *SqliteStreamDB) RemoveCDC() error

func (*SqliteStreamDB) Replicate

func (conn *SqliteStreamDB) Replicate(event *ChangeLogEvent) error

func (*SqliteStreamDB) RestoreFrom

func (conn *SqliteStreamDB) RestoreFrom(bkFilePath string) error

func (*SqliteStreamDB) StartWatching

func (conn *SqliteStreamDB) StartWatching() error

Jump to

Keyboard shortcuts

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