File: interface.go

package info (click to toggle)
golang-github-ziutek-mymysql 1.5.4%2Bgit20170206.23.0582bcf-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 388 kB
  • sloc: makefile: 8; sh: 2
file content (107 lines) | stat: -rw-r--r-- 2,682 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// MySQL Client API written entirely in Go without any external dependences.
package mysql

import (
	"net"
	"time"
)

// ConCommon is a common interface to the connection.
// See mymysql/native for method documentation
type ConnCommon interface {
	Start(sql string, params ...interface{}) (Result, error)
	Prepare(sql string) (Stmt, error)

	Ping() error
	ThreadId() uint32
	Escape(txt string) string

	Query(sql string, params ...interface{}) ([]Row, Result, error)
	QueryFirst(sql string, params ...interface{}) (Row, Result, error)
	QueryLast(sql string, params ...interface{}) (Row, Result, error)
}

// Dialer can be used to dial connections to MySQL. If Dialer returns (nil, nil)
// the hook is skipped and normal dialing proceeds.
type Dialer func(proto, laddr, raddr string, timeout time.Duration) (net.Conn, error)

// Conn represnts connection to the MySQL server.
// See mymysql/native for method documentation
type Conn interface {
	ConnCommon

	Clone() Conn
	SetTimeout(time.Duration)
	Connect() error
	NetConn() net.Conn
	SetDialer(Dialer)
	Close() error
	IsConnected() bool
	Reconnect() error
	Use(dbname string) error
	Register(sql string)
	SetMaxPktSize(new_size int) int
	NarrowTypeSet(narrow bool)
	FullFieldInfo(full bool)
	Status() ConnStatus
	Credentials() (user, passwd string)

	Begin() (Transaction, error)
}

// Transaction represents MySQL transaction
// See mymysql/native for method documentation
type Transaction interface {
	ConnCommon

	Commit() error
	Rollback() error
	Do(st Stmt) Stmt
	IsValid() bool
}

// Stmt represents MySQL prepared statement.
// See mymysql/native for method documentation
type Stmt interface {
	Bind(params ...interface{})
	Run(params ...interface{}) (Result, error)
	Delete() error
	Reset() error
	SendLongData(pnum int, data interface{}, pkt_size int) error

	Fields() []*Field
	NumParam() int
	WarnCount() int

	Exec(params ...interface{}) ([]Row, Result, error)
	ExecFirst(params ...interface{}) (Row, Result, error)
	ExecLast(params ...interface{}) (Row, Result, error)
}

// Result represents one MySQL result set.
// See mymysql/native for method documentation
type Result interface {
	StatusOnly() bool
	ScanRow(Row) error
	GetRow() (Row, error)

	MoreResults() bool
	NextResult() (Result, error)

	Fields() []*Field
	Map(string) int
	Message() string
	AffectedRows() uint64
	InsertId() uint64
	WarnCount() int

	MakeRow() Row
	GetRows() ([]Row, error)
	End() error
	GetFirstRow() (Row, error)
	GetLastRow() (Row, error)
}

// New can be used to establish a connection. It is set by imported engine
// (see mymysql/native, mymysql/thrsafe)
var New func(proto, laddr, raddr, user, passwd string, db ...string) Conn