mysql

package
v0.7.1-beta.3 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2023 License: AGPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Role        = "ROLE"
	CurrentRole = "CURRENT_ROLE"
	Leader      = "Leader"
)
View Source
const DateTimeFormat = "2006-01-02 15:04:05.999999"

Variables

View Source
var EmptyResultData = ResultData{}

Functions

func QueryRowsMap

func QueryRowsMap(db *sql.DB, query string, onRow func(RowMap) error, args ...interface{}) (err error)

QueryRowsMap is a convenience function allowing querying a result set while poviding a callback function activated per read row.

func ScanRowsToArrays

func ScanRowsToArrays(rows *sql.Rows, onRow func([]CellData) error) error

ScanRowsToArrays is a convenience function, typically not called directly, which maps rows already read from the databse into arrays of NullString

func ScanRowsToMaps

func ScanRowsToMaps(rows *sql.Rows, onRow func(RowMap) error) error

ScanRowsToMaps is a convenience function, typically not called directly, which maps rows already read from the databse into RowMap entries.

Types

type CellData

type CellData sql.NullString

CellData is the result of a single (atomic) column in a single row

func RowToArray

func RowToArray(rows *sql.Rows, columns []string) []CellData

func (*CellData) MarshalJSON

func (cd *CellData) MarshalJSON() ([]byte, error)

func (*CellData) NullString

func (cd *CellData) NullString() *sql.NullString

func (*CellData) UnmarshalJSON

func (cd *CellData) UnmarshalJSON(b []byte) error

UnmarshalJSON reds this object from JSON

type Config

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

func GetConfig

func GetConfig() *Config

func NewConfig

func NewConfig(properties map[string]string) (*Config, error)

func (*Config) GetDBConnWithAddr

func (config *Config) GetDBConnWithAddr(addr string) (*sql.DB, error)

func (*Config) GetDBPort

func (config *Config) GetDBPort() int

func (*Config) GetLocalDBConn

func (config *Config) GetLocalDBConn() (*sql.DB, error)

type GTIDItem

type GTIDItem struct {
	ServerUUID string
	Ranges     string
}

GTIDItem represents an item in a set of GTID ranges, for example, the item: "bfaff6e9-3040-11ee-9393-eab5dfc9b22a:1-5:8-10"

func NewGTIDItem

func NewGTIDItem(gtidString string) (*GTIDItem, error)

func (*GTIDItem) Explode

func (gtid *GTIDItem) Explode() (result [](*GTIDItem))

func (*GTIDItem) String

func (gtid *GTIDItem) String() string

type GTIDSet

type GTIDSet struct {
	Items []*GTIDItem
}

func NewOracleGtidSet

func NewOracleGtidSet(gtidSet string) (res *GTIDSet, err error)

func (*GTIDSet) Explode

func (gtidSet *GTIDSet) Explode() (result [](*GTIDItem))

func (*GTIDSet) IsEmpty

func (gtidSet *GTIDSet) IsEmpty() bool

func (*GTIDSet) RemoveUUID

func (gtidSet *GTIDSet) RemoveUUID(uuid string) (removed bool)

func (*GTIDSet) RetainUUID

func (gtidSet *GTIDSet) RetainUUID(uuid string) (anythingRemoved bool)

func (*GTIDSet) RetainUUIDs

func (gtidSet *GTIDSet) RetainUUIDs(uuids []string) (anythingRemoved bool)

func (*GTIDSet) SharedUUIDs

func (gtidSet *GTIDSet) SharedUUIDs(other *GTIDSet) (shared []string)

func (*GTIDSet) String

func (gtidSet *GTIDSet) String() string

type Manager

type Manager struct {
	component.DBManagerBase
	DB *sql.DB
	// contains filtered or unexported fields
}

func NewManager

func NewManager(logger logr.Logger) (*Manager, error)

func (*Manager) CreateRoot

func (mgr *Manager) CreateRoot(ctx context.Context) error

