summaryrefslogtreecommitdiff
path: root/classes/User_im_prefs.php
diff options
context:
space:
mode:
Diffstat (limited to 'classes/User_im_prefs.php')
-rw-r--r--classes/User_im_prefs.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/classes/User_im_prefs.php b/classes/User_im_prefs.php
index 8ecdfe9fa..75be8969e 100644
--- a/classes/User_im_prefs.php
+++ b/classes/User_im_prefs.php
@@ -68,4 +68,27 @@ class User_im_prefs extends Memcached_DataObject
{
return array(false,false);
}
+
+ /**
+ * We have two compound keys with unique constraints:
+ * (transport, user_id) which is our primary key, and
+ * (transport, screenname) which is an additional constraint.
+ *
+ * Currently there's not a way to represent that second key
+ * in the general keys list, so we're adding it here to the
+ * list of keys to use for caching, ensuring that it gets
+ * cleared as well when we change.
+ *
+ * @return array of cache keys
+ */
+ function _allCacheKeys()
+ {
+ $ukeys = 'transport,screenname';
+ $uvals = $this->transport . ',' . $this->screenname;
+
+ $ckeys = parent::_allCacheKeys();
+ $ckeys[] = $this->cacheKey($this->tableName(), $ukeys, $uvals);
+ return $ckeys;
+ }
+
}