]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
did away with preexecute_pk_sequences
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 3 Aug 2009 01:38:30 +0000 (01:38 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 3 Aug 2009 01:38:30 +0000 (01:38 +0000)
lib/sqlalchemy/dialects/firebird/base.py
lib/sqlalchemy/dialects/maxdb/base.py
lib/sqlalchemy/dialects/mssql/base.py
lib/sqlalchemy/dialects/mysql/zxjdbc.py
lib/sqlalchemy/dialects/oracle/base.py
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/engine/default.py
lib/sqlalchemy/sql/compiler.py

index 1a441eaa6e22ed540d5c933baf29d31a822a01b2..57b89ed058d609bf09e48cba61df738f651a6c5a 100644 (file)
@@ -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
index 44e20ff15797264b257bd0bf432321e064677c23..1ec95e03b4dfa22967123228aa9933ff58dd5c3f 100644 (file)
@@ -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
index 83eff3fba522fcf34bc4fbc457e47b58416f2e85..cd031af4011db162be75e718e410c9ebbfa78b46 100644 (file)
@@ -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
index 647e856bce0e145d6e9566342d4335b2d33c91d5..6cdc6f4386e87f61fed3b2bc1ae970010adfb2f5 100644 (file)
@@ -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,
         {
index bd08e62d423dd36e5bf29344a96ca6a06538ce29..419ccedb1644622aedccb0de4b6892679087b44f 100644 (file)
@@ -465,7 +465,6 @@ class OracleDialect(default.DefaultDialect):
 
     supports_sequences = True
     sequences_optional = False
-    preexecute_pk_sequences = True
     postfetch_lastrowid = False
     
     default_paramstyle = 'named'
index 23e14454882d03dd6cd83624420fb2722f974c90..874907abc1299c8687863f7076ce57c3a7f70dc3 100644 (file)
@@ -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
     
index 2606057632a0f37ddd3d88b5d27b9b54acdd96c6..b2eaed1e77183e3f063791e05d99d331e1859342 100644 (file)
@@ -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
index 3e1323694087df12a8903db707a750d2b391f556..935d1e087d486303452c8a002ce5aff389076b9f 100644 (file)
@@ -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
index c4a4390f21889e0f3bc269df35e84b533e17ff77..6bfad4a76cb07909dd533dab2fde6054f3133e04 100644 (file)
@@ -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):