diff options
| author | Johannes Hoppe <info@johanneshoppe.com> | 2019-09-14 14:50:14 -0700 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-09-24 10:22:43 +0200 |
| commit | b31e63879eb5d9717e9f890401f7222e4f00c910 (patch) | |
| tree | 66c1f61fbcaf660c04b61c5b772edd65625b0489 /django/db/models/sql | |
| parent | d71497bb249a2c3ffec41e99089f5ae8e575f2d3 (diff) | |
Fixed #29444 -- Allowed returning multiple fields from INSERT statements on Oracle.
Diffstat (limited to 'django/db/models/sql')
| -rw-r--r-- | django/db/models/sql/compiler.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py index e287a6f55a..22cd09c30c 100644 --- a/django/db/models/sql/compiler.py +++ b/django/db/models/sql/compiler.py @@ -1152,6 +1152,7 @@ class SQLCompiler: class SQLInsertCompiler(SQLCompiler): returning_fields = None + returning_params = tuple() def field_as_sql(self, field, val): """ @@ -1300,10 +1301,10 @@ class SQLInsertCompiler(SQLCompiler): result.append(ignore_conflicts_suffix_sql) # Skip empty r_sql to allow subclasses to customize behavior for # 3rd party backends. Refs #19096. - r_sql, r_params = self.connection.ops.return_insert_columns(self.returning_fields) + r_sql, self.returning_params = self.connection.ops.return_insert_columns(self.returning_fields) if r_sql: result.append(r_sql) - params += [r_params] + params += [self.returning_params] return [(" ".join(result), tuple(chain.from_iterable(params)))] if can_bulk: @@ -1342,7 +1343,7 @@ class SQLInsertCompiler(SQLCompiler): 'not supported on this database backend.' ) assert len(self.query.objs) == 1 - return self.connection.ops.fetch_returned_insert_columns(cursor) + return self.connection.ops.fetch_returned_insert_columns(cursor, self.returning_params) return [self.connection.ops.last_insert_id( cursor, self.query.get_meta().db_table, self.query.get_meta().pk.column )] |
