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
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):
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:
"""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:
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):
# 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.
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"):
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
)
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
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)
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
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)