summaryrefslogtreecommitdiff
path: root/internal/storage/entry.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <f@miniflux.net> 2024-04-04 21:19:02 -0700
committerGravatar Frédéric Guillot <f@miniflux.net> 2024-04-09 20:37:30 -0700
commit38b80d96eaa4aa57a95d02ae4ffd1d5833c7c7e7 (patch)
tree29c1d877387cee7515a68b3350f30d11e50efd3d /internal/storage/entry.go
parent35edd8ea92477618fa8e6de2de38b1ca4981eace (diff)
downloadv2-38b80d96eaa4aa57a95d02ae4ffd1d5833c7c7e7.tar.gz
v2-38b80d96eaa4aa57a95d02ae4ffd1d5833c7c7e7.tar.zst
v2-38b80d96eaa4aa57a95d02ae4ffd1d5833c7c7e7.zip
storage: change GetReadTime() function to use entries_feed_id_hash_key index
Diffstat (limited to '')
-rw-r--r--internal/storage/entry.go17
1 files changed, 7 insertions, 10 deletions
diff --git a/internal/storage/entry.go b/internal/storage/entry.go
index 867338f7..f22a424b 100644
--- a/internal/storage/entry.go
+++ b/internal/storage/entry.go
@@ -231,24 +231,21 @@ func (s *Storage) IsNewEntry(feedID int64, entryHash string) bool {
return !result
}
-// GetReadTime fetches the read time of an entry based on its hash, and the feed id and user id from the feed.
-// It's intended to be used on entries objects created by parsing a feed as they don't contain much information.
-// The feed param helps to scope the search to a specific user and feed in order to avoid hash clashes.
-func (s *Storage) GetReadTime(entry *model.Entry, feed *model.Feed) int {
+func (s *Storage) GetReadTime(feedID int64, entryHash string) int {
var result int
+
+ // Note: This query uses entries_feed_id_hash_key index
s.db.QueryRow(
`SELECT
reading_time
FROM
entries
WHERE
- user_id=$1 AND
- feed_id=$2 AND
- hash=$3
+ feed_id=$1 AND
+ hash=$2
`,
- feed.UserID,
- feed.ID,
- entry.Hash,
+ feedID,
+ entryHash,
).Scan(&result)
return result
}