[aur-dev] [PATCH 1/2] popupdate: Avoid NULL entries in the popularity field

Lukas Fleischer lfleischer at archlinux.org
Tue Mar 1 17:38:14 UTC 2016


The popularity field is declared as "NOT NULL" in the database schema.
Fix the popularity update query such that it uses a popularity of 0.0
instead of NULL for packages with no votes.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 scripts/popupdate.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/popupdate.py b/scripts/popupdate.py
index 2aa8a54..f3ba513 100755
--- a/scripts/popupdate.py
+++ b/scripts/popupdate.py
@@ -22,7 +22,7 @@ cur.execute("UPDATE PackageBases SET NumVotes = (SELECT COUNT(*) FROM " +
             "PackageVotes WHERE PackageVotes.PackageBaseID = PackageBases.ID)")
 
 cur.execute("UPDATE PackageBases SET Popularity = (" +
-            "SELECT SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)) " +
+            "SELECT COALESCE(SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)), 0.0) " +
             "FROM PackageVotes WHERE PackageVotes.PackageBaseID = " +
             "PackageBases.ID AND NOT VoteTS IS NULL)")
 
-- 
2.7.2


More information about the aur-dev mailing list