From 26d189917ea92d480e2a66c2c72abdd64685b5a3 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Sun, 25 Feb 2024 16:52:08 +0100 Subject: [PATCH] Simplify cleanupEntries' query - `NOT (hash=ANY(%4))` can be expressed as `hash NOT IN $4` - There is no need for a subquery operating on the same table, moving the conditions out is equivalent. --- internal/storage/entry.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/storage/entry.go b/internal/storage/entry.go index 59ad2ef7..721e0d62 100644 --- a/internal/storage/entry.go +++ b/internal/storage/entry.go @@ -251,11 +251,11 @@ func (s *Storage) cleanupEntries(feedID int64, entryHashes []string) error { DELETE FROM entries WHERE - feed_id=$1 - AND - id IN (SELECT id FROM entries WHERE feed_id=$2 AND status=$3 AND NOT (hash=ANY($4))) + feed_id=$1 AND + status=$3 AND + NOT (hash=ANY($4)) ` - if _, err := s.db.Exec(query, feedID, feedID, model.EntryStatusRemoved, pq.Array(entryHashes)); err != nil { + if _, err := s.db.Exec(query, feedID, model.EntryStatusRemoved, pq.Array(entryHashes)); err != nil { return fmt.Errorf(`store: unable to cleanup entries: %v`, err) }