summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-01-25 18:22:00 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2015-01-25 18:22:00 -0500
commit7b102eeaee12265a2c4f4f5619827178d379d210 (patch)
tree23a43f2c2b68276472cb1e75a65858b79b7536aa
parenta33c250da273ba9b1c62b5ba6d99914870155faf (diff)
downloadsqlalchemy-7b102eeaee12265a2c4f4f5619827178d379d210.tar.gz
- remove the clever approach w/ dialect events, and remove the need
for a for-loop through an empty tuple. we add one more local flag to handle the logic without repetition of dialect.do_execute() calls.
-rw-r--r--lib/sqlalchemy/engine/base.py37
1 files changed, 20 insertions, 17 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index aba0d29df..8d816b7fd 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -1079,36 +1079,39 @@ class Connection(Connectable):
"%r",
sql_util._repr_params(parameters, batches=10)
)
+
+ evt_handled = False
try:
if context.executemany:
- for fn in () if not self.dialect._has_events \
- else self.dialect.dispatch.do_executemany:
- if fn(cursor, statement, parameters, context):
- break
- else:
+ if self.dialect._has_events:
+ for fn in self.dialect.dispatch.do_executemany:
+ if fn(cursor, statement, parameters, context):
+ evt_handled = True
+ break
+ if not evt_handled:
self.dialect.do_executemany(
cursor,
statement,
parameters,
context)
-
elif not parameters and context.no_parameters:
- for fn in () if not self.dialect._has_events \
- else self.dialect.dispatch.do_execute_no_params:
- if fn(cursor, statement, context):
- break
- else:
+ if self.dialect._has_events:
+ for fn in self.dialect.dispatch.do_execute_no_params:
+ if fn(cursor, statement, context):
+ evt_handled = True
+ break
+ if not evt_handled:
self.dialect.do_execute_no_params(
cursor,
statement,
context)
-
else:
- for fn in () if not self.dialect._has_events \
- else self.dialect.dispatch.do_execute:
- if fn(cursor, statement, parameters, context):
- break
- else:
+ if self.dialect._has_events:
+ for fn in self.dialect.dispatch.do_execute:
+ if fn(cursor, statement, parameters, context):
+ evt_handled = True
+ break
+ if not evt_handled:
self.dialect.do_execute(
cursor,
statement,