From 8ffec7510a1452dba152429f1f020f0ce42c056e Mon Sep 17 00:00:00 2001 From: endangered Date: Sat, 30 Nov 2019 10:55:26 +0930 Subject: [PATCH] Fix getVisitedBooks and getDownloadedBooks queries, preventing persistent error every five minutes when front page data is updated --- lib/database/stats.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/database/stats.go b/lib/database/stats.go index 7e10cd6..5652e55 100644 --- a/lib/database/stats.go +++ b/lib/database/stats.go @@ -98,7 +98,9 @@ func (db *pgDB) frontPageUpdater() { func (db *pgDB) getVisitedBooks(num int) (books []Book, err error) { err = db.sql.Model(&books). - Column("Visit"). + Column("book.*"). + Join("INNER JOIN visits ON book.id = visits.book_id "). + Where("visits.views > 0 AND book.active"). Order("views DESC NULLS LAST"). Limit(num). Select() @@ -107,7 +109,9 @@ func (db *pgDB) getVisitedBooks(num int) (books []Book, err error) { func (db *pgDB) getDownloadedBooks(num int) (books []Book, err error) { err = db.sql.Model(&books). - Column("Visit"). + Column("book.*"). + Join("INNER JOIN visits ON book.id = visits.book_id "). + Where("visits.downloads > 0 AND book.active"). Order("downloads DESC NULLS LAST"). Limit(num). Select()