Documentation
¶
Index ¶
- Variables
- func Configure(ctx context.Context, db ConfigurableDB, dbName string, mon *monkit.Scope)
- func EscapableCommaSplit(val string) []string
- func ParseDBMapping(urlSpec string) (map[string]string, error)
- func SchemeForImplementation(implementation Implementation) string
- type ConfigurableDB
- type Implementation
- func (impl Implementation) AsOfSystemInterval(interval time.Duration) string
- func (impl Implementation) AsOfSystemTime(t time.Time) string
- func (impl Implementation) Float64Type() string
- func (impl Implementation) String() string
- func (impl Implementation) WrapAsOfSystemInterval(sql string, interval time.Duration) string
- func (impl Implementation) WrapAsOfSystemTime(sql string, t time.Time) string
- type NullTime
- type TempDatabase
Constants ¶
This section is empty.
Variables ¶
var ErrNullTime = errs.Class("null time")
ErrNullTime defines error class for NullTime.
Functions ¶
func Configure ¶
func Configure(ctx context.Context, db ConfigurableDB, dbName string, mon *monkit.Scope)
Configure Sets Connection Boundaries and adds db_stats monitoring to monkit.
func EscapableCommaSplit ¶
func EscapableCommaSplit(val string) []string
EscapableCommaSplit is like strings.Split(x, ","), but if it sees two ','s in a row, it will treat them like one unsplit comma. So "hello,there,,friend" will result in ["hello", "there,friend"].
func ParseDBMapping ¶
func ParseDBMapping(urlSpec string) (map[string]string, error)
ParseDBMapping parses a mapping of database connection URLs, preceded by the default URL. An example that overrides the repairqueue looks like: cockroach://user:pw@host/database,repairqueue:postgres://user:pw@host/database. The default is stored in "".
func SchemeForImplementation ¶
func SchemeForImplementation(implementation Implementation) string
SchemeForImplementation returns the scheme that is used for URLs that use the given Implementation.
Types ¶
type ConfigurableDB ¶
type ConfigurableDB interface {
SetMaxIdleConns(int)
SetMaxOpenConns(int)
SetConnMaxLifetime(time.Duration)
Stats() sql.DBStats
}
ConfigurableDB contains methods for configuring a database.
type Implementation ¶
type Implementation int
Implementation type of valid DBs.
const (
// Unknown is an unknown db type.
Unknown Implementation = iota
// Postgres is a Postgresdb type.
Postgres
// Cockroach is a Cockroachdb type.
Cockroach
// Bolt is a Bolt kv store.
Bolt
// Redis is a Redis kv store.
Redis
// SQLite3 is a sqlite3 database.
SQLite3
// Spanner is Google Spanner instance with Google SQL dialect.
Spanner
)
func ImplementationForScheme ¶
func ImplementationForScheme(scheme string) Implementation
ImplementationForScheme returns the Implementation that is used for the url with the provided scheme.
func SplitConnStr ¶
func SplitConnStr(s string) (driver string, source string, implementation Implementation, err error)
SplitConnStr returns the driver and DSN portions of a URL, along with the db implementation.
func (Implementation) AsOfSystemInterval ¶
func (impl Implementation) AsOfSystemInterval(interval time.Duration) string
AsOfSystemInterval returns a SQL query for the specifying the AS OF SYSTEM TIME using a relative interval. The interval should be negative.
func (Implementation) AsOfSystemTime ¶
func (impl Implementation) AsOfSystemTime(t time.Time) string
AsOfSystemTime returns a SQL query for the specifying the AS OF SYSTEM TIME using a concrete time.
func (Implementation) Float64Type ¶ added in v1.116.3
func (impl Implementation) Float64Type() string
Float64Type returns the type name for the given implementation.
func (Implementation) String ¶
func (impl Implementation) String() string
String returns the default name for a given implementation.
func (Implementation) WrapAsOfSystemInterval ¶
func (impl Implementation) WrapAsOfSystemInterval(sql string, interval time.Duration) string
WrapAsOfSystemInterval converts a query to include AS OF SYSTEM TIME using a relative interval. The interval should be negative.
func (Implementation) WrapAsOfSystemTime ¶
func (impl Implementation) WrapAsOfSystemTime(sql string, t time.Time) string
WrapAsOfSystemTime converts a query to include AS OF SYSTEM TIME using a concrete time.
type NullTime ¶
type NullTime struct {
time.Time
Valid bool
}
NullTime time helps convert nil to time.Time.
type TempDatabase ¶
type TempDatabase struct {
tagsql.DB
ConnStr string
Schema string
Driver string
Implementation Implementation
Cleanup func(tagsql.DB) error
}
TempDatabase is a database (or something that works like an isolated database, such as a PostgreSQL schema) with a semi-unique name which will be cleaned up when closed. Mainly useful for testing purposes.
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
Package dbschema package implements querying and comparing schemas for testing.
|
Package dbschema package implements querying and comparing schemas for testing. |
Package pgutil contains utilities for postgres
|
Package pgutil contains utilities for postgres |
pgerrcode
Package pgerrcode implements postgres error extraction without depending on a postgres library.
|
Package pgerrcode implements postgres error extraction without depending on a postgres library. |
package retrydb provides logic for determining whether transactions can or should be retried after they are aborted.
|
package retrydb provides logic for determining whether transactions can or should be retried after they are aborted. |
Package txutil provides safe transaction-encapsulation functions which have retry semantics as necessary.
|
Package txutil provides safe transaction-encapsulation functions which have retry semantics as necessary. |