From: Andrew Balholm Date: Thu, 9 Feb 2012 22:19:22 +0000 (+1100) Subject: database/sql: support ErrSkip in Tx.Exec X-Git-Tag: weekly.2012-02-14~180 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=aca4a6c933c34f136408653c30595a9471372d5e;p=gostls13.git database/sql: support ErrSkip in Tx.Exec If the database driver supports the Execer interface but returns ErrSkip, calling Exec on a transaction was returning the error instead of using the slow path. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5654044 --- diff --git a/src/pkg/database/sql/sql.go b/src/pkg/database/sql/sql.go index fe43f92b98..e7a067b893 100644 --- a/src/pkg/database/sql/sql.go +++ b/src/pkg/database/sql/sql.go @@ -523,10 +523,12 @@ func (tx *Tx) Exec(query string, args ...interface{}) (Result, error) { if execer, ok := ci.(driver.Execer); ok { resi, err := execer.Exec(query, args) - if err != nil { + if err == nil { + return result{resi}, nil + } + if err != driver.ErrSkip { return nil, err } - return result{resi}, nil } sti, err := ci.Prepare(query)