From 168cf351e29c71209b0f1ade9bed522c9c1bc57f Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 6 Mar 2015 14:14:51 +0300 Subject: add housekeeping task for orphaned counter cache entries --- include/rssfuncs.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'include/rssfuncs.php') diff --git a/include/rssfuncs.php b/include/rssfuncs.php index 1a26e0485..a27a91747 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -1393,6 +1393,24 @@ return $error; } */ + function cleanup_counters_cache($debug) { + $result = db_query("DELETE FROM ttrss_counters_cache + WHERE feed_id > 0 AND + (SELECT COUNT(id) FROM ttrss_feeds WHERE + id = feed_id AND + ttrss_counters_cache.owner_uid = ttrss_feeds.owner_uid) = 0"); + $frows = db_affected_rows($result); + + $result = db_query("DELETE FROM ttrss_cat_counters_cache + WHERE feed_id > 0 AND + (SELECT COUNT(id) FROM ttrss_feed_categories WHERE + id = feed_id AND + ttrss_cat_counters_cache.owner_uid = ttrss_feed_categories.owner_uid) = 0"); + $crows = db_affected_rows($result); + + _debug("Removed $frows (feeds) $crows (cats) orphaned counter cache entries."); + } + function housekeeping_common($debug) { expire_cached_files($debug); expire_lock_files($debug); @@ -1402,6 +1420,7 @@ _debug("Feedbrowser updated, $count feeds processed."); purge_orphans( true); + cleanup_counters_cache($debug); $rc = cleanup_tags( 14, 50000); _debug("Cleaned $rc cached tags."); -- cgit v1.2.3