summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/postgres.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-08-28 01:27:19 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-08-28 01:27:19 +0000
commitf91cfdb8ac8794ea8e9f348b21ebbbf553d8bd4b (patch)
tree01b5801f6d5d8560d1eb449bdb7eb100704eacf0 /lib/sqlalchemy/databases/postgres.py
parentdac3df1a1a5b04ee2caa91b350291e0050b86d51 (diff)
downloadsqlalchemy-f91cfdb8ac8794ea8e9f348b21ebbbf553d8bd4b.tar.gz
dev
Diffstat (limited to 'lib/sqlalchemy/databases/postgres.py')
-rw-r--r--lib/sqlalchemy/databases/postgres.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/sqlalchemy/databases/postgres.py b/lib/sqlalchemy/databases/postgres.py
index fa5124ed1..f6d56d207 100644
--- a/lib/sqlalchemy/databases/postgres.py
+++ b/lib/sqlalchemy/databases/postgres.py
@@ -52,15 +52,22 @@ class PGSQLEngine(ansisql.ANSISQLEngine):
statement.accept_visitor(compiler)
return compiler
+ def last_inserted_ids(self):
+ return self.context.last_inserted_ids
+
def pre_exec(self, connection, cursor, statement, parameters, echo = None, compiled = None, **kwargs):
if compiled is None: return
if getattr(compiled, "isinsert", False):
+ last_inserted_ids = []
for primary_key in compiled.statement.table.primary_keys:
# pseudocode
if echo is True or self._echo:
self.log(primary_key.sequence.text)
res = cursor.execute(primary_key.sequence.text)
- parameters[primary_key.key] = res.fetchrow()[0]
+ newid = res.fetchrow()[0]
+ parameters[primary_key.key] = newid
+ last_inserted_ids.append(newid)
+ self.context.last_inserted_ids = last_inserted_ids
def dbapi(self):
return None
@@ -73,10 +80,8 @@ class PGSQLEngine(ansisql.ANSISQLEngine):
raise NotImplementedError()
class PGCompiler(ansisql.ANSICompiler):
- def visit_insert(self, insert):
- self.isinsert = True
- super(self).visit_insert(insert)
-
+ pass
+
class PGColumnImpl(sql.ColumnSelectable):
def get_specification(self):
coltype = self.column.type