- Use sequence names only with PostgreSQL (#1486018)

release-0.6
alecpl 16 years ago
parent dbfceb4b5c
commit 6b7e8e705a

@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail CHANGELOG RoundCube Webmail
=========================== ===========================
- Use sequence names only with PostgreSQL (#1486018)
- Re-designed User Preferences interface - Re-designed User Preferences interface
- Fix MS SQL DDL (#1486020) - Fix MS SQL DDL (#1486020)
- Fix rcube_mdb2.php: call to setCharset not implemented in mssql driver (#1486019) - Fix rcube_mdb2.php: call to setCharset not implemented in mssql driver (#1486019)

@ -271,7 +271,7 @@ class rcube_contacts extends rcube_addressbook
VALUES (".intval($this->user_id).", ".$this->db->now().", 0, ".join(', ', $a_insert_values).")" VALUES (".intval($this->user_id).", ".$this->db->now().", 0, ".join(', ', $a_insert_values).")"
); );
$insert_id = $this->db->insert_id(get_sequence_name('contacts')); $insert_id = $this->db->insert_id('contacts');
} }
return $insert_id; return $insert_id;

@ -321,16 +321,20 @@ class rcube_mdb2
* Get last inserted record ID * Get last inserted record ID
* For Postgres databases, a sequence name is required * For Postgres databases, a sequence name is required
* *
* @param string Sequence name for increment * @param string Table name (to find the incremented sequence)
* @return mixed ID or FALSE on failure * @return mixed ID or FALSE on failure
* @access public * @access public
*/ */
function insert_id($sequence = '') function insert_id($table = '')
{ {
if (!$this->db_handle || $this->db_mode=='r') if (!$this->db_handle || $this->db_mode=='r')
return FALSE; return FALSE;
$id = $this->db_handle->lastInsertID($sequence); // find sequence name
if ($table && $this->db_provider == 'pgsql')
$table = get_sequence_name($table);
$id = $this->db_handle->lastInsertID($table);
return $this->db_handle->isError($id) ? null : $id; return $this->db_handle->isError($id) ? null : $id;
} }

@ -231,7 +231,7 @@ class rcube_user
call_user_func_array(array($this->db, 'query'), call_user_func_array(array($this->db, 'query'),
array_merge(array($sql), $insert_values)); array_merge(array($sql), $insert_values));
return $this->db->insert_id(get_sequence_name('identities')); return $this->db->insert_id('identities');
} }
@ -386,7 +386,7 @@ class rcube_user
strip_newlines($data['alias'] ? $data['alias'] : $user_email), strip_newlines($data['alias'] ? $data['alias'] : $user_email),
$_SESSION['language']); $_SESSION['language']);
if ($user_id = $dbh->insert_id(get_sequence_name('users'))) if ($user_id = $dbh->insert_id('users'))
{ {
// create rcube_user instance to make plugin hooks work // create rcube_user instance to make plugin hooks work
$user_instance = new rcube_user($user_id); $user_instance = new rcube_user($user_id);

Loading…
Cancel
Save