From: Mike Bayer Date: Wed, 29 Jul 2009 04:03:51 +0000 (+0000) Subject: don't create a bind for pk col + sequence if the backend doesn't support sequences X-Git-Tag: rel_0_6_6~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab26fd92a0baebf16e5816b947f9479f34894059;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git don't create a bind for pk col + sequence if the backend doesn't support sequences --- diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 22fe956cb8..810057946d 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -792,6 +792,10 @@ class SQLCompiler(engine.Compiled): elif isinstance(c, schema.Column): if self.isinsert: + # TODO: need to mix this around some more until + # conditionals are reduced. might want to + # do primary key, then sequence/column default/none, + # then implicit_returning/supports sequence/doesnt if c.primary_key and \ ( self.dialect.preexecute_pk_sequences or @@ -816,7 +820,13 @@ class SQLCompiler(engine.Compiled): else: self.returning.append(c) else: - if c.default is not None or \ + if ( + c.default is not None and \ + ( + self.dialect.supports_sequences or + not isinstance(c.default, schema.Sequence) + ) + ) or \ self.dialect.preexecute_autoincrement_sequences: values.append((c, create_bind_param(c, None)))