From 75b5236e69b4607d549d466bd34d409f3cc9ed45 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 15 Jan 2011 11:53:37 -0500 Subject: - the _pk_processors/_prefetch_processors approach relied upon calling RPs without a cursor.description result, also generates procs that are not used in most cases. simplify the approach by passing type to _exec_default() to be used if needed by _execute_scalar(), looking for the proc on just t._autoincrement_column in post_insert(). --- lib/sqlalchemy/dialects/postgresql/base.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lib/sqlalchemy/dialects/postgresql/base.py') diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 84fd96edd..7c712e8aa 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -681,21 +681,21 @@ class DropEnumType(schema._CreateDropBase): __visit_name__ = "drop_enum_type" class PGExecutionContext(default.DefaultExecutionContext): - def fire_sequence(self, seq, proc): + def fire_sequence(self, seq, type_): if not seq.optional: return self._execute_scalar(("select nextval('%s')" % \ - self.dialect.identifier_preparer.format_sequence(seq)), proc) + self.dialect.identifier_preparer.format_sequence(seq)), type_) else: return None - def get_insert_default(self, column, proc): + def get_insert_default(self, column): if column.primary_key: if (isinstance(column.server_default, schema.DefaultClause) and column.server_default.arg is not None): # pre-execute passive defaults on primary key columns return self._execute_scalar("select %s" % - column.server_default.arg, proc) + column.server_default.arg, column.type) elif column is column.table._autoincrement_column \ and (column.default is None or @@ -714,9 +714,9 @@ class PGExecutionContext(default.DefaultExecutionContext): exc = "select nextval('\"%s_%s_seq\"')" % \ (column.table.name, column.name) - return self._execute_scalar(exc, proc) + return self._execute_scalar(exc, column.type) - return super(PGExecutionContext, self).get_insert_default(column, proc) + return super(PGExecutionContext, self).get_insert_default(column) class PGDialect(default.DefaultDialect): name = 'postgresql' -- cgit v1.2.1