plugins/calendar
Thomas Brüderli
bruederli at kolabsys.com
Fri Dec 21 17:52:23 CET 2012
plugins/calendar/drivers/database/database_driver.php | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
New commits:
commit df3e58bdb97d546d258796a6a7b41285e6edbed3
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Fri Dec 21 17:52:07 2012 +0100
Use subquery instead of JOIN + COUNT (#1483)
diff --git a/plugins/calendar/drivers/database/database_driver.php b/plugins/calendar/drivers/database/database_driver.php
index 733aa2c..d6a4483 100644
--- a/plugins/calendar/drivers/database/database_driver.php
+++ b/plugins/calendar/drivers/database/database_driver.php
@@ -696,8 +696,9 @@ class database_driver extends calendar_driver
}
$result = $this->rc->db->query(sprintf(
- "SELECT e.*, COUNT(a.attachment_id) AS _attachments FROM " . $this->db_events . " AS e
- LEFT JOIN " . $this->db_attachments . " AS a ON (a.event_id = e.event_id OR a.event_id = e.recurrence_id)
+ "SELECT e.*, (SELECT COUNT(attachment_id) FROM " . $this->db_attachments . "
+ WHERE event_id = e.event_id OR event_id = e.recurrence_id) AS _attachments
+ FROM " . $this->db_events . " AS e
WHERE e.calendar_id IN (%s)
AND e.$col=?",
$cals
@@ -738,8 +739,9 @@ class database_driver extends calendar_driver
$events = array();
if (!empty($calendar_ids)) {
$result = $this->rc->db->query(sprintf(
- "SELECT e.*, COUNT(a.attachment_id) AS _attachments FROM " . $this->db_events . " AS e
- LEFT JOIN " . $this->db_attachments . " AS a ON (a.event_id = e.event_id OR a.event_id = e.recurrence_id)
+ "SELECT e.*, (SELECT COUNT(attachment_id) FROM " . $this->db_attachments . "
+ WHERE event_id = e.event_id OR event_id = e.recurrence_id) AS _attachments
+ FROM " . $this->db_events . " AS e
WHERE e.calendar_id IN (%s)
AND e.start <= %s AND e.end >= %s
%s
More information about the commits
mailing list