diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go index ed26ce189e2365b485b87659a385c7591d041383..27cf5b3f7d190da140091e817ca72416e7bf4ef4 100644 --- a/internal/sqladapter/database.go +++ b/internal/sqladapter/database.go @@ -187,11 +187,14 @@ func (d *database) Close() error { d.cachedStatements.Clear() // Closes prepared statements as well. tx := d.Transaction() - if tx != nil && !tx.Committed() { - tx.Rollback() + if tx == nil { + // Not within a transaction. + return d.sess.Close() } - return d.sess.Close() + if !tx.Committed() { + tx.Rollback() + } } return nil }