#18306: Deferred models should automatically issue update_fields when saving
-------------------------------------+-------------------------------------
     Reporter:  akaariai             |                    Owner:  akaariai
         Type:                       |                   Status:  new
  Cleanup/optimization               |                  Version:  master
    Component:  Database layer       |               Resolution:
  (models, ORM)                      |             Triage Stage:  Accepted
     Severity:  Normal               |      Needs documentation:  0
     Keywords:                       |  Patch needs improvement:  1
    Has patch:  1                    |                    UI/UX:  0
  Needs tests:  0                    |
Easy pickings:  0                    |
-------------------------------------+-------------------------------------

Comment (by niwi):

 Good work on "Cleaned up deferred model implementation", this fixes a lot
 of number of queries. But continued to have a strange case:

 {{{
 #!sql
 UPDATE "update_only_fields_person" SET "name" = Linda WHERE
 "update_only_fields_person"."id" = 1 ; args=('Linda', 1)
 SELECT "update_only_fields_employee"."person_ptr_id",
 "update_only_fields_employee"."profile_id" FROM
 "update_only_fields_employee" INNER JOIN "update_only_fields_person" ON
 ("update_only_fields_employee"."person_ptr_id" =
 "update_only_fields_person"."id") WHERE
 "update_only_fields_employee"."person_ptr_id" = 1 ; args=(1,)
 UPDATE "update_only_fields_employee" SET "profile_id" = 1 WHERE
 "update_only_fields_employee"."person_ptr_id" = 1 ; args=(1, 1)
 }}}

 With test code:

 {{{
 #!python
 def test_update_fields_inheritance_defer(self):
     profile_boss = Profile.objects.create(name='Boss', salary=3000)
     e1 = Employee.objects.create(name='Sara', gender='F',
         employee_num=1, profile=profile_boss)
     e1 = Employee.objects.only('name').get(pk=e1.pk)
     e1.name = 'Linda'
     with self.assertNumQueries(3):
         e1.save()
 }}}

 In my opinion, this case should only run a single query. I will modify the
 test for 3 queryes expect, but I'm waiting for you comment me here.

 Current Status:

 * #18362 now has attached patch
 * #17485 the solucion proposed seems rasonable (I update the patch for
 latest version)
 * ~~#18343~~ now fixed and commited to master (great work)

-- 
Ticket URL: <https://code.djangoproject.com/ticket/18306#comment:13>
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 django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to