diff options
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r-- | lib/sqlalchemy/engine/default.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index cb04eb525..64500b41b 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -1284,6 +1284,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext): result.out_parameters = out_parameters def _setup_dml_or_text_result(self): + if self.isinsert: if self.compiled.postfetch_lastrowid: self.inserted_primary_key_rows = ( @@ -1332,8 +1333,17 @@ class DefaultExecutionContext(interfaces.ExecutionContext): # assert not result.returns_rows elif self.isupdate and self._is_implicit_returning: + # get rowcount + # (which requires open cursor on some drivers) + # we were not doing this in 1.4, however + # test_rowcount -> test_update_rowcount_return_defaults + # is testing this, and psycopg will no longer return + # rowcount after cursor is closed. + result.rowcount + row = result.fetchone() self.returned_default_rows = [row] + result._soft_close() # test that it has a cursor metadata that is accurate. @@ -1410,6 +1420,8 @@ class DefaultExecutionContext(interfaces.ExecutionContext): dialect = self.dialect + # all of the rest of this... cython? + if dialect._has_events: inputsizes = dict(inputsizes) dialect.dispatch.do_setinputsizes( |