| 113 | } |
| 114 | |
| 115 | func (t *PoolTest) TestClosedTx(c *C) { |
| 116 | tx, err := t.db.Begin() |
| 117 | c.Assert(err, IsNil) |
| 118 | |
| 119 | c.Assert(t.db.Pool().Len(), Equals, 1) |
| 120 | c.Assert(t.db.Pool().IdleLen(), Equals, 0) |
| 121 | |
| 122 | c.Assert(tx.Rollback(), IsNil) |
| 123 | |
| 124 | c.Assert(t.db.Pool().Len(), Equals, 1) |
| 125 | c.Assert(t.db.Pool().IdleLen(), Equals, 1) |
| 126 | |
| 127 | err = tx.Rollback() |
| 128 | c.Assert(err, Not(IsNil)) |
| 129 | c.Assert(err.Error(), Equals, "pg: transaction has already been committed or rolled back") |
| 130 | |
| 131 | _, err = tx.Exec("SELECT 'test_closed_tx'") |
| 132 | c.Assert(err, Not(IsNil)) |
| 133 | c.Assert(err.Error(), Equals, "pg: transaction has already been committed or rolled back") |
| 134 | } |
| 135 | |
| 136 | func (t *PoolTest) TestClosedStmt(c *C) { |
| 137 | stmt, err := t.db.Prepare("SELECT $1::int") |