func (*Manager) Demote

func (mgr *Manager) Demote(context.Context) error

func (*Manager) EnsureServerID

func (mgr *Manager) EnsureServerID(ctx context.Context) (bool, error)

func (*Manager) Exec

func (mgr *Manager) Exec(ctx context.Context, sql string) (int64, error)

func (*Manager) Follow

func (mgr *Manager) Follow(ctx context.Context, cluster *dcs.Cluster) error

func (*Manager) GetDBState

func (mgr *Manager) GetDBState(ctx context.Context, cluster *dcs.Cluster) *dcs.DBState

func (*Manager) GetGlobalState

func (mgr *Manager) GetGlobalState(ctx context.Context, db *sql.DB) (map[string]string, error)

func (*Manager) GetHealthiestMember

func (mgr *Manager) GetHealthiestMember(cluster *dcs.Cluster, candidate string) *dcs.Member

func (*Manager) GetLeaderClient

func (mgr *Manager) GetLeaderClient(ctx context.Context, cluster *dcs.Cluster) (*sql.DB, error)

func (*Manager) GetMasterStatus

func (mgr *Manager) GetMasterStatus(ctx context.Context, db *sql.DB) (RowMap, error)

func (*Manager) GetMemberAddrs

func (mgr *Manager) GetMemberAddrs(ctx context.Context, cluster *dcs.Cluster) []string

func (*Manager) GetOpTimestamp

func (mgr *Manager) GetOpTimestamp(ctx context.Context, db *sql.DB) (int64, error)

func (*Manager) GetRole

func (mgr *Manager) GetRole(ctx context.Context) (string, error)

func (*Manager) GetRoleForConsensus

func (mgr *Manager) GetRoleForConsensus(ctx context.Context) (string, error)

func (*Manager) GetRoleForReplication

func (mgr *Manager) GetRoleForReplication(ctx context.Context) (string, error)

func (*Manager) GetSlaveStatus

func (mgr *Manager) GetSlaveStatus(ctx context.Context, db *sql.DB) (RowMap, error)

func (*Manager) HasOtherHealthyMembers

func (mgr *Manager) HasOtherHealthyMembers(ctx context.Context, cluster *dcs.Cluster, leader string) []*dcs.Member

HasOtherHealthyMembers checks if there are any healthy members, excluding the leader

func (*Manager) InitializeCluster

func (mgr *Manager) InitializeCluster(ctx context.Context, cluster *dcs.Cluster) error

func (*Manager) InitiateCluster

func (mgr *Manager) InitiateCluster(cluster *dcs.Cluster) error

func (*Manager) IsClusterInitialized

func (mgr *Manager) IsClusterInitialized(ctx context.Context, cluster *dcs.Cluster) (bool, error)

IsClusterInitialized is a method to check if cluster is initailized or not

func (*Manager) IsCurrentMemberHealthy

func (mgr *Manager) IsCurrentMemberHealthy(ctx context.Context, cluster *dcs.Cluster) bool

func (*Manager) IsCurrentMemberInCluster

func (mgr *Manager) IsCurrentMemberInCluster(ctx context.Context, cluster *dcs.Cluster) bool

func (*Manager) IsDBStartupReady

func (mgr *Manager) IsDBStartupReady() bool

func (*Manager) IsLeader

func (mgr *Manager) IsLeader(ctx context.Context, cluster *dcs.Cluster) (bool, error)

func (*Manager) IsLeaderMember

func (mgr *Manager) IsLeaderMember(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, error)

func (*Manager) IsMemberHealthy

func (mgr *Manager) IsMemberHealthy(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) bool

func (*Manager) IsMemberLagging

func (mgr *Manager) IsMemberLagging(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, int64)

func (*Manager) IsReadonly

func (mgr *Manager) IsReadonly(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, error)

func (*Manager) IsRootCreated

func (mgr *Manager) IsRootCreated(ctx context.Context) (bool, error)

