Various updates to Postgres schema and updater.
authorGreg Sabino Mullane <greg@users.mediawiki.org>
Fri, 27 Jul 2007 12:23:58 +0000 (12:23 +0000)
committerGreg Sabino Mullane <greg@users.mediawiki.org>
Fri, 27 Jul 2007 12:23:58 +0000 (12:23 +0000)
maintenance/postgres/archives/patch-rev_text_id_idx.sql [deleted file]
maintenance/postgres/tables.sql
maintenance/updaters.inc

diff --git a/maintenance/postgres/archives/patch-rev_text_id_idx.sql b/maintenance/postgres/archives/patch-rev_text_id_idx.sql
deleted file mode 100644 (file)
index 036c0be..0000000
+++ /dev/null
@@ -1 +0,0 @@
-CREATE INDEX rev_text_id_idx ON revision (rev_text_id);
index 6ca5fbe..fbcc135 100644 (file)
@@ -141,6 +141,7 @@ CREATE TABLE archive (
   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 (
@@ -250,10 +251,12 @@ CREATE TABLE image (
   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),
@@ -266,14 +269,16 @@ CREATE TABLE oldimage (
   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 (
index 6dd6ef5..2b04740 100644 (file)
@@ -1325,6 +1325,7 @@ function do_postgres_updates() {
        $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'"),
@@ -1336,11 +1337,12 @@ function do_postgres_updates() {
                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"),
@@ -1369,8 +1371,10 @@ function do_postgres_updates() {
        );
 
        $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(
@@ -1448,7 +1452,8 @@ function do_postgres_updates() {
                        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) {