mirror of
https://github.com/golang/go
synced 2024-11-23 16:20:04 -07:00
database/sql/driver: enhance driver package documentation
Change-Id: I455acdb71354f14e0bc4104cbd7abd5c89958dd9 Reviewed-on: https://go-review.googlesource.com/c/go/+/230214 Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
This commit is contained in:
parent
a3374fa0f8
commit
1518123114
@ -6,6 +6,35 @@
|
||||
// drivers as used by package sql.
|
||||
//
|
||||
// Most code should use package sql.
|
||||
//
|
||||
// The driver interface has evolved over time. Drivers should implement
|
||||
// Connector and DriverContext interfaces.
|
||||
// The Connector.Connect and Driver.Open methods should never return ErrBadConn.
|
||||
// ErrBadConn should only be returned from Validator, SessionResetter, or
|
||||
// a query method if the connection is already in an invalid (e.g. closed) state.
|
||||
//
|
||||
// All Conn implementations should implement the following interfaces:
|
||||
// Pinger, SessionResetter, and Validator.
|
||||
//
|
||||
// If named parameters or context are supported, the driver's Conn should implement:
|
||||
// ExecerContext, QueryerContext, ConnPrepareContext, and ConnBeginTx.
|
||||
//
|
||||
// To support custom data types, implement NamedValueChecker. NamedValueChecker
|
||||
// also allows queries to accept per-query options as a parameter by returning
|
||||
// ErrRemoveArgument from CheckNamedValue.
|
||||
//
|
||||
// If multiple result sets are supported, Rows should implement RowsNextResultSet.
|
||||
// If the driver knows how to describe the types present in the returned result
|
||||
// it should implement the following interfaces: RowsColumnTypeScanType,
|
||||
// RowsColumnTypeDatabaseTypeName, RowsColumnTypeLength, RowsColumnTypeNullable,
|
||||
// and RowsColumnTypePrecisionScale. A given row value may also return a Rows
|
||||
// type, which may represent a database cursor value.
|
||||
//
|
||||
// Before a connection is returned to the connection pool after use, IsValid is
|
||||
// called if implemented. Before a connection is reused for another query,
|
||||
// ResetSession is called if implemented. If a connection is never returned to the
|
||||
// connection pool but immediately reused, then ResetSession is called prior to
|
||||
// reuse but IsValid is not called.
|
||||
package driver
|
||||
|
||||
import (
|
||||
|
Loading…
Reference in New Issue
Block a user