Stop searching the to field

We were doing this temporarily while the `normalised_to` field was not
populated for letters. Once we have a week of data in the
`normalised_to` field we can stop looking in the `to` field. This should
improve performance because:
- it’s one `WHERE` clause not two
- we had to do `ilike` on the `to` field, because we don’t lowercase its
  contents – even if the two where clauses are somehow paralleized it’s
  is slower than a `like` comparison, which is case-sensitive

Depends on:
- [ ] Tuesday 5 May (7 full days after deploying https://github.com/alphagov/notifications-api/pull/2814)
This commit is contained in:
Chris Hill-Scott
2020-04-30 10:51:30 +01:00
parent 26793899d4
commit 1e20cb6be9
2 changed files with 4 additions and 6 deletions

View File

@@ -1319,13 +1319,12 @@ def test_dao_get_notifications_by_reference(
assert results[1].id == email.id
assert results[2].id == sms.id
# If notification_type isnt specified then we cant normalise the phone number
# to 4477… but this query will still find the 077… variant in the `to` field,
# as well as the email
# If notification_type isnt specified then we cant normalise the
# phone number to 4477… so this query will only find the email sent
# to 077@example.com
results = dao_get_notifications_by_recipient_or_reference(service.id, '077')
assert len(results) == 2
assert len(results) == 1
assert results[0].id == email.id
assert results[1].id == sms.id
results = dao_get_notifications_by_recipient_or_reference(service.id, '077@')
assert len(results) == 1