Wow thanks so much Adam. I just verified that doing the filter before 
bulk_update indeed works. 

I didn't realize I could just filter it before doing the bulk_update and it 
would carry over with the pk filter that gets added in bulk_update. I will 
have to brush up on understanding Querysets better.

Thanks again!

On Thursday, July 22, 2021 at 10:30:30 AM UTC-7 Adam Johnson wrote:

> It should already work to do `Model.objects.filter(...).bulk_update(...)` 
> , no?
>
> On Tue, 13 Jul 2021 at 00:50, opqpop <mtx...@gmail.com> wrote:
>
>> 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-develop...@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
>>  
>> <https://groups.google.com/d/msgid/django-developers/0162b31d-2734-4e11-8909-e58e219a78e1n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/db2028ec-ab25-4605-b820-40d7c613a6d4n%40googlegroups.com.
  • Fea... opqpop
    • ... 'Adam Johnson' via Django developers (Contributions to Django itself)
      • ... opqpop

Reply via email to