--- updates.219danielc.inc	2006-03-13 17:27:35.531250000 -0500
+++ updates.220danielc.inc	2006-03-13 17:54:50.156250000 -0500
@@ -4,77 +4,78 @@
 function system_update_110() {
   $ret = array();
 
-  // TODO: needs PGSQL version
-  if ($GLOBALS['db_type'] == 'mysql') {
-    /*
-    ** Search
-    */
-
-    $ret[] = update_sql('DROP TABLE {search_index}');
-    $ret[] = update_sql("CREATE TABLE {search_index} (
-      word varchar(50) NOT NULL default '',
-      sid int(10) unsigned NOT NULL default '0',
-      type varchar(16) default NULL,
-      fromsid int(10) unsigned NOT NULL default '0',
-      fromtype varchar(16) default NULL,
-      score int(10) unsigned default NULL,
-      KEY sid (sid),
-      KEY fromsid (fromsid),
-      KEY word (word)
-      )");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      /*
+      ** Search
+      */
 
-    $ret[] = update_sql("CREATE TABLE {search_total} (
-      word varchar(50) NOT NULL default '',
-      count int(10) unsigned default NULL,
-      PRIMARY KEY word (word)
-      )");
+      $ret[] = update_sql('DROP TABLE {search_index}');
+      $ret[] = update_sql("CREATE TABLE {search_index} (
+        word varchar(50) NOT NULL default '',
+        sid int(10) unsigned NOT NULL default '0',
+        type varchar(16) default NULL,
+        fromsid int(10) unsigned NOT NULL default '0',
+        fromtype varchar(16) default NULL,
+        score int(10) unsigned default NULL,
+        KEY sid (sid),
+        KEY fromsid (fromsid),
+        KEY word (word)
+        )");
+
+      $ret[] = update_sql("CREATE TABLE {search_total} (
+        word varchar(50) NOT NULL default '',
+        count int(10) unsigned default NULL,
+        PRIMARY KEY word (word)
+        )");
 
+      /*
+      ** Blocks
+      */
+
+      $ret[] = update_sql('ALTER TABLE {blocks} DROP path');
+      $ret[] = update_sql('ALTER TABLE {blocks} ADD visibility tinyint(1) NOT NULL');
+      $ret[] = update_sql('ALTER TABLE {blocks} ADD pages text NOT NULL');
+      break;
 
-    /*
-    ** Blocks
-    */
-
-    $ret[] = update_sql('ALTER TABLE {blocks} DROP path');
-    $ret[] = update_sql('ALTER TABLE {blocks} ADD visibility tinyint(1) NOT NULL');
-    $ret[] = update_sql('ALTER TABLE {blocks} ADD pages text NOT NULL');
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    /*
-    ** Search
-    */
-    $ret[] = update_sql('DROP TABLE {search_index}');
-    $ret[] = update_sql("CREATE TABLE {search_index} (
-      word varchar(50) NOT NULL default '',
-      sid integer NOT NULL default '0',
-      type varchar(16) default NULL,
-      fromsid integer NOT NULL default '0',
-      fromtype varchar(16) default NULL,
-      score integer default NULL
-      )");
-    $ret[] = update_sql("CREATE INDEX {search_index}_sid_idx on {search_index}(sid)");
-    $ret[] = update_sql("CREATE INDEX {search_index}_fromsid_idx on {search_index}(fromsid)");
-    $ret[] = update_sql("CREATE INDEX {search_index}_word_idx on {search_index}(word)");
-
-    $ret[] = update_sql("CREATE TABLE {search_total} (
-      word varchar(50) NOT NULL default '' PRIMARY KEY,
-      count integer default NULL
-      )");
+    case 'pgsql':
+      /*
+      ** Search
+      */
+      $ret[] = update_sql('DROP TABLE {search_index}');
+      $ret[] = update_sql("CREATE TABLE {search_index} (
+        word varchar(50) NOT NULL default '',
+        sid integer NOT NULL default '0',
+        type varchar(16) default NULL,
+        fromsid integer NOT NULL default '0',
+        fromtype varchar(16) default NULL,
+        score integer default NULL
+        )");
+      $ret[] = update_sql("CREATE INDEX {search_index}_sid_idx on {search_index}(sid)");
+      $ret[] = update_sql("CREATE INDEX {search_index}_fromsid_idx on {search_index}(fromsid)");
+      $ret[] = update_sql("CREATE INDEX {search_index}_word_idx on {search_index}(word)");
 
+      $ret[] = update_sql("CREATE TABLE {search_total} (
+        word varchar(50) NOT NULL default '' PRIMARY KEY,
+        count integer default NULL
+        )");
 
-    /*
-    ** Blocks
-    */
-    $ret[] = update_sql('ALTER TABLE {blocks} DROP path');
-
-    $ret[] = update_sql('ALTER TABLE {blocks} ADD visibility smallint');
-    $ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN visibility set default 0");
-    $ret[] = update_sql('UPDATE {blocks} SET visibility = 0');
-    $ret[] = update_sql('ALTER TABLE {blocks} ALTER COLUMN visibility SET NOT NULL');
-    $ret[] = update_sql('ALTER TABLE {blocks} ADD pages text');
-    $ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN pages set default ''");
-    $ret[] = update_sql("UPDATE {blocks} SET pages = ''");
-    $ret[] = update_sql('ALTER TABLE {blocks} ALTER COLUMN pages SET NOT NULL');
 
+      /*
+      ** Blocks
+      */
+      $ret[] = update_sql('ALTER TABLE {blocks} DROP path');
+
+      $ret[] = update_sql('ALTER TABLE {blocks} ADD visibility smallint');
+      $ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN visibility set default 0");
+      $ret[] = update_sql('UPDATE {blocks} SET visibility = 0');
+      $ret[] = update_sql('ALTER TABLE {blocks} ALTER COLUMN visibility SET NOT NULL');
+      $ret[] = update_sql('ALTER TABLE {blocks} ADD pages text');
+      $ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN pages set default ''");
+      $ret[] = update_sql("UPDATE {blocks} SET pages = ''");
+      $ret[] = update_sql('ALTER TABLE {blocks} ALTER COLUMN pages SET NOT NULL');
+      break;
   }
 
   $ret[] = update_sql("DELETE FROM {variable} WHERE name = 'node_cron_last'");
@@ -89,11 +90,15 @@ function system_update_111() {
 
   $ret[] = update_sql("DELETE FROM {variable} WHERE name LIKE 'throttle_%'");
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql('ALTER TABLE {sessions} ADD PRIMARY KEY sid (sid)');
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql('ALTER TABLE {sessions} ADD UNIQUE(sid)');
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {sessions} ADD PRIMARY KEY sid (sid)');
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql('ALTER TABLE {sessions} ADD UNIQUE(sid)');
+      break;
   }
 
   return $ret;
@@ -102,19 +107,23 @@ function system_update_111() {
 function system_update_112() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("CREATE TABLE {flood} (
-      event varchar(64) NOT NULL default '',
-      hostname varchar(128) NOT NULL default '',
-      timestamp int(11) NOT NULL default '0'
-     );");
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("CREATE TABLE {flood} (
-      event varchar(64) NOT NULL default '',
-      hostname varchar(128) NOT NULL default '',
-      timestamp integer NOT NULL default 0
-     );");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("CREATE TABLE {flood} (
+        event varchar(64) NOT NULL default '',
+        hostname varchar(128) NOT NULL default '',
+        timestamp int(11) NOT NULL default '0'
+       );");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("CREATE TABLE {flood} (
+        event varchar(64) NOT NULL default '',
+        hostname varchar(128) NOT NULL default '',
+        timestamp integer NOT NULL default 0
+       );");
+      break;
   }
 
   return $ret;
@@ -123,26 +132,29 @@ function system_update_112() {
 function system_update_113() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql('ALTER TABLE {accesslog} ADD aid int(10) NOT NULL auto_increment, ADD PRIMARY KEY (aid)');
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("SELECT * INTO TEMPORARY {accesslog}_t FROM {accesslog}");
-    $ret[] = update_sql("DROP TABLE {accesslog}");
-    $ret[] = update_sql("CREATE TABLE {accesslog} (
-      aid serial,
-      title varchar(255) default NULL,
-      path varchar(255) default NULL,
-      url varchar(255) default NULL,
-      hostname varchar(128) default NULL,
-      uid integer default '0',
-      timestamp integer NOT NULL default '0'
-    )");
-    $ret[] = update_sql("INSERT INTO {accesslog} (title, path, url, hostname, uid, timestamp) SELECT title, path, url, hostname, uid, timestamp FROM {accesslog}_t");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {accesslog} ADD aid int(10) NOT NULL auto_increment, ADD PRIMARY KEY (aid)');
+      break;
 
-    $ret[] = update_sql("DROP TABLE {accesslog}_t");
-    $ret[] = update_sql("CREATE INDEX {accesslog}_timestamp_idx ON {accesslog} (timestamp);");
+    case 'pgsql':
+      $ret[] = update_sql("SELECT * INTO TEMPORARY {accesslog}_t FROM {accesslog}");
+      $ret[] = update_sql("DROP TABLE {accesslog}");
+      $ret[] = update_sql("CREATE TABLE {accesslog} (
+        aid serial,
+        title varchar(255) default NULL,
+        path varchar(255) default NULL,
+        url varchar(255) default NULL,
+        hostname varchar(128) default NULL,
+        uid integer default '0',
+        timestamp integer NOT NULL default '0'
+      )");
+      $ret[] = update_sql("INSERT INTO {accesslog} (title, path, url, hostname, uid, timestamp) SELECT title, path, url, hostname, uid, timestamp FROM {accesslog}_t");
 
+      $ret[] = update_sql("DROP TABLE {accesslog}_t");
+      $ret[] = update_sql("CREATE INDEX {accesslog}_timestamp_idx ON {accesslog} (timestamp);");
+      break;
   }
 
   // Flush the menu cache:
@@ -153,23 +165,28 @@ function system_update_113() {
 
 function system_update_114() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("CREATE TABLE {queue} (
-      nid int(10) unsigned NOT NULL,
-      uid int(10) unsigned NOT NULL,
-      vote int(3) NOT NULL default '0',
-      PRIMARY KEY (nid, uid)
-     )");
-  }
-  else if ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("CREATE TABLE {queue} (
-      nid integer NOT NULL default '0',
-      uid integer NOT NULL default '0',
-      vote integer NOT NULL default '0',
-      PRIMARY KEY (nid, uid)
-    )");
-    $ret[] = update_sql("CREATE INDEX {queue}_nid_idx ON queue(nid)");
-    $ret[] = update_sql("CREATE INDEX {queue}_uid_idx ON queue(uid)");
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("CREATE TABLE {queue} (
+        nid int(10) unsigned NOT NULL,
+        uid int(10) unsigned NOT NULL,
+        vote int(3) NOT NULL default '0',
+        PRIMARY KEY (nid, uid)
+       )");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("CREATE TABLE {queue} (
+        nid integer NOT NULL default '0',
+        uid integer NOT NULL default '0',
+        vote integer NOT NULL default '0',
+        PRIMARY KEY (nid, uid)
+      )");
+      $ret[] = update_sql("CREATE INDEX {queue}_nid_idx ON queue(nid)");
+      $ret[] = update_sql("CREATE INDEX {queue}_uid_idx ON queue(uid)");
+      break;
   }
 
   $result = db_query("SELECT nid, votes, score, users FROM {node}");
