I don't think any abstraction is possible. Postgres has 8 different table-level locking modes, in addition to advisory locks and 4 row-level lock modes. I would say any attempt to abstract that would remove functionality, and that would not be convenient.
We are already suffering from an over-abstraction of locking -- we have limited support for SELECT ... FOR UPDATE, but not SELECT ... FOR SHARE (not to mention FOR NO KEY UPDATE and FOR KEY SHARE, which to be honest probably aren't useful to call from an ORM). QuerySet.select_for_update has an option to enable NO WAIT, but not SKIP LOCKED. -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To post to this group, send email to django-developers@googlegroups.com. Visit this group at https://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CACPudh0KQ4XW-2G71ZDx__g6AmUO5v6QDF7zWPdCAj_1Gnjeag%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.