#13906: REPEATABLE READ (as used by default on MySQL) breaks atleast
QuerySet.get_or_create().
-------------------------------------+-------------------------------------
               Reporter:             |          Owner:  graham_king
  sebastian_noack                    |         Status:  assigned
                   Type:             |      Component:  Database layer
  Cleanup/optimization               |  (models, ORM)
              Milestone:             |       Severity:  Normal
                Version:  SVN        |       Keywords:  mysql transaction
             Resolution:             |  isolation
           Triage Stage:  Accepted   |      Has patch:  1
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
-------------------------------------+-------------------------------------

Comment (by sebastian_noack):

 In my opinion using transactions with MySQL is hazardous anyway, because
 of MySQL's entire transaction management is poorly tested, [http://www.no-
 ack.org/2011/05/broken-transaction-management-in-mysql.html as I have
 recently proofed]. It only matters whether your application expects
 MySQL's buggy behavior or not. And since any other RDBMS supported (and
 well tested) by django is using READ COMMITTED, in my opinion django-based
 applications will run more reliable on MySQL with READ COMMITTED.

 Also note that there is no way to fix get_or_create for REPEATABLE READ,
 because of it would require to commit the transaction after the attempt to
 get the data and we can't do that if django's transaction management is in
 manual state.

-- 
Ticket URL: <http://code.djangoproject.com/ticket/13906#comment:10>
Django <https://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.

Reply via email to