diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-04-10 19:38:22 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-04-10 19:38:22 -0400 |
commit | 5280f26d45f6d79013d2da3bd5e0fe4a88117b20 (patch) | |
tree | b58a4623060d7caf0ac509d0655fe1a09661e44c /lib/sqlalchemy/engine/base.py | |
parent | 3269b73ff7a12303aadcaed0246d401ec649fa94 (diff) | |
download | sqlalchemy-5280f26d45f6d79013d2da3bd5e0fe4a88117b20.tar.gz |
- [feature] Added new connection event
dbapi_error(). Is called for all DBAPI-level
errors passing the original DBAPI exception
before SQLAlchemy modifies the state
of the cursor.
Diffstat (limited to 'lib/sqlalchemy/engine/base.py')
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 1f28501f7..110ac4e8a 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1806,10 +1806,19 @@ class Connection(Connectable): (statement is not None and context is None) if should_wrap and context: + if self._has_events: + self.engine.dispatch.dbapi_error(self, + cursor, + statement, + parameters, + context, + e) context.handle_dbapi_exception(e) is_disconnect = isinstance(e, self.dialect.dbapi.Error) and \ self.dialect.is_disconnect(e, self.__connection, cursor) + + if is_disconnect: self.invalidate(e) self.engine.dispose() |