Index: modules/system/system.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.install,v
retrieving revision 1.83
diff -u -F^f -r1.83 system.install
--- modules/system/system.install	12 Mar 2007 13:01:10 -0000	1.83
+++ modules/system/system.install	15 Mar 2007 05:37:31 -0000
@@ -571,6 +571,7 @@ function system_install() {
         data longtext,
         PRIMARY KEY (uid),
         UNIQUE KEY name (name),
+        KEY created (created),
         KEY access (access)
       ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
 
@@ -1058,6 +1059,7 @@ function system_install() {
         UNIQUE (name)
       )");
       db_query("CREATE INDEX {users}_access_idx ON {users} (access)");
+      db_query("CREATE INDEX {users}_created_idx ON {users} (created)");
 
       db_query("CREATE TABLE {users_roles} (
         uid int_unsigned NOT NULL default '0',
@@ -3545,6 +3547,35 @@ function system_update_1021() {
 
 
 /**
+ * @defgroup updates-5.x-extra Extra system updates for 5.x
+ * @{
+ */
+
+/**
+ * Add index on users created column.
+ */
+function system_update_1022() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {users} ADD KEY created (created)');
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("CREATE INDEX {users}_created_idx ON {users} (created)");
+      break;
+  }
+  // Also appears as system_update_2004(). Ensure we don't update twice.
+  variable_set('system_update_1022', TRUE);
+  return $ret;
+}
+
+/**
+ * @} End of "defgroup updates-5.x-extra"
+ */
+
+/**
  * @defgroup updates-5.0-to-x.x System updates from 5.0 to x.x
  * @{
  * @todo Start this series of updates at 2000.
@@ -3633,6 +3664,29 @@ function system_update_2003() {
 }
 
 /**
+ * Add index on users created column.
+ */
+function system_update_2004() {
+  // Already run as system_update_1022?
+  if (variable_get('system_update_1022', FALSE)) {
+    variable_del('system_update_1022');
+    return array();
+  }
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {users} ADD KEY created (created)');
+      break;
+
+    case 'pgsql':
+      $ret[] = update_sql("CREATE INDEX {users}_created_idx ON {users} (created)");
+      break;
+  }
+  return $ret;
+}
+
+/**
  * @} End of "defgroup updates-5.0-to-x.x"
  * The next series of updates should start at 3000.
  */
