]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
boiled down "rendered_returning" etc. into just "returning"
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 28 Jul 2009 17:12:19 +0000 (17:12 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 28 Jul 2009 17:12:19 +0000 (17:12 +0000)
lib/sqlalchemy/dialects/mssql/base.py
lib/sqlalchemy/dialects/oracle/cx_oracle.py
lib/sqlalchemy/sql/compiler.py

index f1a7cd9aa40d9d90508f6d4cc4939460145a0581..bc30e2822600d395ae1a1573fd69be84f90e937a 100644 (file)
@@ -863,7 +863,7 @@ class MSExecutionContext(default.DefaultExecutionContext):
                 self._enable_identity_insert = False
             
             self._select_lastrowid = insert_has_sequence and \
-                                        not self.compiled.rendered_returning and \
+                                        not self.compiled.returning and \
                                         not self._enable_identity_insert and \
                                         not self.executemany
             
@@ -885,8 +885,7 @@ class MSExecutionContext(default.DefaultExecutionContext):
         if self._enable_identity_insert:
             self.cursor.execute("SET IDENTITY_INSERT %s OFF" % self.dialect.identifier_preparer.format_table(self.compiled.statement.table))
 
-        if (self.isinsert or self.isupdate or self.isdelete) and \
-                self.compiled.rendered_returning:
+        if self.compiled.returning:
             self._result_proxy = base.FullyBufferedResultProxy(self)
     
     def get_lastrowid(self):
index 57184774d79e110cd6d8cfada99d0c0e22f7a829..65395467e49cc7994cf012cfe162b2f14019b57c 100644 (file)
@@ -215,8 +215,7 @@ class Oracle_cx_oracleExecutionContext(DefaultExecutionContext):
                     return base.BufferedColumnResultProxy(self)
         
         if hasattr(self, 'out_parameters') and \
-            (self.isinsert or self.isupdate or self.isdelete) and \
-                self.compiled.rendered_returning:
+            self.compiled.returning:
                 
             return ReturningResultProxy(self)
         else:
@@ -226,7 +225,7 @@ class ReturningResultProxy(base.FullyBufferedResultProxy):
     """Result proxy which stuffs the _returning clause + outparams into the fetch."""
     
     def _cursor_description(self):
-        returning = self.context.compiled.returning or self.context.compiled.statement._returning
+        returning = self.context.compiled.returning
         
         ret = []
         for c in returning:
@@ -237,7 +236,7 @@ class ReturningResultProxy(base.FullyBufferedResultProxy):
         return ret
     
     def _buffer_rows(self):
-        returning = self.context.compiled.returning or self.context.compiled.statement._returning
+        returning = self.context.compiled.returning
         return [tuple(self.context.out_parameters["ret_%d" % i] for i, c in enumerate(returning))]
 
 class Oracle_cx_oracle(OracleDialect):
index 79ed44e1ba1f5feed62a6e79e42cffbedf47437b..22fe956cb8b23cb8a201a659f78fbaac638847c1 100644 (file)
@@ -161,7 +161,7 @@ class SQLCompiler(engine.Compiled):
     # level to define if this Compiled instance represents
     # INSERT/UPDATE/DELETE
     isdelete = isinsert = isupdate = False
-    rendered_returning = False
+    returning = None
     
     def __init__(self, dialect, statement, column_keys=None, inline=False, **kwargs):
         """Construct a new ``DefaultCompiler`` object.
@@ -698,8 +698,8 @@ class SQLCompiler(engine.Compiled):
                        for c in colparams])
 
         if self.returning or insert_stmt._returning:
-            returning_clause = self.returning_clause(insert_stmt, self.returning or insert_stmt._returning)
-            self.rendered_returning = True
+            self.returning = self.returning or insert_stmt._returning
+            returning_clause = self.returning_clause(insert_stmt, self.returning)
             
             # cheating
             if returning_clause.startswith("OUTPUT"):
@@ -710,7 +710,7 @@ class SQLCompiler(engine.Compiled):
             text += " VALUES (%s)" % \
                      ', '.join([c[1] for c in colparams])
         
-        if (self.returning or insert_stmt._returning) and returning_clause:
+        if self.returning and returning_clause:
             text += " " + returning_clause
         
         return text
@@ -730,8 +730,8 @@ class SQLCompiler(engine.Compiled):
                 )
 
         if update_stmt._returning:
+            self.returning = update_stmt._returning
             returning_clause = self.returning_clause(update_stmt, update_stmt._returning)
-            self.rendered_returning = True
             if returning_clause.startswith("OUTPUT"):
                 text += " " + returning_clause
                 returning_clause = None
@@ -739,7 +739,7 @@ class SQLCompiler(engine.Compiled):
         if update_stmt._whereclause:
             text += " WHERE " + self.process(update_stmt._whereclause)
 
-        if update_stmt._returning and returning_clause:
+        if self.returning and returning_clause:
             text += " " + returning_clause
             
         self.stack.pop(-1)
@@ -863,9 +863,8 @@ class SQLCompiler(engine.Compiled):
         text = "DELETE FROM " + self.preparer.format_table(delete_stmt.table)
 
         if delete_stmt._returning:
-            returning_clause = self.returning_clause(delete_stmt, delete_stmt._returning)
-            self.rendered_returning = True
             self.returning = delete_stmt._returning
+            returning_clause = self.returning_clause(delete_stmt, delete_stmt._returning)
             if returning_clause.startswith("OUTPUT"):
                 text += " " + returning_clause
                 returning_clause = None
@@ -873,7 +872,7 @@ class SQLCompiler(engine.Compiled):
         if delete_stmt._whereclause:
             text += " WHERE " + self.process(delete_stmt._whereclause)
 
-        if delete_stmt._returning and returning_clause:
+        if self.returning and returning_clause:
             text += " " + returning_clause
             
         self.stack.pop(-1)