From 57e6c2651cc738be24618c807f1b4117710feec4 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Tue, 18 Mar 2025 12:52:17 +0100 Subject: [PATCH] IMAP: Number of rows --- plugins/drivers/imap.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/drivers/imap.php b/plugins/drivers/imap.php index b316fc7a..7300156b 100644 --- a/plugins/drivers/imap.php +++ b/plugins/drivers/imap.php @@ -39,7 +39,10 @@ if (isset($_GET["imap"])) { function query($query, $unbuffered = false) { if (preg_match('~DELETE FROM "(.+?)"~', $query)) { preg_match_all('~"uid" = (\d+)~', $query, $matches); - imap_delete($this->imap, implode(",", $matches[1]), FT_UID); + return imap_delete($this->imap, implode(",", $matches[1]), FT_UID); + } elseif (preg_match('~^SELECT COUNT\(\*\)\sFROM "(.+?)"~s', $query, $match)) { + $status = table_status($match[1]); + return new Result(array(array($status["Rows"]))); } elseif (preg_match('~^SELECT (.+)\sFROM "(.+?)"(?:\sWHERE "uid" = (\d+))?.*?(?:\sLIMIT (\d+)(?:\sOFFSET (\d+))?)?~s', $query, $match)) { list(, $columns, $table, $uid, $limit, $offset) = $match; if ($uid) { @@ -109,6 +112,11 @@ if (isset($_GET["imap"])) { next($this->result); return $row; } + + function fetch_row() { + $row = $this->fetch_assoc(); + return ($row ? array_values($row) : false); + } } }