From 04a612a8c525d8b214e1f7f3ceadf9ad455a00b8 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 3 Aug 2009 01:38:30 +0000 Subject: [PATCH] did away with preexecute_pk_sequences --- lib/sqlalchemy/dialects/firebird/base.py | 1 - lib/sqlalchemy/dialects/maxdb/base.py | 1 - lib/sqlalchemy/dialects/mssql/base.py | 1 - lib/sqlalchemy/dialects/mysql/zxjdbc.py | 2 -- lib/sqlalchemy/dialects/oracle/base.py | 1 - lib/sqlalchemy/dialects/postgresql/base.py | 1 - lib/sqlalchemy/engine/base.py | 7 ------- lib/sqlalchemy/engine/default.py | 1 - lib/sqlalchemy/sql/compiler.py | 24 ++++++++-------------- 9 files changed, 8 insertions(+), 31 deletions(-) diff --git a/lib/sqlalchemy/dialects/firebird/base.py b/lib/sqlalchemy/dialects/firebird/base.py index 1a441eaa6e..57b89ed058 100644 --- a/lib/sqlalchemy/dialects/firebird/base.py +++ b/lib/sqlalchemy/dialects/firebird/base.py @@ -315,7 +315,6 @@ class FBDialect(default.DefaultDialect): supports_sequences = True sequences_optional = False supports_default_values = True - preexecute_pk_sequences = True postfetch_lastrowid = False requires_name_normalize = True diff --git a/lib/sqlalchemy/dialects/maxdb/base.py b/lib/sqlalchemy/dialects/maxdb/base.py index 44e20ff157..1ec95e03b4 100644 --- a/lib/sqlalchemy/dialects/maxdb/base.py +++ b/lib/sqlalchemy/dialects/maxdb/base.py @@ -801,7 +801,6 @@ class MaxDBDialect(default.DefaultDialect): max_identifier_length = 32 supports_sane_rowcount = True supports_sane_multi_rowcount = False - preexecute_pk_sequences = True preparer = MaxDBIdentifierPreparer statement_compiler = MaxDBCompiler diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 83eff3fba5..cd031af401 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -1127,7 +1127,6 @@ class MSDialect(default.DefaultDialect): schema_name = "dbo" colspecs = colspecs ischema_names = ischema_names - preexecute_pk_sequences = True supports_unicode_binds = True postfetch_lastrowid = True diff --git a/lib/sqlalchemy/dialects/mysql/zxjdbc.py b/lib/sqlalchemy/dialects/mysql/zxjdbc.py index 647e856bce..6cdc6f4386 100644 --- a/lib/sqlalchemy/dialects/mysql/zxjdbc.py +++ b/lib/sqlalchemy/dialects/mysql/zxjdbc.py @@ -44,8 +44,6 @@ class MySQL_jdbc(ZxJDBCConnector, MySQLDialect): jdbc_db_name = 'mysql' jdbc_driver_name = 'com.mysql.jdbc.Driver' - preexecute_pk_sequences = True - colspecs = util.update_copy( MySQLDialect.colspecs, { diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index bd08e62d42..419ccedb16 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -465,7 +465,6 @@ class OracleDialect(default.DefaultDialect): supports_sequences = True sequences_optional = False - preexecute_pk_sequences = True postfetch_lastrowid = False default_paramstyle = 'named' diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 23e1445488..874907abc1 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -451,7 +451,6 @@ class PGDialect(default.DefaultDialect): supports_sequences = True sequences_optional = True - preexecute_pk_sequences = True preexecute_autoincrement_sequences = True postfetch_lastrowid = False diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 2606057632..b2eaed1e77 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -104,13 +104,6 @@ class Dialect(object): ``UPDATE`` and ``DELETE`` statements when executed via executemany. - preexecute_pk_sequences - Indicate if the dialect should pre-execute sequences or default - generation functions on primary key columns during an INSERT, if - it's desired that the new row's primary key be available after execution. - Pre-execution is disabled if the database supports "returning" - and "implicit_returning" is True. - preexecute_autoincrement_sequences True if 'implicit' primary key functions must be executed separately in order to get their value. This is currently oriented towards diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 3e13236940..935d1e087d 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -33,7 +33,6 @@ class DefaultDialect(base.Dialect): supports_sequences = False sequences_optional = False - preexecute_pk_sequences = False preexecute_autoincrement_sequences = False postfetch_lastrowid = True implicit_returning = False diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index c4a4390f21..6bfad4a76c 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -781,14 +781,12 @@ class SQLCompiler(engine.Compiled): # create a list of column assignment clauses as tuples values = [] - #need_pks = self.isinsert and not self.inline - - #implicit_returning = need_pks and \ - # self.dialect.implicit_returning and \ - # stmt.table.implicit_returning and \ - # not self.statement._returning and \ + need_pks = self.isinsert and \ + not self.inline and \ + not self.statement._returning - implicit_returning = self.dialect.implicit_returning and \ + implicit_returning = need_pks and \ + self.dialect.implicit_returning and \ stmt.table.implicit_returning for c in stmt.table.columns: @@ -803,18 +801,12 @@ 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 \ + need_pks and \ ( - self.dialect.preexecute_pk_sequences or c is not stmt.table._autoincrement_column or - implicit_returning - ) and \ - not self.inline and \ - not self.statement._returning: + not self.dialect.postfetch_lastrowid + ): if implicit_returning: if isinstance(c.default, schema.Sequence): -- 2.47.2