diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-06-17 00:49:08 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-06-17 00:49:08 +0000 |
| commit | 909758df8edf5e319127216bc2c4ce0fe780de21 (patch) | |
| tree | 327f091acae7e0c40933d71d1c3e6183fb38f3d4 /lib/sqlalchemy/engine/default.py | |
| parent | 23525a3ea876f6ab16566c2dd0bbaa7ec1037052 (diff) | |
| download | sqlalchemy-909758df8edf5e319127216bc2c4ce0fe780de21.tar.gz | |
- result.last_inserted_ids() should return a list that is identically
sized to the primary key constraint of the table. values that were
"passively" created and not available via cursor.lastrowid will be None.
- sqlite: string PK column inserts dont get overwritten with OID [ticket:603]
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
| -rw-r--r-- | lib/sqlalchemy/engine/default.py | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 976da1a73..f295f5fd2 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -283,7 +283,6 @@ class DefaultExecutionContext(base.ExecutionContext): self._lastrow_has_defaults = False for param in plist: last_inserted_ids = [] - need_lastrowid=False # check the "default" status of each column in the table for c in self.compiled.statement.table.c: # check if it will be populated by a SQL clause - we'll need that @@ -291,7 +290,7 @@ class DefaultExecutionContext(base.ExecutionContext): if c in self.compiled.inline_params: self._lastrow_has_defaults = True if c.primary_key: - need_lastrowid = True + last_inserted_ids.append(None) # check if its not present at all. see if theres a default # and fire it off, and add to bind parameters. if # its a pk, add the value to our last_inserted_ids list, @@ -306,15 +305,14 @@ class DefaultExecutionContext(base.ExecutionContext): if c.primary_key: last_inserted_ids.append(param.get_processed(c.key)) elif c.primary_key: - need_lastrowid = True + last_inserted_ids.append(None) # its an explicitly passed pk value - add it to # our last_inserted_ids list. elif c.primary_key: last_inserted_ids.append(param.get_processed(c.key)) - if need_lastrowid: - self._last_inserted_ids = None - else: - self._last_inserted_ids = last_inserted_ids + # TODO: we arent accounting for executemany() situations + # here (hard to do since lastrowid doesnt support it either) + self._last_inserted_ids = last_inserted_ids self._last_inserted_params = param elif self.compiled.isupdate: if isinstance(self.compiled_parameters, list): |
