From f210104dda9a1b7d59512586d7bf02e3846e78e9 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Thu, 15 Nov 2012 12:40:27 +0100 Subject: [PATCH] Cache in-memory objects returned by select() --- plugins/libkolab/lib/kolab_storage_cache.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/libkolab/lib/kolab_storage_cache.php b/plugins/libkolab/lib/kolab_storage_cache.php index 9eac164e..6f6e16ea 100644 --- a/plugins/libkolab/lib/kolab_storage_cache.php +++ b/plugins/libkolab/lib/kolab_storage_cache.php @@ -363,6 +363,15 @@ class kolab_storage_cache // TODO: post-filter result according to query } + // We don't want to cache big results in-memory, however + // if we select only one object here, there's a big chance we will need it later + if (!$uids && count($result) == 1) { + if ($msguid = $result[0]['_msguid']) { + $this->uid2msg[$result[0]['uid']] = $msguid; + $this->objects[$msguid] = $result[0]; + } + } + return $result; }