summaryrefslogtreecommitdiff
path: root/functions.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-09 22:41:13 +0300
committerAndrew Dolgov <[email protected]>2010-11-09 22:41:13 +0300
commit490c366d39126d8abab29547e8dd983ee254e859 (patch)
treedc6faa0f67f873fb6070ad6b2271642d2f984550 /functions.php
parent38edb1510d58b7c8b88d29539afdcecdff8edbf4 (diff)
add tag cache for user_entries (bump schema)
Diffstat (limited to 'functions.php')
-rw-r--r--functions.php40
1 files changed, 35 insertions, 5 deletions
diff --git a/functions.php b/functions.php
index 5e7b7c20f..c4d033bc2 100644
--- a/functions.php
+++ b/functions.php
@@ -1199,9 +1199,9 @@
$result = db_query($link,
"INSERT INTO ttrss_user_entries
(ref_id, owner_uid, feed_id, unread, last_read, marked,
- published, score)
+ published, score, tag_cache)
VALUES ('$ref_id', '$owner_uid', '$feed', $unread,
- $last_read_qpart, $marked, $published, '$score')");
+ $last_read_qpart, $marked, $published, '$score', '')");
$result = db_query($link,
"SELECT int_id FROM ttrss_user_entries WHERE
@@ -1433,6 +1433,14 @@
(owner_uid,tag_name,post_int_id)
VALUES ('$owner_uid','$tag', '$entry_int_id')");
}
+
+ /* update the cache */
+
+ $tags_str = db_escape_string(join(",", $filtered_tags));
+
+ db_query($link, "UPDATE ttrss_user_entries
+ SET tag_cache = '$tags_str' WHERE ref_id = '$entry_ref_id'
+ AND owner_uid = $owner_uid");
}
db_query($link, "COMMIT");
@@ -4660,10 +4668,32 @@
if ($memcache && $obj = $memcache->get($obj_id)) {
$tags = $obj;
} else {
- $tmp_result = db_query($link, $query);
+ /* check cache first */
+
+ $result = db_query($link, "SELECT tag_cache FROM ttrss_user_entries
+ WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
+
+ $tag_cache = db_fetch_result($result, 0, "tag_cache");
+
+ if ($tag_cache) {
+ $tags = explode(",", $tag_cache);
+ } else {
- while ($tmp_line = db_fetch_assoc($tmp_result)) {
- array_push($tags, $tmp_line["tag_name"]);
+ /* do it the hard way */
+
+ $tmp_result = db_query($link, $query);
+
+ while ($tmp_line = db_fetch_assoc($tmp_result)) {
+ array_push($tags, $tmp_line["tag_name"]);
+ }
+
+ /* update the cache */
+
+ $tags_str = db_escape_string(join(",", $tags));
+
+ db_query($link, "UPDATE ttrss_user_entries
+ SET tag_cache = '$tags_str' WHERE ref_id = '$id'
+ AND owner_uid = " . $_SESSION["uid"]);
}
if ($memcache) $memcache->add($obj_id, $tags, 0, 3600);