diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | program/include/main.inc | 2 | ||||
-rw-r--r-- | program/include/rcube_mdb2.php | 13 |
3 files changed, 11 insertions, 5 deletions
@@ -1,6 +1,7 @@ CHANGELOG RoundCube Webmail =========================== +- Fix inconsistency when not using default table names (#1486467) - Fix folder rename/delete buttons do not appear on creation of first folder (#1486468) - Fix character set conversion fails on systems where iconv doesn't accept //IGNORE (#1486375) - Login preformance: Create default folders on first login only diff --git a/program/include/main.inc b/program/include/main.inc index 31e4ab558..944cdf708 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -69,7 +69,7 @@ function get_table_name($table) */ function get_sequence_name($sequence) { - // return table name if configured + // return sequence name if configured $config_key = 'db_sequence_'.$sequence; $opt = rcmail::get_instance()->config->get($config_key); diff --git a/program/include/rcube_mdb2.php b/program/include/rcube_mdb2.php index e8dd7e0a7..aca44c963 100644 --- a/program/include/rcube_mdb2.php +++ b/program/include/rcube_mdb2.php @@ -331,10 +331,15 @@ class rcube_mdb2 if (!$this->db_handle || $this->db_mode=='r') return FALSE; - // find sequence name - if ($table && $this->db_provider == 'pgsql') - $table = get_sequence_name($table); - + if ($table) { + if ($this->db_provider == 'pgsql') + // find sequence name + $table = get_sequence_name($table); + else + // resolve table name + $table = get_table_name($table); + } + $id = $this->db_handle->lastInsertID($table); return $this->db_handle->isError($id) ? null : $id; |