summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/include/rcube_mdb2.php18
1 files changed, 5 insertions, 13 deletions
diff --git a/program/include/rcube_mdb2.php b/program/include/rcube_mdb2.php
index 2f4ea26a4..876659c2c 100644
--- a/program/include/rcube_mdb2.php
+++ b/program/include/rcube_mdb2.php
@@ -404,19 +404,11 @@ class rcube_mdb2
{
// get tables if not cached
if (!$this->tables) {
- $this->tables = array();
-
- switch ($this->db_provider) {
- case 'sqlite':
- $result = $this->db_handle->query("SELECT name FROM sqlite_master WHERE type='table'");
- break;
- default:
- $result = $this->db_handle->query("SHOW TABLES");
- }
-
- if ($result !== false && !PEAR::isError($result))
- while ($rec = $result->fetchRow(MDB2_FETCHMODE_ORDERED))
- $this->tables[] = $rec[0];
+ $this->db_handle->loadModule('Manager');
+ if (!PEAR::isError($result = $this->db_handle->listTables()))
+ $this->tables = $result;
+ else
+ $this->tables = array();
}
return $this->tables;