]> git.joonet.de Git - adminer.git/commitdiff
IMAP: Number of rows
authorJakub Vrana <jakub@vrana.cz>
Tue, 18 Mar 2025 11:52:17 +0000 (12:52 +0100)
committerJakub Vrana <jakub@vrana.cz>
Tue, 18 Mar 2025 11:52:17 +0000 (12:52 +0100)
plugins/drivers/imap.php

index b316fc7ad4654f399d54634f55f5a452b81968e5..7300156bffe63485cc0735d85b2afb70452561ab 100644 (file)
@@ -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);
+                       }
                }
        }