diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2022-06-01 13:58:17 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-06-01 13:58:17 +0000 |
| commit | 79dbe94bb4ccd75888d57f388195a3ba4fa6117e (patch) | |
| tree | 818b37b36f1627cd1f0dd98413ac4b43479c48b5 /lib/sqlalchemy/engine/default.py | |
| parent | 01ffcf387f821e22986b760b15d9db2af3607ab4 (diff) | |
| parent | ad14471bc99c2fb2315d3333a95dd3d7bf0a33a7 (diff) | |
| download | sqlalchemy-79dbe94bb4ccd75888d57f388195a3ba4fa6117e.tar.gz | |
Merge "Support handle_error for pre_ping" into main
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
| -rw-r--r-- | lib/sqlalchemy/engine/default.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index c188e155c..04b017f08 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -610,7 +610,23 @@ class DefaultDialect(Dialect): finally: cursor.close() except self.loaded_dbapi.Error as err: - if self.is_disconnect(err, dbapi_connection, cursor): + is_disconnect = self.is_disconnect(err, dbapi_connection, cursor) + + if self._has_events: + try: + Connection._handle_dbapi_exception_noconnection( + err, + self, + is_disconnect=is_disconnect, + invalidate_pool_on_disconnect=False, + ) + except exc.StatementError as new_err: + is_disconnect = new_err.connection_invalidated + + # other exceptions modified by the event handler will be + # thrown + + if is_disconnect: return False else: raise |
