? t.patch
? includes/database.mysqli.inc
Index: database/updates.inc
===================================================================
RCS file: /cvs/drupal/drupal/database/updates.inc,v
retrieving revision 1.130
diff -u -r1.130 updates.inc
--- database/updates.inc	7 Sep 2005 20:32:00 -0000	1.130
+++ database/updates.inc	7 Sep 2005 21:30:13 -0000
@@ -6,6 +6,14 @@
  * All incremental database updates performed between Drupal releases.
  */
 
+// grab a local copy of $db_type
+$db_type = $GLOBALS['db_type'];
+
+// corrects for both mysql and mysqli since the rely upon same SQL
+if (substr($GLOBALS['db_type'], 0, 5) == 'mysql') {
+  $db_type = 'mysql';
+}
+
 // Define the various updates in an array("date : comment" => "function");
 $sql_updates = array(
   "2004-10-31: first update since Drupal 4.5.0 release" => "update_110",
@@ -48,11 +56,12 @@
   "2005-09-07" => "update_147"
 );
 
+
 function update_110() {
   $ret = array();
 
   // TODO: needs PGSQL version
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     /*
     ** Search
     */
@@ -85,7 +94,7 @@
     $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') {
+  elseif ($db_type == 'pgsql') {
     /*
     ** Search
     */
@@ -137,10 +146,10 @@
 
   $ret[] = update_sql("DELETE FROM {variable} WHERE name LIKE 'throttle_%'");
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql('ALTER TABLE {sessions} ADD PRIMARY KEY sid (sid)');
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql('ALTER TABLE {sessions} ADD UNIQUE(sid)');
   }
 
@@ -150,14 +159,14 @@
 function update_112() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($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') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("CREATE TABLE {flood} (
       event varchar(64) NOT NULL default '',
       hostname varchar(128) NOT NULL default '',
@@ -171,10 +180,10 @@
 function update_113() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($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') {
+  elseif ($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} (
@@ -201,7 +210,7 @@
 
 function update_114() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("CREATE TABLE {queue} (
       nid int(10) unsigned NOT NULL,
       uid int(10) unsigned NOT NULL,
@@ -209,7 +218,7 @@
       PRIMARY KEY (nid, uid)
      )");
   }
-  else if ($GLOBALS['db_type'] == 'pgsql') {
+  else if ($db_type == 'pgsql') {
     $ret[] = update_sql("CREATE TABLE {queue} (
       nid integer NOT NULL default '0',
       uid integer NOT NULL default '0',
@@ -243,7 +252,7 @@
     }
   }
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     // Postgres only supports dropping of columns since 7.4
     $ret[] = update_sql("ALTER TABLE {node} DROP votes");
     $ret[] = update_sql("ALTER TABLE {node} DROP score");
@@ -255,10 +264,10 @@
 
 function update_115() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {watchdog} ADD severity tinyint(3) unsigned NOT NULL default '0'");
   }
-  else if ($GLOBALS['db_type'] == 'pgsql') {
+  else if ($db_type == 'pgsql') {
     $ret[] = update_sql('ALTER TABLE {watchdog} ADD severity smallint');
     $ret[] = update_sql('UPDATE {watchdog} SET severity = 0');
     $ret[] = update_sql('ALTER TABLE {watchdog} ALTER COLUMN severity SET NOT NULL');
@@ -273,13 +282,13 @@
 
 function update_117() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("CREATE TABLE {vocabulary_node_types} (
                          vid int(10) NOT NULL default '',
                          type varchar(16) NOT NULL default '',
                          PRIMARY KEY (vid, type))");
   }
-  else if ($GLOBALS['db_type'] == 'pgsql') {
+  else if ($db_type == 'pgsql') {
     $ret[] = update_sql("CREATE TABLE {vocabulary_node_types} (
                          vid serial,
                          type varchar(16) NOT NULL default '',
@@ -299,7 +308,7 @@
       db_query("INSERT INTO {vocabulary_node_types} (vid, type) VALUES (%d, '%s')", $vid, $type);
     }
   }
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {vocabulary} DROP nodes");
   }
   return $ret;
@@ -372,10 +381,10 @@
 function update_123() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {vocabulary} ADD module varchar(255) NOT NULL default ''");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($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");
@@ -394,7 +403,7 @@
 function update_124() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     // redo update_105, correctly creating node_comment_statistics
     $ret[] = update_sql("DROP TABLE IF EXISTS {node_comment_statistics}");
 
@@ -443,7 +452,7 @@
   // Postgres only update.
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'pgsql') {
+  if ($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;
@@ -468,10 +477,10 @@
 
 function update_127() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'pgsql') {
+  if ($db_type == 'pgsql') {
     $ret[] = update_sql("ALTER TABLE {poll} RENAME voters TO polled");
   }
-  else if ($GLOBALS['db_type'] == 'mysql') {
+  else if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {poll} CHANGE voters polled longtext");
   }
   return $ret;
@@ -480,10 +489,10 @@
 function update_128() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql('ALTER TABLE {term_node} ADD PRIMARY KEY (tid,nid)');
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql('ALTER TABLE {term_node} ADD PRIMARY KEY (tid,nid)');
   }
 
@@ -493,10 +502,10 @@
 function update_129() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {vocabulary} ADD tags tinyint(3) unsigned default '0' NOT NULL");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("ALTER TABLE {vocabulary} ADD tags smallint default '0' NOT NULL");
   }
 
@@ -505,10 +514,10 @@
 
 function update_130() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {sessions} ADD cache int(11) NOT NULL default '0' AFTER timestamp");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("ALTER TABLE {sessions} ADD cache int(11) NOT NULL default '0' AFTER timestamp");
   }
   return $ret;
@@ -517,11 +526,11 @@
 function update_131() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {boxes} DROP INDEX title");
     $ret[] = update_sql("ALTER TABLE {boxes} ADD INDEX title (title)");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("DROP INDEX boxes_title_idx");;
     $ret[] = update_sql("CREATE INDEX title ON {boxes} (title)");
   }
