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 ¶
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 ¶
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 ¶
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.
func (*TempDatabase) Close ¶
func (db *TempDatabase) Close() error
Close closes the database and deletes the schema.
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. |