#10476: Fix(?) model insert handling when autcommit=True for PostgreSQL <= 8.1
---------------------------------------------------+------------------------
Reporter: mtredinnick | Owner: mtredinnick
Status: new | Milestone: 1.1
Component: Database layer (models, ORM) | Version: SVN
Resolution: | Keywords:
Stage: Accepted | Has_patch: 1
Needs_docs: 0 | Needs_tests: 0
Needs_better_patch: 0 |
---------------------------------------------------+------------------------
Changes (by Richard Davies <[email protected]>):
* has_patch: 0 => 1
* milestone: => 1.1
Comment:
It turns out that the current code already works on PostgreSQL <= 8.1. I'm
attaching a patch which simply removes the check (and some documentation
of the limitation). This means that we'll be able to get database-native
autocommit into 1.1. for all versions of PostgreSQL - good!
The secret is that django/db/backends/postgresql/operations.py already
defines last_insert_id() in terms of 'select currval' which is defined to
be a session-local value (see http://www.postgresql.org/docs/7.3/static
/functions-sequence.html or any other version).
When django/db/models/sql/subqueries.py defines InsertQuery.execute_sql(),
the version which uses return last_insert_id() is already session-safe,
even in database-native autocommit mode without a wrapping transaction.
The version which uses the 'returning' syntax on Postgresql >= 8.2 is
simply more efficient, not more session-safe.
--
Ticket URL: <http://code.djangoproject.com/ticket/10476#comment:5>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---