alecpl
2009-08-04 6b7e8e705a32088a7cb7094eb3204714442cd4e6
- Use sequence names only with PostgreSQL (#1486018)


4 files modified
17 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/include/rcube_contacts.php 2 ●●● patch | view | raw | blame | history
program/include/rcube_mdb2.php 10 ●●●● patch | view | raw | blame | history
program/include/rcube_user.php 4 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
- Use sequence names only with PostgreSQL (#1486018)
- Re-designed User Preferences interface 
- Fix MS SQL DDL (#1486020)
- Fix rcube_mdb2.php: call to setCharset not implemented in mssql driver (#1486019)
program/include/rcube_contacts.php
@@ -271,7 +271,7 @@
         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;
program/include/rcube_mdb2.php
@@ -321,16 +321,20 @@
   * Get last inserted record ID
   * 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
   * @access public
   */
  function insert_id($sequence = '')
  function insert_id($table = '')
    {
    if (!$this->db_handle || $this->db_mode=='r')
      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;
    }
program/include/rcube_user.php
@@ -231,7 +231,7 @@
    call_user_func_array(array($this->db, 'query'),
                        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 @@
      strip_newlines($data['alias'] ? $data['alias'] : $user_email),
      $_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
      $user_instance = new rcube_user($user_id);