CHANGELOG | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_db.php | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_db_mysql.php | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_db_pgsql.php | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -10,6 +10,7 @@ - Fix zipped messages downloads after selecting all messages in a folder (#1490339) - Fix vpopmaild driver of password plugin - Fix PHP warning: Non-static method PEAR::setErrorHandling() should not be called statically (#1490343) - Fix tables listing routine on mysql and postgres so it skips system or other database tables and views (#1490337) RELEASE 1.1.1 ------------- program/lib/Roundcube/rcube_db.php
@@ -691,14 +691,11 @@ { // get tables if not cached if ($this->tables === null) { $q = $this->query('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_NAME'); $q = $this->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES" . " WHERE TABLE_TYPE = 'BASE TABLE'" . " ORDER BY TABLE_NAME"); if ($q) { $this->tables = $q->fetchAll(PDO::FETCH_COLUMN, 0); } else { $this->tables = array(); } $this->tables = $q ? $q->fetchAll(PDO::FETCH_COLUMN, 0) : array(); } return $this->tables; program/lib/Roundcube/rcube_db_mysql.php
@@ -150,6 +150,30 @@ } /** * Returns list of tables in a database * * @return array List of all tables of the current database */ public function list_tables() { // get tables if not cached if ($this->tables === null) { // first fetch current database name $d = $this->query("SELECT database()"); $d = $this->fetch_array($d); // get list of tables in current database $q = $this->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES" . " WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'" . " ORDER BY TABLE_NAME", $d ? $d[0] : ''); $this->tables = $q ? $q->fetchAll(PDO::FETCH_COLUMN, 0) : array(); } return $this->tables; } /** * Get database runtime variables * * @param string $varname Variable name program/lib/Roundcube/rcube_db_pgsql.php
@@ -158,6 +158,25 @@ } /** * Returns list of tables in a database * * @return array List of all tables of the current database */ public function list_tables() { // get tables if not cached if ($this->tables === null) { $q = $this->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES" . " WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA NOT IN ('pg_catalog', 'information_schema')" . " ORDER BY TABLE_NAME"); $this->tables = $q ? $q->fetchAll(PDO::FETCH_COLUMN, 0) : array(); } return $this->tables; } /** * Returns PDO DSN string from DSN array * * @param array $dsn DSN parameters