@@ -535,7 +544,7 @@
    */
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'pgsql') {
+  if ($db_type == 'pgsql') {
     $ret[] = update_sql('DROP TABLE {search_total}');
     $ret[] = update_sql("CREATE TABLE {search_total} (
               word varchar(50) NOT NULL default '',
@@ -559,10 +568,10 @@
     reply longtext NOT NULL default ''
     )");
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {users} ADD login int(11) NOT NULL default '0'");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("ALTER TABLE {users} ADD login integer");
     $ret[] = update_sql("ALTER TABLE {users} ALTER COLUMN login SET NOT NULL");
     $ret[] = update_sql("ALTER TABLE {users} ALTER COLUMN login SET DEFAULT '0'");
@@ -572,7 +581,7 @@
 }
 
 function update_134() {
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql('ALTER TABLE {blocks} DROP types');
   }
   else {
@@ -602,10 +611,10 @@
 function update_137() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {locales_source} CHANGE location location varchar(255) NOT NULL default ''");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("ALTER TABLE {locales_source} RENAME location TO location_old");
     $ret[] = update_sql("ALTER TABLE {locales_source} ADD location varchar(255)");
     $ret[] = update_sql("UPDATE {locales_source} SET location = location_old");
@@ -632,10 +641,10 @@
 function update_140() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {url_alias} ADD INDEX (src)");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("CREATE INDEX url_alias_src ON {url_alias}(src)");
   }
   return $ret;
@@ -658,10 +667,10 @@
 function update_143() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {contact} CHANGE subject category VARCHAR(255) NOT NULL ");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("ALTER TABLE {contact} RENAME COLUMN subject TO category");
   }
   $ret[] = update_sql("ALTER TABLE {contact} ADD PRIMARY KEY (category)");
@@ -671,10 +680,10 @@
 
 function update_144() {
   $ret = array();
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {node} CHANGE type type VARCHAR(32) NOT NULL");
   }
-  elseif ($GLOBALS['db_type'] == 'pgsql') {
+  elseif ($db_type == 'pgsql') {
     $ret[] = update_sql("ALTER TABLE {node} RENAME type TO type_old");
     $ret[] = update_sql("ALTER TABLE {node} ADD type varchar(32)");
     $ret[] = update_sql("ALTER TABLE {node} ALTER type SET NOT NULL");
@@ -710,7 +719,7 @@
 function update_146() {
   $ret = array();
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($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}");
@@ -766,7 +775,7 @@
     db_query("UPDATE {node_revisions} SET log = '%s' WHERE vid = %d", $row->log, $row->nid);
   }
 
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {book} DROP log");
     $ret[] = update_sql("ALTER TABLE {node} DROP teaser");
     $ret[] = update_sql("ALTER TABLE {node} DROP body");
@@ -783,7 +792,7 @@
   $ret = array();
 
   // this update is mysql only, pgsql should get it right in the first try.
-  if ($GLOBALS['db_type'] == 'mysql') {
+  if ($db_type == 'mysql') {
     $ret[] = update_sql("ALTER TABLE {node_revisions} DROP type");
   }
 
Index: includes/database.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database.inc,v
retrieving revision 1.43
diff -u -r1.43 database.inc
--- includes/database.inc	25 Aug 2005 21:14:16 -0000	1.43
+++ includes/database.inc	7 Sep 2005 21:19:34 -0000
@@ -118,7 +118,7 @@
     else {
       drupal_maintenance_theme();
       drupal_set_title('Unsupported database type');
-      print theme('maintenance_page', '<p>The database type '. theme('placeholder', $db_type) .' is unsupported. Please use either <var>mysql</var> for MySQL databases or <var>pgsql</var> for PostgreSQL databases. The database information is in your <code>settings.php</code> file.</p>
+      print theme('maintenance_page', '<p>The database type '. theme('placeholder', $db_type) .' is unsupported. Please use either <var>mysql</var> for MySQL 3.x &amp; 4.0.x databases, <var>mysqli</var> for MySQL 4.1.x+ databases, or <var>pgsql</var> for PostgreSQL databases. The database information is in your <code>settings.php</code> file.</p>
 <p>For more help, see the <a href="http://drupal.org/node/258">Installation and upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.</p>');
       exit;
     }
Index: sites/default/settings.php
===================================================================
RCS file: /cvs/drupal/drupal/sites/default/settings.php,v
retrieving revision 1.17
diff -u -r1.17 settings.php
--- sites/default/settings.php	28 Aug 2005 18:26:20 -0000	1.17
+++ sites/default/settings.php	7 Sep 2005 21:19:55 -0000
@@ -76,6 +76,7 @@
  *
  * Database URL format:
  * $db_url = 'mysql://username:password@localhost/database';
+ * $db_url = 'mysqli://username:password@localhost/database';
  * $db_url = 'pgsql://username:password@localhost/database';
  */
 $db_url = 'mysql://username:password@localhost/database';