1
0
mirror of https://github.com/golang/go synced 2024-11-19 11:34:49 -07:00

database/sql: make error prefixes consistent

Ensure all error prefixes in the "database/sql" package start with
"sql: ". Do not prefix errors for type conversions because they
are always embedded in another error message with a specific
context.

Fixes #25251

Change-Id: I349d9804f3bfda4eeb755b32b508ec5992c28e07
Reviewed-on: https://go-review.googlesource.com/111637
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Daniel Theophanes 2018-05-05 07:18:21 -07:00
parent f7c767edc5
commit 5cf3e34f96
2 changed files with 13 additions and 14 deletions

View File

@ -296,10 +296,10 @@ func (db *fakeDB) createTable(name string, columnNames, columnTypes []string) er
db.tables = make(map[string]*table) db.tables = make(map[string]*table)
} }
if _, exist := db.tables[name]; exist { if _, exist := db.tables[name]; exist {
return fmt.Errorf("table %q already exists", name) return fmt.Errorf("fakedb: table %q already exists", name)
} }
if len(columnNames) != len(columnTypes) { if len(columnNames) != len(columnTypes) {
return fmt.Errorf("create table of %q len(names) != len(types): %d vs %d", return fmt.Errorf("fakedb: create table of %q len(names) != len(types): %d vs %d",
name, len(columnNames), len(columnTypes)) name, len(columnNames), len(columnTypes))
} }
db.tables[name] = &table{colname: columnNames, coltype: columnTypes} db.tables[name] = &table{colname: columnNames, coltype: columnTypes}
@ -365,7 +365,7 @@ func (c *fakeConn) Begin() (driver.Tx, error) {
return nil, driver.ErrBadConn return nil, driver.ErrBadConn
} }
if c.currTx != nil { if c.currTx != nil {
return nil, errors.New("already in a transaction") return nil, errors.New("fakedb: already in a transaction")
} }
c.touchMem() c.touchMem()
c.currTx = &fakeTx{c: c} c.currTx = &fakeTx{c: c}
@ -419,13 +419,13 @@ func (c *fakeConn) Close() (err error) {
}() }()
c.touchMem() c.touchMem()
if c.currTx != nil { if c.currTx != nil {
return errors.New("can't close fakeConn; in a Transaction") return errors.New("fakedb: can't close fakeConn; in a Transaction")
} }
if c.db == nil { if c.db == nil {
return errors.New("can't close fakeConn; already closed") return errors.New("fakedb: can't close fakeConn; already closed")
} }
if c.stmtsMade > c.stmtsClosed { if c.stmtsMade > c.stmtsClosed {
return errors.New("can't close; dangling statement(s)") return errors.New("fakedb: can't close; dangling statement(s)")
} }
c.db = nil c.db = nil
return nil return nil
@ -437,7 +437,7 @@ func checkSubsetTypes(allowAny bool, args []driver.NamedValue) error {
case int64, float64, bool, nil, []byte, string, time.Time: case int64, float64, bool, nil, []byte, string, time.Time:
default: default:
if !allowAny { if !allowAny {
return fmt.Errorf("fakedb_test: invalid argument ordinal %[1]d: %[2]v, type %[2]T", arg.Ordinal, arg.Value) return fmt.Errorf("fakedb: invalid argument ordinal %[1]d: %[2]v, type %[2]T", arg.Ordinal, arg.Value)
} }
} }
} }
@ -729,7 +729,7 @@ func (s *fakeStmt) ExecContext(ctx context.Context, args []driver.NamedValue) (d
return nil, driver.ErrBadConn return nil, driver.ErrBadConn
} }
if s.c.isDirtyAndMark() { if s.c.isDirtyAndMark() {
return nil, errors.New("session is dirty") return nil, errors.New("fakedb: session is dirty")
} }
err := checkSubsetTypes(s.c.db.allowAny, args) err := checkSubsetTypes(s.c.db.allowAny, args)
@ -765,8 +765,7 @@ func (s *fakeStmt) ExecContext(ctx context.Context, args []driver.NamedValue) (d
// Used for some of the concurrent tests. // Used for some of the concurrent tests.
return s.execInsert(args, false) return s.execInsert(args, false)
} }
fmt.Printf("EXEC statement, cmd=%q: %#v\n", s.cmd, s) return nil, fmt.Errorf("fakedb: unimplemented statement Exec command type of %q", s.cmd)
return nil, fmt.Errorf("unimplemented statement Exec command type of %q", s.cmd)
} }
// When doInsert is true, add the row to the table. // When doInsert is true, add the row to the table.
@ -844,7 +843,7 @@ func (s *fakeStmt) QueryContext(ctx context.Context, args []driver.NamedValue) (
return nil, driver.ErrBadConn return nil, driver.ErrBadConn
} }
if s.c.isDirtyAndMark() { if s.c.isDirtyAndMark() {
return nil, errors.New("session is dirty") return nil, errors.New("fakedb: session is dirty")
} }
err := checkSubsetTypes(s.c.db.allowAny, args) err := checkSubsetTypes(s.c.db.allowAny, args)
@ -900,7 +899,7 @@ func (s *fakeStmt) QueryContext(ctx context.Context, args []driver.NamedValue) (
idx := t.columnIndex(wcol.Column) idx := t.columnIndex(wcol.Column)
if idx == -1 { if idx == -1 {
t.mu.Unlock() t.mu.Unlock()
return nil, fmt.Errorf("db: invalid where clause column %q", wcol) return nil, fmt.Errorf("fakedb: invalid where clause column %q", wcol)
} }
tcol := trow.cols[idx] tcol := trow.cols[idx]
if bs, ok := tcol.([]byte); ok { if bs, ok := tcol.([]byte); ok {

View File

@ -1631,7 +1631,7 @@ func (db *DB) Driver() driver.Driver {
// ErrConnDone is returned by any operation that is performed on a connection // ErrConnDone is returned by any operation that is performed on a connection
// that has already been returned to the connection pool. // that has already been returned to the connection pool.
var ErrConnDone = errors.New("database/sql: connection is already closed") var ErrConnDone = errors.New("sql: connection is already closed")
// Conn returns a single connection by either opening a new connection // Conn returns a single connection by either opening a new connection
// or returning an existing connection from the connection pool. Conn will // or returning an existing connection from the connection pool. Conn will
@ -1879,7 +1879,7 @@ func (tx *Tx) isDone() bool {
// ErrTxDone is returned by any operation that is performed on a transaction // ErrTxDone is returned by any operation that is performed on a transaction
// that has already been committed or rolled back. // that has already been committed or rolled back.
var ErrTxDone = errors.New("sql: Transaction has already been committed or rolled back") var ErrTxDone = errors.New("sql: transaction has already been committed or rolled back")
// close returns the connection to the pool and // close returns the connection to the pool and
// must only be called by Tx.rollback or Tx.Commit. // must only be called by Tx.rollback or Tx.Commit.