[PATCH 7/9] parser: avoid an unnecessary UPDATE of Person
Andrew Donnellan
andrew.donnellan at au1.ibm.com
Thu Feb 22 15:46:39 AEDT 2018
On 22/02/18 01:17, Daniel Axtens wrote:
> Analysis of SQL statements showed that when parsing an email, the row
> for the Person who sent the email was always getting updated. This is
> because the test for updating it only checks if the incoming mail has
> *a* name attached to the email address, and not if it has a new name.
> Django is not smart enough to figure that out, and so unconditionally
> UPDATEs the model when asked to save.
>
> Give it a hand - only update the model and save it if the new name is
> in fact different.
>
> Signed-off-by: Daniel Axtens <dja at axtens.net>
Reviewed-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
Though, just the != test should be sufficient here without the not-null test
> ---
> patchwork/parser.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/patchwork/parser.py b/patchwork/parser.py
> index 1f3b3dd8901f..3d40b74375e0 100644
> --- a/patchwork/parser.py
> +++ b/patchwork/parser.py
> @@ -349,7 +349,7 @@ def get_or_create_author(mail):
> # we lost the race to create the person
> person = Person.objects.get(email__iexact=email)
>
> - if name: # use the latest provided name
> + if name and name != person.name: # use the latest provided name
> person.name = name
> person.save()
>
--
Andrew Donnellan OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com IBM Australia Limited
More information about the Patchwork
mailing list