summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/base.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-07-25 12:14:22 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-07-25 12:14:22 -0400
commit6b60d3a9e6ba93d177ac777bfaae8269c18ddee6 (patch)
treed663ca41f3bf05fcfbae2755426469cae5f855f1 /lib/sqlalchemy/engine/base.py
parent8560522ff0244c93dab62276f9ba445df90f0d39 (diff)
downloadsqlalchemy-6b60d3a9e6ba93d177ac777bfaae8269c18ddee6.tar.gz
- The MySQL dialect will now disable :meth:`.ConnectionEvents.handle_error`
events from firing for those statements which it uses internally to detect if a table exists or not. This is achieved using an execution option ``skip_user_error_events`` that disables the handle error event for the scope of that execution. In this way, user code that rewrites exceptions doesn't need to worry about the MySQL dialect or other dialects that occasionally need to catch SQLAlchemy specific exceptions.
Diffstat (limited to 'lib/sqlalchemy/engine/base.py')
-rw-r--r--lib/sqlalchemy/engine/base.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index cf0689626..f9dfea32b 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -1112,7 +1112,9 @@ class Connection(Connectable):
newraise = None
- if self._has_events or self.engine._has_events:
+ if (self._has_events or self.engine._has_events) and \
+ not self._execution_options.get(
+ 'skip_user_error_events', False):
# legacy dbapi_error event
if should_wrap and context:
self.dispatch.dbapi_error(self,