ar_len INTEGER NULL
);
CREATE INDEX archive_name_title_timestamp ON archive (ar_namespace,ar_title,ar_timestamp);
+CREATE INDEX archive_user_text ON archive (ar_user_text);
CREATE TABLE redirect (
img_description TEXT NOT NULL,
img_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
img_user_text TEXT NOT NULL,
- img_timestamp TIMESTAMPTZ
+ img_timestamp TIMESTAMPTZ,
+ img_sha1 TEXT NOT NULL DEFAULT ''
);
CREATE INDEX img_size_idx ON image (img_size);
CREATE INDEX img_timestamp_idx ON image (img_timestamp);
+CREATE INDEX img_sha1 ON image (img_sha1);
CREATE TABLE oldimage (
oi_name TEXT NOT NULL REFERENCES image(img_name),
oi_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
oi_user_text TEXT NOT NULL,
oi_timestamp TIMESTAMPTZ NOT NULL,
- oi_metadata BYTEA NOT NULL,
+ oi_metadata BYTEA NOT NULL DEFAULT '',
oi_media_type TEXT NULL,
oi_major_mime TEXT NOT NULL DEFAULT 'unknown',
oi_minor_mime TEXT NOT NULL DEFAULT 'unknown',
- oi_deleted CHAR NOT NULL DEFAULT '0'
+ oi_deleted CHAR NOT NULL DEFAULT '0',
+ oi_sha1 TEXT NOT NULL DEFAULT ''
);
-CREATE INDEX oi_name_timestamp ON oldimage (oi_name,oi_timestamp);
+CREATE INDEX oi_name_timestamp ON oldimage (oi_name,oi_timestamp);
CREATE INDEX oi_name_archive_name ON oldimage (oi_name,oi_archive_name);
+CREATE INDEX oi_sha1 ON oldimage (oi_sha1);
CREATE TABLE filearchive (
$newcols = array(
array("archive", "ar_len", "INTEGER"),
array("archive", "ar_page", "INTEGER"),
+ array("image", "img_sha1", "TEXT NOT NULL DEFAULT ''"),
array("ipblocks", "ipb_anon_only", "CHAR NOT NULL DEFAULT '0'"),
array("ipblocks", "ipb_block_email", "CHAR NOT NULL DEFAULT '0'"),
array("ipblocks", "ipb_create_account", "CHAR NOT NULL DEFAULT '1'"),
array("logging", "log_params", "TEXT"),
array("mwuser", "user_editcount", "INTEGER"),
array("mwuser", "user_newpass_time", "TIMESTAMPTZ"),
- array("oldimage", "oi_metadata", "BYTEA NOT NULL"),
- array("oldimage", "oi_media_type", "TEXT NOT NULL"),
+ array("oldimage", "oi_deleted", "CHAR NOT NULL DEFAULT '0'"),
+ array("oldimage", "oi_metadata", "BYTEA NOT NULL DEFAULT ''"),
+ array("oldimage", "oi_media_type", "TEXT"),
array("oldimage", "oi_major_mime", "TEXT NOT NULL DEFAULT 'unknown'"),
array("oldimage", "oi_minor_mime", "TEXT NOT NULL DEFAULT 'unknown'"),
- array("oldimage", "oi_deleted", "CHAR NOT NULL DEFAULT '0'"),
+ array("oldimage", "oi_sha1", "TEXT NOT NULL DEFAULT ''"),
array("page_restrictions", "pr_id", "INTEGER NOT NULL UNIQUE DEFAULT nextval('pr_id_val')"),
array("recentchanges", "rc_deleted", "INTEGER NOT NULL DEFAULT 0"),
array("recentchanges", "rc_log_action", "TEXT"),
);
$newindexes = array(
- array("revision", "rev_text_id_idx", "patch-rev_text_id_idx.sql"),
- array("archive", "usertext_timestamp", "patch-archive-user-index.sql"),
+ array("archive", "archive_user_text", "(ar_user_text)"),
+ array("image", "img_sha1", "(img_sha1)"),
+ array("oldimage", "oi_sha1", "(oi_sha1)"),
+ array("revision", "rev_text_id_idx", "(rev_text_id)"),
);
$newrules = array(
echo "... index $ni[1] on $ni[0] already exists\n";
continue;
}
- dbsource(archive($ni[2]));
+ $wgDatabase->query("CREATE INDEX $ni[1] ON $ni[0] $ni[2]");
+ echo "create index $ni[1]\n";
}
foreach ($newrules as $nr) {