func (*Manager) IsRunning

func (mgr *Manager) IsRunning() bool

func (*Manager) JoinCurrentMemberToCluster

func (mgr *Manager) JoinCurrentMemberToCluster(ctx context.Context, cluster *dcs.Cluster) error

func (*Manager) LeaveMemberFromCluster

func (mgr *Manager) LeaveMemberFromCluster(context.Context, *dcs.Cluster, string) error

func (*Manager) Lock

func (mgr *Manager) Lock(ctx context.Context, reason string) error

func (*Manager) Promote

func (mgr *Manager) Promote(ctx context.Context, cluster *dcs.Cluster) error

func (*Manager) Query

func (mgr *Manager) Query(ctx context.Context, sql string) ([]byte, error)

func (*Manager) ReadCheck

func (mgr *Manager) ReadCheck(ctx context.Context, db *sql.DB) bool

func (*Manager) Recover

func (mgr *Manager) Recover(context.Context) error

func (*Manager) Unlock

func (mgr *Manager) Unlock(ctx context.Context) error

func (*Manager) WriteCheck

func (mgr *Manager) WriteCheck(ctx context.Context, db *sql.DB) bool

type NamedResultData

type NamedResultData struct {
	Columns []string
	Data    ResultData
}

type ResultData

type ResultData []RowData

ResultData is an ordered row set of RowData

type RowData

type RowData []CellData

RowData is the result of a single row, in positioned array format

func (*RowData) Args

func (rd *RowData) Args() []interface{}

func (*RowData) MarshalJSON

func (rd *RowData) MarshalJSON() ([]byte, error)

MarshalJSON will marshal this map as JSON

type RowMap

type RowMap map[string]CellData

RowMap represents one row in a result set. Its objective is to allow for easy, typed getters by column name.

func (*RowMap) GetBool

func (rm *RowMap) GetBool(key string) bool

func (*RowMap) GetInt

func (rm *RowMap) GetInt(key string) int

func (*RowMap) GetInt64

func (rm *RowMap) GetInt64(key string) int64

func (*RowMap) GetIntD

func (rm *RowMap) GetIntD(key string, def int) int

func (*RowMap) GetNullInt64

func (rm *RowMap) GetNullInt64(key string) sql.NullInt64

func (*RowMap) GetString

func (rm *RowMap) GetString(key string) string

func (*RowMap) GetStringD

func (rm *RowMap) GetStringD(key string, def string) string

GetStringD returns a string from the map, or a default value if the key does not exist

func (*RowMap) GetTime

func (rm *RowMap) GetTime(key string) time.Time

func (*RowMap) GetUint

func (rm *RowMap) GetUint(key string) uint

func (*RowMap) GetUint64

func (rm *RowMap) GetUint64(key string) uint64

func (*RowMap) GetUint64D

func (rm *RowMap) GetUint64D(key string, def uint64) uint64

func (*RowMap) GetUintD

func (rm *RowMap) GetUintD(key string, def uint) uint

type WesqlManager

type WesqlManager struct {
	Manager
}

func NewWesqlManager

func NewWesqlManager(logger logr.Logger) (*WesqlManager, error)

func (*WesqlManager) Demote

func (mgr *WesqlManager) Demote(context.Context) error

func (*WesqlManager) Follow

func (mgr *WesqlManager) Follow(ctx context.Context, cluster *dcs.Cluster) error

func (*WesqlManager) GetAddrWithMemberName

func (mgr *WesqlManager) GetAddrWithMemberName(ctx context.Context, cluster *dcs.Cluster, memberName string) string

func (*WesqlManager) GetClusterInfo

func (mgr *WesqlManager) GetClusterInfo(ctx context.Context, cluster *dcs.Cluster) string

func (*WesqlManager) GetClusterLocalInfo

func (mgr *WesqlManager) GetClusterLocalInfo(ctx context.Context) (RowMap, error)

