package autorc

import "github.com/ziutek/mymysql/autorc"

Auto reconnect interface for MyMySQL

Index

Functions

func IsNetErr

func IsNetErr(err error) bool

Return true if error is network error or UnexpectedEOF.

Types

type Conn

type Conn struct {
	Raw mysql.Conn
	// Maximum reconnect retries.
	// Default is 7 which means 1+2+3+4+5+6+7 = 28 seconds before return error
	// (if waiting for error takes no time).
	MaxRetries int

	// Debug logging. You may change it at any time.
	Debug bool
}

func New

func New(proto, laddr, raddr, user, passwd string, db ...string) *Conn

func NewFromCF

func NewFromCF(cfgFile string) (*Conn, map[string]string, error)

func (*Conn) Begin

func (c *Conn) Begin(f func(mysql.Transaction, ...interface{}) error, args ...interface{}) error

Begin begins a transaction and calls f to complete it . If f returns an error and IsNetErr(error) == true it reconnects and calls f up to MaxRetries times. If error is of type *mysql.Error it tries rollback the transaction.

func (*Conn) Clone

func (c *Conn) Clone() *Conn

func (*Conn) Escape

func (c *Conn) Escape(s string) string

func (*Conn) Prepare

func (c *Conn) Prepare(sql string) (*Stmt, error)

Automatic connect/reconnect/repeat version of Prepare

func (*Conn) PrepareOnce

func (c *Conn) PrepareOnce(s *Stmt, sql string) error

Prepares statement if it wasn't prepared before

func (*Conn) Query

func (c *Conn) Query(sql string, params ...interface{}) (rows []mysql.Row, res mysql.Result, err error)

Automatic connect/reconnect/repeat version of Query

func (*Conn) QueryFirst

func (c *Conn) QueryFirst(sql string, params ...interface{}) (row mysql.Row, res mysql.Result, err error)

func (*Conn) QueryLast

func (c *Conn) QueryLast(sql string, params ...interface{}) (row mysql.Row, res mysql.Result, err error)

func (*Conn) Reconnect

func (c *Conn) Reconnect() (err error)

func (*Conn) Register

func (c *Conn) Register(sql string)

func (*Conn) SetMaxPktSize

func (c *Conn) SetMaxPktSize(new_size int) int

func (*Conn) SetTimeout

func (c *Conn) SetTimeout(timeout time.Duration)

func (*Conn) Use

func (c *Conn) Use(dbname string) (err error)

Automatic connect/reconnect/repeat version of Use

type Stmt

type Stmt struct {
	Raw mysql.Stmt
	// contains filtered or unexported fields
}

func (*Stmt) Bind

func (s *Stmt) Bind(params ...interface{})

func (*Stmt) Exec

func (s *Stmt) Exec(params ...interface{}) (rows []mysql.Row, res mysql.Result, err error)

Automatic connect/reconnect/repeat version of Exec

func (*Stmt) ExecFirst

func (s *Stmt) ExecFirst(params ...interface{}) (row mysql.Row, res mysql.Result, err error)

func (*Stmt) ExecLast

func (s *Stmt) ExecLast(params ...interface{}) (row mysql.Row, res mysql.Result, err error)

Source Files

autorecon.go

Version
v1.4.7
Published
May 6, 2013
Platform
windows/amd64
Imports
5 packages
Last checked
1 hour ago

Tools for package owners.