summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-03-06 14:14:51 +0300
committerAndrew Dolgov <[email protected]>2015-03-06 14:14:51 +0300
commit168cf351e29c71209b0f1ade9bed522c9c1bc57f (patch)
tree5ae7a94b6063ba067a5b8361ff38a5523c036fb9 /include
parent8b4bfd5ca5f3fe36c9c0dc95601b5acf62c3d434 (diff)
add housekeeping task for orphaned counter cache entries
Diffstat (limited to 'include')
-rw-r--r--include/ccache.php1
-rw-r--r--include/rssfuncs.php19
2 files changed, 20 insertions, 0 deletions
diff --git a/include/ccache.php b/include/ccache.php
index 406dec81d..b938b8664 100644
--- a/include/ccache.php
+++ b/include/ccache.php
@@ -139,6 +139,7 @@
$result = db_query("SELECT SUM(value) AS sv
FROM ttrss_counters_cache, ttrss_feeds
WHERE id = feed_id AND $cat_qpart AND
+ ttrss_counters_cache.owner_uid = $owner_uid AND
ttrss_feeds.owner_uid = '$owner_uid'");
$unread = (int) db_fetch_result($result, 0, "sv");
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.");