From 2a1a79b6ce53f2e1dc4cd48bbca5c5a148b8b285 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 19 Mar 2014 13:03:44 -0400 Subject: - The :meth:`.ConnectionEvents.after_cursor_execute` event is now emitted for the "_cursor_execute()" method of :class:`.Connection`; this is the "quick" executor that is used for things like when a sequence is executed ahead of an INSERT statement, as well as for dialect startup checks like unicode returns, charset, etc. the :meth:`.ConnectionEvents.before_cursor_execute` event was already invoked here. The "executemany" flag is now always set to False here, as this event always corresponds to a single execution. Previously the flag could be True if we were acting on behalf of an executemany INSERT statement. --- lib/sqlalchemy/engine/base.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'lib/sqlalchemy/engine/base.py') diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 888a15fee..d3024640b 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -986,8 +986,7 @@ class Connection(Connectable): statement, parameters = \ fn(self, cursor, statement, parameters, context, - context.executemany - if context is not None else False) + False) if self._echo: self.engine.logger.info(statement) @@ -996,14 +995,22 @@ class Connection(Connectable): self.dialect.do_execute( cursor, statement, - parameters) + parameters, + context) except Exception as e: self._handle_dbapi_exception( e, statement, parameters, cursor, - None) + context) + + if self._has_events: + self.dispatch.after_cursor_execute(self, cursor, + statement, + parameters, + context, + False) def _safe_close_cursor(self, cursor): """Close the given cursor, catching exceptions -- cgit v1.2.1