mirror of
https://github.com/opentffoundation/opentf.git
synced 2026-03-13 19:01:09 -04:00
* Remove `make updatedeps` from Travis build. We'll follow up with more specific plans around dependency updating in subsequent PRs. * Update all `make` targets to set `GO15VENDOREXPERIMENT=1` and to filter out `/vendor/` from `./...` where appropriate. * Temporarily remove `vet` from the `make test` target until we can figure out how to get it to not vet `vendor/`. (Initial experimentation failed to yield the proper incantation.) Everything is pinned to current master, with the exception of: * Azure/azure-sdk-for-go which is pinned before the breaking change today * aws/aws-sdk-go which is pinned to the most recent tag The documentation still needs to be updated, which we can do in a follow up PR. The goal here is to unblock release.
107 lines
2.6 KiB
Go
107 lines
2.6 KiB
Go
// 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
|
|
|
|
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
|