Hi, I'd like to pass additional partition columns into the filters for a 
QuerySet's bulk_update(). These would be no-op filters solely for the DB to 
understand from the query to lock rows in a single partition vs all 
partitions. 

Ex: I'd add "orig_city_id = 52" into this pk filter that bulk_update uses, 
because my table is partitioned on orig_city_id and passing the partition 
filter helps scale up when updating a lot of records: 
https://github.com/django/django/blob/d8c90d4c22cb218f1c170eba086c53d3dff7fbc0/django/db/models/query.py#L569

What are folks thoughts on this feature request? 

Currently I copy pasted bulk_update and tweaked it with a simple change to 
work (https://snippi.com/s/55qlpbn). Was wondering if this makes sense to 
add to Django for everyone.

*Motivation for this change:*
http://www.databasesoup.com/2012/06/postgresqlconf-maxlockspertransaction.html, 
describing how UPDATES on tables with lots of partitions without the 
partition column in the WHERE clauses causes DB to lock too many rows and 
eventually get OOM issues 

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/0162b31d-2734-4e11-8909-e58e219a78e1n%40googlegroups.com.
  • Fea... opqpop
    • ... 'Adam Johnson' via Django developers (Contributions to Django itself)

Reply via email to