diff --git a/util/dbutil/database.go b/util/dbutil/database.go index 8dc86afd..323c88c3 100644 --- a/util/dbutil/database.go +++ b/util/dbutil/database.go @@ -52,11 +52,32 @@ type Scannable interface { Scan(...interface{}) error } -type Execable interface { - Exec(query string, args ...interface{}) (sql.Result, error) +// Expected implementations of Scannable +var ( + _ Scannable = (*sql.Row)(nil) + _ Scannable = (*sql.Rows)(nil) +) + +type ContextExecable interface { ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) + QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) + QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row } +type Execable interface { + ContextExecable + Exec(query string, args ...interface{}) (sql.Result, error) + Query(query string, args ...interface{}) (*sql.Rows, error) + QueryRow(query string, args ...interface{}) *sql.Row +} + +// Expected implementations of Execable +var ( + _ Execable = (*sql.Tx)(nil) + _ Execable = (*sql.DB)(nil) + _ ContextExecable = (*sql.Conn)(nil) +) + type Database struct { *sql.DB Owner string