--- /dev/null
+-- \r
+-- image-user-index.sql\r
+-- \r
+-- Add user/timestamp index to current image versions\r
+-- \r
+\r
+ALTER TABLE /*$wgDBprefix*/image\r
+ ADD INDEX img_usertext_timestamp (img_user_text,img_timestamp);\r
--- /dev/null
+-- \r
+-- oldimage-user-index.sql\r
+-- \r
+-- Add user/timestamp index to old image versions\r
+-- \r
+\r
+ALTER TABLE /*$wgDBprefix*/oldimage\r
+ ADD INDEX oi_usertext_timestamp (oi_user_text,oi_timestamp);\r
PRIMARY KEY img_name (img_name),
+ INDEX img_usertext_timestamp (img_user_text,img_timestamp),
-- Used by Special:Imagelist for sort-by-size
INDEX img_size (img_size),
-
-- Used by Special:Newimages and Special:Imagelist
INDEX img_timestamp (img_timestamp)
oi_minor_mime varbinary(32) NOT NULL default "unknown",
oi_deleted tinyint unsigned NOT NULL default '0',
+ INDEX oi_usertext_timestamp (oi_user_text,oi_timestamp),
INDEX oi_name_timestamp (oi_name,oi_timestamp),
-- oi_archive_name truncated to 14 to avoid key length overflow
INDEX oi_name_archive_name (oi_name,oi_archive_name(14))
}
}
+function do_image_user_index() {
+ global $wgDatabase;
+ if( $wgDatabase->indexExists( 'image', 'img_usertext_timestamp' ) ) {
+ echo "...usertext,timestamp key on image already exists.\n";
+ } else {
+ echo "Adding usertext,timestamp key on image table... ";
+ dbsource( archive("patch-image-user-index.sql"), $wgDatabase );
+ echo "ok\n";
+ }
+}
+
+function do_oldimage_user_index() {
+ global $wgDatabase;
+ if( $wgDatabase->indexExists( 'oldimage', 'oi_usertext_timestamp' ) ) {
+ echo "...usertext,timestamp key on oldimage already exists.\n";
+ } else {
+ echo "Adding usertext,timestamp key on oldimage table... ";
+ dbsource( archive("patch-oldimage-user-index.sql"), $wgDatabase );
+ echo "ok\n";
+ }
+}
+
function do_watchlist_update() {
global $wgDatabase;
$fname = 'do_watchlist_update';
do_restrictions_update(); flush ();
do_archive_user_index(); flush ();
+
+ do_image_user_index(); flush ();
+
+ do_oldimage_user_index(); flush ();
echo "Deleting old default messages (this may take a long time!)..."; flush();
deleteDefaultMessages();