func (*WesqlManager) GetDBConnWithMember

func (mgr *WesqlManager) GetDBConnWithMember(cluster *dcs.Cluster, member *dcs.Member) (*sql.DB, error)

GetDBConnWithMember retrieves a database connection for a specific member of a cluster.

func (*WesqlManager) GetHealthiestMember

func (mgr *WesqlManager) GetHealthiestMember(cluster *dcs.Cluster, candidate string) *dcs.Member

func (*WesqlManager) GetLeaderConn

func (mgr *WesqlManager) GetLeaderConn(ctx context.Context, cluster *dcs.Cluster) (*sql.DB, error)

GetLeaderConn retrieves a database connection to the leader member of a cluster.

func (*WesqlManager) GetLeaderMember

func (mgr *WesqlManager) GetLeaderMember(ctx context.Context, cluster *dcs.Cluster) *dcs.Member

GetLeaderMember retrieves the leader member of a cluster

func (*WesqlManager) GetMemberAddrs

func (mgr *WesqlManager) GetMemberAddrs(ctx context.Context, cluster *dcs.Cluster) []string

func (*WesqlManager) GetRole

func (mgr *WesqlManager) GetRole(ctx context.Context) (string, error)

func (*WesqlManager) HasOtherHealthyLeader

func (mgr *WesqlManager) HasOtherHealthyLeader(ctx context.Context, cluster *dcs.Cluster) *dcs.Member

func (*WesqlManager) HasOtherHealthyMembers

func (mgr *WesqlManager) HasOtherHealthyMembers(ctx context.Context, cluster *dcs.Cluster, leader string) []*dcs.Member

HasOtherHealthyMembers checks if there are any healthy members, excluding the leader

func (*WesqlManager) InitializeCluster

func (mgr *WesqlManager) InitializeCluster(ctx context.Context, cluster *dcs.Cluster) error

func (*WesqlManager) InitiateCluster

func (mgr *WesqlManager) InitiateCluster(cluster *dcs.Cluster) error

func (*WesqlManager) IsClusterHealthy

func (mgr *WesqlManager) IsClusterHealthy(ctx context.Context, cluster *dcs.Cluster) bool

func (*WesqlManager) IsClusterInitialized

func (mgr *WesqlManager) IsClusterInitialized(ctx context.Context, cluster *dcs.Cluster) (bool, error)

IsClusterInitialized is a method to check if cluster is initailized or not

func (*WesqlManager) IsCurrentMemberInCluster

func (mgr *WesqlManager) IsCurrentMemberInCluster(ctx context.Context, cluster *dcs.Cluster) bool

func (*WesqlManager) IsLeader

func (mgr *WesqlManager) IsLeader(ctx context.Context, cluster *dcs.Cluster) (bool, error)

func (*WesqlManager) IsLeaderMember

func (mgr *WesqlManager) IsLeaderMember(ctx context.Context, cluster *dcs.Cluster, member *dcs.Member) (bool, error)

func (*WesqlManager) IsMemberLagging

func (mgr *WesqlManager) IsMemberLagging(context.Context, *dcs.Cluster, *dcs.Member) (bool, int64)

func (*WesqlManager) IsPromoted

func (mgr *WesqlManager) IsPromoted(ctx context.Context) bool

func (*WesqlManager) JoinCurrentMemberToCluster

func (mgr *WesqlManager) JoinCurrentMemberToCluster(context.Context, *dcs.Cluster) error

func (*WesqlManager) LeaveMemberFromCluster

func (mgr *WesqlManager) LeaveMemberFromCluster(ctx context.Context, cluster *dcs.Cluster, memberName string) error

func (*WesqlManager) Promote

func (mgr *WesqlManager) Promote(ctx context.Context, cluster *dcs.Cluster) error

func (*WesqlManager) Recover

func (mgr *WesqlManager) Recover(context.Context) error

Jump to

Keyboard shortcuts

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