diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-07-03 21:49:10 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-07-03 21:49:37 -0400 |
commit | c60eb86a91eac57e556c07ee2a34870c065a9830 (patch) | |
tree | b43730bb9a2e793d88063fdbb5cb8c86eb863491 /lib/sqlalchemy/engine/base.py | |
parent | e0a9b94abb92c6b62d6a6f70dec680d7ca35eed6 (diff) | |
download | sqlalchemy-c60eb86a91eac57e556c07ee2a34870c065a9830.tar.gz |
- Added new attributes :attr:`.ExecutionContext.exception` and
:attr:`.ExecutionContext.is_disconnect` which are meaningful within
the :meth:`.ConnectionEvents.dbapi_error` handler to see both the
original DBAPI error as well as whether or not it represents
a disconnect.
Diffstat (limited to 'lib/sqlalchemy/engine/base.py')
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index c885bcf69..67772f131 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1070,10 +1070,16 @@ class Connection(Connectable): exc_info = sys.exc_info() + if context and context.exception is None: + context.exception = e + if not self._is_disconnect: - self._is_disconnect = isinstance(e, self.dialect.dbapi.Error) and \ + self._is_disconnect = \ + isinstance(e, self.dialect.dbapi.Error) and \ not self.closed and \ self.dialect.is_disconnect(e, self.__connection, cursor) + if context: + context.is_disconnect = self._is_disconnect if self._reentrant_error: util.raise_from_cause( |