[PATCH 7/9] parser: avoid an unnecessary UPDATE of Person

Daniel Axtens dja at axtens.net
Thu Feb 22 01:17:14 AEDT 2018

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>
 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

More information about the Patchwork mailing list