From: Mike Bayer Date: Thu, 4 May 2006 20:27:18 +0000 (+0000) Subject: save_obj/delete_obj need to specify column types to binds for primary key criterion X-Git-Tag: rel_0_1_7~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7d896af75460ca03a3ec08a1de6b621d23cb340;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git save_obj/delete_obj need to specify column types to binds for primary key criterion --- diff --git a/lib/sqlalchemy/mapping/mapper.py b/lib/sqlalchemy/mapping/mapper.py index db404b6eac..15d197a340 100644 --- a/lib/sqlalchemy/mapping/mapper.py +++ b/lib/sqlalchemy/mapping/mapper.py @@ -580,9 +580,9 @@ class Mapper(object): if len(update): clause = sql.and_() for col in self.pks_by_table[table]: - clause.clauses.append(col == sql.bindparam(col._label)) + clause.clauses.append(col == sql.bindparam(col._label, type=col.type)) if self.version_id_col is not None: - clause.clauses.append(self.version_id_col == sql.bindparam(self.version_id_col._label)) + clause.clauses.append(self.version_id_col == sql.bindparam(self.version_id_col._label, type=col.type)) statement = table.update(clause) rows = 0 for rec in update: @@ -654,9 +654,9 @@ class Mapper(object): if len(delete): clause = sql.and_() for col in self.pks_by_table[table]: - clause.clauses.append(col == sql.bindparam(col.key)) + clause.clauses.append(col == sql.bindparam(col.key, type=col.type)) if self.version_id_col is not None: - clause.clauses.append(self.version_id_col == sql.bindparam(self.version_id_col.key)) + clause.clauses.append(self.version_id_col == sql.bindparam(self.version_id_col.key, type=self.version_id_col.type)) statement = table.delete(clause) c = statement.execute(*delete) if c.supports_sane_rowcount() and c.rowcount != len(delete):