@@ -217,18 +234,24 @@ function system_update_116() {
 
 function system_update_117() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("CREATE TABLE {vocabulary_node_types} (
-                         vid int(10) NOT NULL default '0',
-                         type varchar(16) NOT NULL default '',
-                         PRIMARY KEY (vid, type))");
-  }
-  else if ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("CREATE TABLE {vocabulary_node_types} (
-                         vid serial,
-                         type varchar(16) NOT NULL default '',
-                          PRIMARY KEY (vid, type)) ");
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("CREATE TABLE {vocabulary_node_types} (
+                           vid int(10) NOT NULL default '0',
+                           type varchar(16) NOT NULL default '',
+                           PRIMARY KEY (vid, type))");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("CREATE TABLE {vocabulary_node_types} (
+                           vid serial,
+                           type varchar(16) NOT NULL default '',
+                            PRIMARY KEY (vid, type)) ");
+      break;
   }
+
   return $ret;
 }
 
@@ -317,14 +340,18 @@ function system_update_122() {
 function system_update_123() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {vocabulary} ADD module varchar(255) NOT NULL default ''");
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("ALTER TABLE {vocabulary} ADD module varchar(255)");
-    $ret[] = update_sql("UPDATE {vocabulary} SET module = ''");
-    $ret[] = update_sql("ALTER TABLE {vocabulary} ALTER COLUMN module SET NOT NULL");
-    $ret[] = update_sql("ALTER TABLE {vocabulary} ALTER COLUMN module SET DEFAULT ''");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {vocabulary} ADD module varchar(255) NOT NULL default ''");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("ALTER TABLE {vocabulary} ADD module varchar(255)");
+      $ret[] = update_sql("UPDATE {vocabulary} SET module = ''");
+      $ret[] = update_sql("ALTER TABLE {vocabulary} ALTER COLUMN module SET NOT NULL");
+      $ret[] = update_sql("ALTER TABLE {vocabulary} ALTER COLUMN module SET DEFAULT ''");
+      break;
   }
 
   $ret[] = update_sql("UPDATE {vocabulary} SET module = 'taxonomy'");
