aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/sql.go
diff options
context:
space:
mode:
authorDaniel Theophanes <kardianos@gmail.com>2016-12-01 11:07:11 -0800
committerBrad Fitzpatrick <bradfitz@golang.org>2016-12-01 22:20:31 +0000
commitae9712c76688a07e1149958994a9ab3e5a99c37f (patch)
tree7c3211920785161532d5259bf6151d4517c704c1 /src/database/sql/sql.go
parent2d136ae82e68bc820804b6a38262f240ea2bb5cf (diff)
downloadgo-ae9712c76688a07e1149958994a9ab3e5a99c37f.tar.xz
database/sql: ensure Commit and Rollback return ErrTxDone
Ensure documented behavior of returning ErrTxDone if the Tx has already been committed or rolled back. Fixes #18147 Change-Id: I07dc75bef4dbd4dd88dd252c96dc8ab99f28c00e Reviewed-on: https://go-review.googlesource.com/33793 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/database/sql/sql.go')
-rw-r--r--src/database/sql/sql.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index e11a9dadd0..3d957e1450 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -1449,14 +1449,14 @@ func (tx *Tx) closePrepared() {
// Commit commits the transaction.
func (tx *Tx) Commit() error {
+ if tx.isDone() {
+ return ErrTxDone
+ }
select {
default:
case <-tx.ctx.Done():
return tx.ctx.Err()
}
- if tx.isDone() {
- return ErrTxDone
- }
var err error
withLock(tx.dc, func() {
err = tx.txi.Commit()