From 0e99120c75efc1903ae7bd6d4fac58e8593e3f1b Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Sat, 27 Feb 2016 11:37:29 +0100 Subject: [PATCH] Db: improve readability, less duplication --- library/Director/Db.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/library/Director/Db.php b/library/Director/Db.php index 424e9f02..3e6745d5 100644 --- a/library/Director/Db.php +++ b/library/Director/Db.php @@ -444,14 +444,16 @@ class Db extends DbConnection $queries = array(); $db = $this->db(); + $cnt = "COALESCE(SUM(CASE WHEN o.object_type = '%s' THEN 1 ELSE 0 END), 0)"; + foreach ($types as $type) { $queries[] = $db->select()->from( array('o' => 'icinga_' . $type), array( 'icinga_type' => "('" . $type . "')", - 'cnt_object' => "COALESCE(SUM(CASE WHEN o.object_type = 'object' THEN 1 ELSE 0 END), 0)", - 'cnt_template' => "COALESCE(SUM(CASE WHEN o.object_type = 'template' THEN 1 ELSE 0 END), 0)", - 'cnt_external' => "COALESCE(SUM(CASE WHEN o.object_type = 'external_object' THEN 1 ELSE 0 END), 0)", + 'cnt_object' => sprintf($cnt, 'object'), + 'cnt_template' => sprintf($cnt, 'template'), + 'cnt_external' => sprintf($cnt, 'external_object'), 'cnt_total' => 'COUNT(*)', ) );