Permalink
Browse files

Fixed #19096 - More extendable can_return_id_from_insert

RETURNING is an extension of the SQL standard, which is not implemented
the same by all databases. Allow DatabaseOperations.return_insert_id to
return a None to allow for other 3rd party backends with a different
implementation.
  • Loading branch information...
1 parent 9a2bcee commit 0e3393dd64dc4e56e057cfb5e96ce88dc62979eb @manfre manfre committed Oct 9, 2012
Showing with 3 additions and 2 deletions.
  1. +3 −2 django/db/models/sql/compiler.py
@@ -897,8 +897,9 @@ def as_sql(self):
col = "%s.%s" % (qn(opts.db_table), qn(opts.pk.column))
result.append("VALUES (%s)" % ", ".join(placeholders[0]))
r_fmt, r_params = self.connection.ops.return_insert_id()
- result.append(r_fmt % col)
- params += r_params
+ if r_fmt:
+ result.append(r_fmt % col)
+ params += r_params
return [(" ".join(result), tuple(params))]
if can_bulk:
result.append(self.connection.ops.bulk_insert_sql(fields, len(values)))

0 comments on commit 0e3393d

Please sign in to comment.