@@ -339,36 +366,39 @@ function system_update_123() {
 function system_update_124() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    // redo update_105, correctly creating node_comment_statistics
-    $ret[] = update_sql("DROP TABLE IF EXISTS {node_comment_statistics}");
-
-    $ret[] = update_sql("CREATE TABLE {node_comment_statistics} (
-      nid int(10) unsigned NOT NULL auto_increment,
-      last_comment_timestamp int(11) NOT NULL default '0',
-      last_comment_name varchar(60) default NULL,
-      last_comment_uid int(10) NOT NULL default '0',
-      comment_count int(10) unsigned NOT NULL default '0',
-      PRIMARY KEY (nid),
-      KEY node_comment_timestamp (last_comment_timestamp)
-      )");
-  }
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      // redo update_105, correctly creating node_comment_statistics
+      $ret[] = update_sql("DROP TABLE IF EXISTS {node_comment_statistics}");
 
-  else {
-    // also drop incorrectly named table for PostgreSQL
-    $ret[] = update_sql("DROP TABLE {node}_comment_statistics");
+      $ret[] = update_sql("CREATE TABLE {node_comment_statistics} (
+        nid int(10) unsigned NOT NULL auto_increment,
+        last_comment_timestamp int(11) NOT NULL default '0',
+        last_comment_name varchar(60) default NULL,
+        last_comment_uid int(10) NOT NULL default '0',
+        comment_count int(10) unsigned NOT NULL default '0',
+        PRIMARY KEY (nid),
+        KEY node_comment_timestamp (last_comment_timestamp)
+        )");
+      break;
 
-    $ret[] = update_sql("CREATE TABLE {node_comment_statistics} (
-      nid integer NOT NULL,
-      last_comment_timestamp integer NOT NULL default '0',
-      last_comment_name varchar(60)  default NULL,
-      last_comment_uid integer NOT NULL default '0',
-      comment_count integer NOT NULL default '0',
-      PRIMARY KEY (nid)
-    )");
+    case 'pgsql':
+      // also drop incorrectly named table for PostgreSQL
+      $ret[] = update_sql("DROP TABLE {node}_comment_statistics");
+
+      $ret[] = update_sql("CREATE TABLE {node_comment_statistics} (
+        nid integer NOT NULL,
+        last_comment_timestamp integer NOT NULL default '0',
+        last_comment_name varchar(60)  default NULL,
+        last_comment_uid integer NOT NULL default '0',
+        comment_count integer NOT NULL default '0',
+        PRIMARY KEY (nid)
+      )");
 
-    $ret[] = update_sql("CREATE INDEX {node_comment_statistics}_timestamp_idx ON {node_comment_statistics}(last_comment_timestamp);
-");
+      $ret[] = update_sql("CREATE INDEX {node_comment_statistics}_timestamp_idx ON {node_comment_statistics}(last_comment_timestamp);
+  ");
+      break;
   }
 
   // initialize table
@@ -385,19 +415,23 @@ function system_update_124() {
 }
 
 function system_update_125() {
-  // Postgres only update.
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'pgsql') {
-
-    $ret[] = update_sql("CREATE OR REPLACE FUNCTION if(boolean, anyelement, anyelement) RETURNS anyelement AS '
-          SELECT CASE WHEN $1 THEN $2 ELSE $3 END;
-        ' LANGUAGE 'sql'");
-
-    $ret[] = update_sql("CREATE FUNCTION greatest(integer, integer, integer) RETURNS integer AS '
-                          SELECT greatest($1, greatest($2, $3));
-                        ' LANGUAGE 'sql'");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      // PostgreSQL only update.
+      break;
 
+    case 'pgsql':
+      $ret[] = update_sql("CREATE OR REPLACE FUNCTION if(boolean, anyelement, anyelement) RETURNS anyelement AS '
+            SELECT CASE WHEN $1 THEN $2 ELSE $3 END;
+          ' LANGUAGE 'sql'");
+
+      $ret[] = update_sql("CREATE FUNCTION greatest(integer, integer, integer) RETURNS integer AS '
+                            SELECT greatest($1, greatest($2, $3));
+                          ' LANGUAGE 'sql'");
+      break;
   }
 
   return $ret;
@@ -413,23 +447,33 @@ function system_update_126() {
 
 function system_update_127() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("ALTER TABLE {poll} RENAME voters TO polled");
-  }
-  else if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {poll} CHANGE voters polled longtext");
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {poll} CHANGE voters polled longtext");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("ALTER TABLE {poll} RENAME voters TO polled");
+      break;
   }
+
   return $ret;
 }
 
 function system_update_128() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql('ALTER TABLE {term_node} ADD PRIMARY KEY (tid,nid)');
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql('ALTER TABLE {term_node} ADD PRIMARY KEY (tid,nid)');
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {term_node} ADD PRIMARY KEY (tid,nid)');
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql('ALTER TABLE {term_node} ADD PRIMARY KEY (tid,nid)');
+      break;
   }
 
   return $ret;
@@ -438,11 +482,15 @@ function system_update_128() {
 function system_update_129() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {vocabulary} ADD tags tinyint(3) unsigned default '0' NOT NULL");
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    db_add_column($ret, 'vocabulary', 'tags', 'smallint', array('default' => 0, 'not null' => TRUE));
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {vocabulary} ADD tags tinyint(3) unsigned default '0' NOT NULL");
+      break;
+
+    case 'pgsql':
+      db_add_column($ret, 'vocabulary', 'tags', 'smallint', array('default' => 0, 'not null' => TRUE));
+      break;
   }
 
   return $ret;
@@ -460,36 +508,44 @@   // is needed for the basic functioning
 function system_update_131() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {boxes} DROP INDEX title");
-    // Removed recreation of the index, which is not present in the db schema
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("ALTER TABLE {boxes} DROP CONSTRAINT {boxes}_title_key");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {boxes} DROP INDEX title");
+      // Removed recreation of the index, which is not present in the db schema
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("ALTER TABLE {boxes} DROP CONSTRAINT {boxes}_title_key");
+      break;
   }
 
   return $ret;
 }
 
 function system_update_132() {
-  /**
-   * PostgreSQL only update.
-   */
   $ret = array();
 
   if (!variable_get('update_132_done', FALSE)) {
-    if ($GLOBALS['db_type'] == 'pgsql') {
-      $ret[] = update_sql('DROP TABLE {search_total}');
-      $ret[] = update_sql("CREATE TABLE {search_total} (
-        word varchar(50) NOT NULL default '',
-             count float default NULL)");
-      $ret[] = update_sql('CREATE INDEX {search_total}_word_idx ON {search_total}(word)');
+    switch ($GLOBALS['db_type']) {
+      case 'mysql':
+      case 'mysqli':
+        // PostgreSQL only update.
+        break;
 
-      /**
-       * Wipe the search index
-       */
-      include_once './modules/search.module';
-      search_wipe();
+      case 'pgsql':
+        $ret[] = update_sql('DROP TABLE {search_total}');
+        $ret[] = update_sql("CREATE TABLE {search_total} (
+          word varchar(50) NOT NULL default '',
+               count float default NULL)");
+        $ret[] = update_sql('CREATE INDEX {search_total}_word_idx ON {search_total}(word)');
+
+        /*
+         * Wipe the search index
+         */
+        include_once './modules/search.module';
+        search_wipe();
+        break;
     }
 
     variable_del('update_132_done');
@@ -501,19 +557,23 @@ function system_update_132() {
 function system_update_133() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("CREATE TABLE {contact} (
-      subject varchar(255) NOT NULL default '',
-      recipients longtext NOT NULL default '',
-      reply longtext NOT NULL default ''
-      )");
-    $ret[] = update_sql("ALTER TABLE {users} ADD login int(11) NOT NULL default '0'");
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    // Table {contact} is changed in update_143() so I have moved it's creation there.
-    // It was never created here for postgres because of errors.
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("CREATE TABLE {contact} (
+        subject varchar(255) NOT NULL default '',
+        recipients longtext NOT NULL default '',
+        reply longtext NOT NULL default ''
+        )");
+      $ret[] = update_sql("ALTER TABLE {users} ADD login int(11) NOT NULL default '0'");
+      break;
 
-    db_add_column($ret, 'users', 'login', 'int', array('default' => 0, 'not null' => TRUE));
+    case 'pgsql':
+      // Table {contact} is changed in update_143() so I have moved it's creation there.
+      // It was never created here for postgres because of errors.
+
+      db_add_column($ret, 'users', 'login', 'int', array('default' => 0, 'not null' => TRUE));
+      break;
   }
 
   return $ret;
@@ -562,12 +622,17 @@ function system_update_137() {
   $ret = array();
 
   if (!variable_get('update_137_done', FALSE)) {
-    if ($GLOBALS['db_type'] == 'mysql') {
-      $ret[] = update_sql("ALTER TABLE {locales_source} CHANGE location location varchar(255) NOT NULL default ''");
-    }
-    elseif ($GLOBALS['db_type'] == 'pgsql') {
-      db_change_column($ret, 'locales_source', 'location', 'location', 'varchar(255)', array('not null' => TRUE, 'default' => "''"));
+    switch ($GLOBALS['db_type']) {
+      case 'mysql':
+      case 'mysqli':
+        $ret[] = update_sql("ALTER TABLE {locales_source} CHANGE location location varchar(255) NOT NULL default ''");
+        break;
+
+      case 'pgsql':
+        db_change_column($ret, 'locales_source', 'location', 'location', 'varchar(255)', array('not null' => TRUE, 'default' => "''"));
+        break;
     }
+
     variable_del('update_137_done');
   }
 
@@ -599,12 +664,17 @@ function system_update_139() {
 function system_update_140() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {url_alias} ADD INDEX (src)");
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("CREATE INDEX {url_alias}_src_idx ON {url_alias}(src)");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {url_alias} ADD INDEX (src)");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("CREATE INDEX {url_alias}_src_idx ON {url_alias}(src)");
+      break;
   }
+
   return $ret;
 }
 
@@ -628,17 +698,21 @@   // is needed for the basic functioning
 function system_update_143() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {contact} CHANGE subject category VARCHAR(255) NOT NULL ");
-    $ret[] = update_sql("ALTER TABLE {contact} ADD PRIMARY KEY (category)");
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    // Why the table is created here? See update_133().
-    $ret[] = update_sql("CREATE TABLE {contact} (
-      category varchar(255) NOT NULL default '',
-      recipients text NOT NULL default '',
-      reply text NOT NULL default '',
-      PRIMARY KEY (category))");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {contact} CHANGE subject category VARCHAR(255) NOT NULL ");
+      $ret[] = update_sql("ALTER TABLE {contact} ADD PRIMARY KEY (category)");
+      break;
+
+    case 'pgsql':
+      // Why the table is created here? See update_133().
+      $ret[] = update_sql("CREATE TABLE {contact} (
+        category varchar(255) NOT NULL default '',
+        recipients text NOT NULL default '',
+        reply text NOT NULL default '',
+        PRIMARY KEY (category))");
+      break;
   }
 
   return $ret;
@@ -646,18 +720,24 @@ function system_update_143() {
 
 function system_update_144() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {node} CHANGE type type VARCHAR(32) NOT NULL");
-  }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
-    $ret[] = update_sql("DROP INDEX {node}_type_idx"); // Drop indexes using "type" column
-    $ret[] = update_sql("DROP INDEX {node}_title_idx");
-    db_change_column($ret, 'node', 'type', 'type', 'varchar(32)', array('not null' => TRUE, 'default' => "''"));
-    // Let's recreate the indexes
-    $ret[] = update_sql("CREATE INDEX {node}_type_idx ON {node}(type)");
-    $ret[] = update_sql("CREATE INDEX {node}_title_type_idx ON {node}(title,type)");
-    $ret[] = update_sql("CREATE INDEX {node}_status_type_nid_idx ON {node}(status,type,nid)");
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {node} CHANGE type type VARCHAR(32) NOT NULL");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("DROP INDEX {node}_type_idx"); // Drop indexes using "type" column
+      $ret[] = update_sql("DROP INDEX {node}_title_idx");
+      db_change_column($ret, 'node', 'type', 'type', 'varchar(32)', array('not null' => TRUE, 'default' => "''"));
+      // Let's recreate the indexes
+      $ret[] = update_sql("CREATE INDEX {node}_type_idx ON {node}(type)");
+      $ret[] = update_sql("CREATE INDEX {node}_title_type_idx ON {node}(title,type)");
+      $ret[] = update_sql("CREATE INDEX {node}_status_type_nid_idx ON {node}(status,type,nid)");
+      break;
   }
+
   return $ret;
 }
 
@@ -703,86 +783,90 @@ function system_update_145() {
 function system_update_146() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("CREATE TABLE {node_revisions}
-                                SELECT nid, nid AS vid, uid, type, title, body, teaser, changed AS timestamp, format
-                                FROM {node}");
-
-    $ret[] = update_sql("ALTER TABLE {node_revisions} CHANGE nid nid int(10) unsigned NOT NULL default '0'");
-    $ret[] = update_sql("ALTER TABLE {node_revisions} ADD log longtext");
-
-    $ret[] = update_sql("ALTER TABLE {node} ADD vid int(10) unsigned NOT NULL default '0'");
-    $ret[] = update_sql("ALTER TABLE {files} ADD vid int(10) unsigned NOT NULL default '0'");
-    $ret[] = update_sql("ALTER TABLE {book} ADD vid int(10) unsigned NOT NULL default '0'");
-    $ret[] = update_sql("ALTER TABLE {forum} ADD vid int(10) unsigned NOT NULL default '0'");
-
-    $ret[] = update_sql("ALTER TABLE {book} DROP PRIMARY KEY");
-    $ret[] = update_sql("ALTER TABLE {forum} DROP PRIMARY KEY");
-    $ret[] = update_sql("ALTER TABLE {files} DROP PRIMARY KEY");
-
-    $ret[] = update_sql("UPDATE {node} SET vid = nid");
-    $ret[] = update_sql("UPDATE {forum} SET vid = nid");
-    $ret[] = update_sql("UPDATE {book} SET vid = nid");
-    $ret[] = update_sql("UPDATE {files} SET vid = nid");
-
-    $ret[] = update_sql("ALTER TABLE {book} ADD PRIMARY KEY vid (vid)");
-    $ret[] = update_sql("ALTER TABLE {forum} ADD PRIMARY KEY vid (vid)");
-    $ret[] = update_sql("ALTER TABLE {node_revisions} ADD PRIMARY KEY vid (vid)");
-    $ret[] = update_sql("ALTER TABLE {node_revisions} ADD KEY nid (nid)");
-    $ret[] = update_sql("ALTER TABLE {node_revisions} ADD KEY uid (uid)");
-
-    $ret[] = update_sql("CREATE TABLE {old_revisions} SELECT nid, type, revisions FROM {node} WHERE revisions != ''");
-
-    $ret[] = update_sql("ALTER TABLE {book} ADD KEY nid (nid)");
-    $ret[] = update_sql("ALTER TABLE {forum} ADD KEY nid (nid)");
-    $ret[] = update_sql("ALTER TABLE {files} ADD KEY fid (fid)");
-    $ret[] = update_sql("ALTER TABLE {files} ADD KEY vid (vid)");
-    $vid = db_next_id('{node}_nid');
-    $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{node_revisions}_vid', $vid)");
-  }
-  else { // pgsql
-    $ret[] = update_sql("CREATE TABLE {node_revisions} (
-      nid integer NOT NULL default '0',
-      vid integer NOT NULL default '0',
-      uid integer NOT NULL default '0',
-      title varchar(128) NOT NULL default '',
-      body text NOT NULL default '',
-      teaser text NOT NULL default '',
-      log text NOT NULL default '',
-      timestamp integer NOT NULL default '0',
-      format int NOT NULL default '0',
-      PRIMARY KEY (vid))");
-    $ret[] = update_sql("INSERT INTO {node_revisions} (nid, vid, uid, title, body, teaser, timestamp, format)
-      SELECT nid, nid AS vid, uid, title, body, teaser, changed AS timestamp, format
-      FROM {node}");
-    $ret[] = update_sql('CREATE INDEX {node_revisions}_nid_idx ON {node_revisions}(nid)');
-    $ret[] = update_sql('CREATE INDEX {node_revisions}_uid_idx ON {node_revisions}(uid)');
-    $vid = db_next_id('{node}_nid');
-    $ret[] = update_sql("CREATE SEQUENCE {node_revisions}_vid_seq INCREMENT 1 START $vid");
-
-    db_add_column($ret, 'node',  'vid', 'int', array('not null' => TRUE, 'default' => 0));
-    db_add_column($ret, 'files', 'vid', 'int', array('not null' => TRUE, 'default' => 0));
-    db_add_column($ret, 'book',  'vid', 'int', array('not null' => TRUE, 'default' => 0));
-    db_add_column($ret, 'forum', 'vid', 'int', array('not null' => TRUE, 'default' => 0));
-
-    $ret[] = update_sql("ALTER TABLE {book} DROP CONSTRAINT {book}_pkey");
-    $ret[] = update_sql("ALTER TABLE {forum} DROP CONSTRAINT {forum}_pkey");
-    $ret[] = update_sql("ALTER TABLE {files} DROP CONSTRAINT {files}_pkey");
-
-    $ret[] = update_sql("UPDATE {node} SET vid = nid");
-    $ret[] = update_sql("UPDATE {forum} SET vid = nid");
-    $ret[] = update_sql("UPDATE {book} SET vid = nid");
-    $ret[] = update_sql("UPDATE {files} SET vid = nid");
-
-    $ret[] = update_sql("ALTER TABLE {book} ADD PRIMARY KEY (vid)");
-    $ret[] = update_sql("ALTER TABLE {forum} ADD PRIMARY KEY (vid)");
-
-    $ret[] = update_sql("CREATE TABLE {old_revisions} AS SELECT nid, type, revisions FROM {node} WHERE revisions != ''");
-
-    $ret[] = update_sql('CREATE INDEX {node}_vid_idx ON {node}(vid)');
-    $ret[] = update_sql('CREATE INDEX {forum}_nid_idx ON {forum}(nid)');
-    $ret[] = update_sql('CREATE INDEX {files}_fid_idx ON {files}(fid)');
-    $ret[] = update_sql('CREATE INDEX {files}_vid_idx ON {files}(vid)');
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("CREATE TABLE {node_revisions}
+                                  SELECT nid, nid AS vid, uid, type, title, body, teaser, changed AS timestamp, format
+                                  FROM {node}");
+
+      $ret[] = update_sql("ALTER TABLE {node_revisions} CHANGE nid nid int(10) unsigned NOT NULL default '0'");
+      $ret[] = update_sql("ALTER TABLE {node_revisions} ADD log longtext");
+
+      $ret[] = update_sql("ALTER TABLE {node} ADD vid int(10) unsigned NOT NULL default '0'");
+      $ret[] = update_sql("ALTER TABLE {files} ADD vid int(10) unsigned NOT NULL default '0'");
+      $ret[] = update_sql("ALTER TABLE {book} ADD vid int(10) unsigned NOT NULL default '0'");
+      $ret[] = update_sql("ALTER TABLE {forum} ADD vid int(10) unsigned NOT NULL default '0'");
+
+      $ret[] = update_sql("ALTER TABLE {book} DROP PRIMARY KEY");
+      $ret[] = update_sql("ALTER TABLE {forum} DROP PRIMARY KEY");
+      $ret[] = update_sql("ALTER TABLE {files} DROP PRIMARY KEY");
+
+      $ret[] = update_sql("UPDATE {node} SET vid = nid");
+      $ret[] = update_sql("UPDATE {forum} SET vid = nid");
+      $ret[] = update_sql("UPDATE {book} SET vid = nid");
+      $ret[] = update_sql("UPDATE {files} SET vid = nid");
+
+      $ret[] = update_sql("ALTER TABLE {book} ADD PRIMARY KEY vid (vid)");
+      $ret[] = update_sql("ALTER TABLE {forum} ADD PRIMARY KEY vid (vid)");
+      $ret[] = update_sql("ALTER TABLE {node_revisions} ADD PRIMARY KEY vid (vid)");
+      $ret[] = update_sql("ALTER TABLE {node_revisions} ADD KEY nid (nid)");
+      $ret[] = update_sql("ALTER TABLE {node_revisions} ADD KEY uid (uid)");
+
+      $ret[] = update_sql("CREATE TABLE {old_revisions} SELECT nid, type, revisions FROM {node} WHERE revisions != ''");
+
+      $ret[] = update_sql("ALTER TABLE {book} ADD KEY nid (nid)");
+      $ret[] = update_sql("ALTER TABLE {forum} ADD KEY nid (nid)");
+      $ret[] = update_sql("ALTER TABLE {files} ADD KEY fid (fid)");
+      $ret[] = update_sql("ALTER TABLE {files} ADD KEY vid (vid)");
+      $vid = db_next_id('{node}_nid');
+      $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{node_revisions}_vid', $vid)");
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("CREATE TABLE {node_revisions} (
+        nid integer NOT NULL default '0',
+        vid integer NOT NULL default '0',
+        uid integer NOT NULL default '0',
+        title varchar(128) NOT NULL default '',
+        body text NOT NULL default '',
+        teaser text NOT NULL default '',
+        log text NOT NULL default '',
+        timestamp integer NOT NULL default '0',
+        format int NOT NULL default '0',
+        PRIMARY KEY (vid))");
+      $ret[] = update_sql("INSERT INTO {node_revisions} (nid, vid, uid, title, body, teaser, timestamp, format)
+        SELECT nid, nid AS vid, uid, title, body, teaser, changed AS timestamp, format
+        FROM {node}");
+      $ret[] = update_sql('CREATE INDEX {node_revisions}_nid_idx ON {node_revisions}(nid)');
+      $ret[] = update_sql('CREATE INDEX {node_revisions}_uid_idx ON {node_revisions}(uid)');
+      $vid = db_next_id('{node}_nid');
+      $ret[] = update_sql("CREATE SEQUENCE {node_revisions}_vid_seq INCREMENT 1 START $vid");
+
+      db_add_column($ret, 'node',  'vid', 'int', array('not null' => TRUE, 'default' => 0));
+      db_add_column($ret, 'files', 'vid', 'int', array('not null' => TRUE, 'default' => 0));
+      db_add_column($ret, 'book',  'vid', 'int', array('not null' => TRUE, 'default' => 0));
+      db_add_column($ret, 'forum', 'vid', 'int', array('not null' => TRUE, 'default' => 0));
+
+      $ret[] = update_sql("ALTER TABLE {book} DROP CONSTRAINT {book}_pkey");
+      $ret[] = update_sql("ALTER TABLE {forum} DROP CONSTRAINT {forum}_pkey");
+      $ret[] = update_sql("ALTER TABLE {files} DROP CONSTRAINT {files}_pkey");
+
+      $ret[] = update_sql("UPDATE {node} SET vid = nid");
+      $ret[] = update_sql("UPDATE {forum} SET vid = nid");
+      $ret[] = update_sql("UPDATE {book} SET vid = nid");
+      $ret[] = update_sql("UPDATE {files} SET vid = nid");
+
+      $ret[] = update_sql("ALTER TABLE {book} ADD PRIMARY KEY (vid)");
+      $ret[] = update_sql("ALTER TABLE {forum} ADD PRIMARY KEY (vid)");
+
+      $ret[] = update_sql("CREATE TABLE {old_revisions} AS SELECT nid, type, revisions FROM {node} WHERE revisions != ''");
+
+      $ret[] = update_sql('CREATE INDEX {node}_vid_idx ON {node}(vid)');
+      $ret[] = update_sql('CREATE INDEX {forum}_nid_idx ON {forum}(nid)');
+      $ret[] = update_sql('CREATE INDEX {files}_fid_idx ON {files}(fid)');
+      $ret[] = update_sql('CREATE INDEX {files}_vid_idx ON {files}(vid)');
+      break;
   }
 
   // Move logs too.
@@ -803,9 +887,15 @@ function system_update_146() {
 function system_update_147() {
   $ret = array();
 
-  // this update is mysql only, pgsql should get it right in the first try.
-  if ($GLOBALS['db_type'] == 'mysql') {
-    $ret[] = update_sql("ALTER TABLE {node_revisions} DROP type");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {node_revisions} DROP type");
+      break;
+
+    case 'pgsql':
+      // MySQL only update.
+      break;
   }
 
   return $ret;
@@ -1301,9 +1391,18 @@ function system_update_162() {
 
 function system_update_163() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql' || $GLOBALS['db_type'] == 'mysqli') {
-    $ret[] = update_sql('ALTER TABLE {cache} CHANGE data data LONGBLOB');
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {cache} CHANGE data data LONGBLOB');
+      break;
+
+    case 'pgsql':
+      // MySQL only update.
+      break;
   }
+
   return $ret;
 }
 
