diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-07 18:31:35 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-07 18:31:35 +0000 |
commit | af070d037ba4b0787e7bd74add6e5aba04f144d3 (patch) | |
tree | 7a2e8ab3bb9736680066fa17cba8b35638f55415 /lib/sqlalchemy/engine | |
parent | c1a9a96ba541c8ec12864259dd2f076ef6e056c8 (diff) | |
download | sqlalchemy-af070d037ba4b0787e7bd74add6e5aba04f144d3.tar.gz |
- fixed the close() method on Transaction when using strategy='threadlocal'
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 2 | ||||
-rw-r--r-- | lib/sqlalchemy/engine/threadlocal.py | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index bd82f897d..f554d6a16 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -939,7 +939,7 @@ class Transaction(object): method returns. This is used to cancel a Transaction without affecting the scope of - an enclosign transaction. + an enclosing transaction. """ if not self._parent._is_active: return diff --git a/lib/sqlalchemy/engine/threadlocal.py b/lib/sqlalchemy/engine/threadlocal.py index dc6b6007f..8eb039208 100644 --- a/lib/sqlalchemy/engine/threadlocal.py +++ b/lib/sqlalchemy/engine/threadlocal.py @@ -76,7 +76,11 @@ class TLSession(object): self.reset() elif self.__tcount > 1: self.__tcount -= 1 - + + def close(self): + if self.__tcount == 1: + self.rollback() + def is_begun(self): return self.__tcount > 0 @@ -138,6 +142,9 @@ class TLTransaction(base.Transaction): def commit(self): self._session.commit() + def close(self): + self._session.close() + def __enter__(self): return self |