From 31bc78fc18e741d3ca3ad7d5a20bc69053c847cf Mon Sep 17 00:00:00 2001 From: OverlordQ Date: Wed, 28 Oct 2009 17:08:06 +0000 Subject: [PATCH] Followup to r58262: PG half of sequence changes --- maintenance/postgres/tables.sql | 28 ++++++++++++++-------------- maintenance/updaters.inc | 21 +++++++++++++++++++-- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/maintenance/postgres/tables.sql b/maintenance/postgres/tables.sql index 678aadac72..673060ab6a 100644 --- a/maintenance/postgres/tables.sql +++ b/maintenance/postgres/tables.sql @@ -82,9 +82,9 @@ $mw$; CREATE TRIGGER page_deleted AFTER DELETE ON page FOR EACH ROW EXECUTE PROCEDURE page_deleted(); -CREATE SEQUENCE rev_rev_id_val; +CREATE SEQUENCE revision_rev_id_seq; CREATE TABLE revision ( - rev_id INTEGER NOT NULL UNIQUE DEFAULT nextval('rev_rev_id_val'), + rev_id INTEGER NOT NULL UNIQUE DEFAULT nextval('revision_rev_id_seq'), rev_page INTEGER NULL REFERENCES page (page_id) ON DELETE CASCADE, rev_text_id INTEGER NULL, -- FK rev_comment TEXT, @@ -103,17 +103,17 @@ CREATE INDEX rev_user_idx ON revision (rev_user); CREATE INDEX rev_user_text_idx ON revision (rev_user_text); -CREATE SEQUENCE text_old_id_val; +CREATE SEQUENCE text_old_id_seq; CREATE TABLE pagecontent ( -- replaces reserved word 'text' - old_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('text_old_id_val'), + old_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('text_old_id_seq'), old_text TEXT, old_flags TEXT ); -CREATE SEQUENCE pr_id_val; +CREATE SEQUENCE page_restrictions_pr_id_seq; CREATE TABLE page_restrictions ( - pr_id INTEGER NOT NULL UNIQUE DEFAULT nextval('pr_id_val'), + pr_id INTEGER NOT NULL UNIQUE DEFAULT nextval('page_restrictions_pr_id_seq'), pr_page INTEGER NULL REFERENCES page (page_id) ON DELETE CASCADE, pr_type TEXT NOT NULL, pr_level TEXT NOT NULL, @@ -233,9 +233,9 @@ CREATE TABLE hitcounter ( ); -CREATE SEQUENCE ipblocks_ipb_id_val; +CREATE SEQUENCE ipblocks_ipb_id_seq; CREATE TABLE ipblocks ( - ipb_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('ipblocks_ipb_id_val'), + ipb_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('ipblocks_ipb_id_seq'), ipb_address TEXT NULL, ipb_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL, ipb_by INTEGER NOT NULL REFERENCES mwuser(user_id) ON DELETE CASCADE, @@ -333,9 +333,9 @@ CREATE INDEX fa_notime ON filearchive (fa_deleted_timestamp); CREATE INDEX fa_nouser ON filearchive (fa_deleted_user); -CREATE SEQUENCE rc_rc_id_seq; +CREATE SEQUENCE recentchanges_rc_id_seq; CREATE TABLE recentchanges ( - rc_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('rc_rc_id_seq'), + rc_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('recentchanges_rc_id_seq'), rc_timestamp TIMESTAMPTZ NOT NULL, rc_cur_time TIMESTAMPTZ NOT NULL, rc_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL, @@ -435,9 +435,9 @@ CREATE TABLE transcache ( ); -CREATE SEQUENCE log_log_id_seq; +CREATE SEQUENCE logging_log_id_seq; CREATE TABLE logging ( - log_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('log_log_id_seq'), + log_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('logging_log_id_seq'), log_type TEXT NOT NULL, log_action TEXT NOT NULL, log_timestamp TIMESTAMPTZ NOT NULL, @@ -563,9 +563,9 @@ CREATE TABLE updatelog ( ); -CREATE SEQUENCE category_id_seq; +CREATE SEQUENCE category_cat_id_seq; CREATE TABLE category ( - cat_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('category_id_seq'), + cat_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('category_cat_id_seq'), cat_title TEXT NOT NULL, cat_pages INTEGER NOT NULL DEFAULT 0, cat_subcats INTEGER NOT NULL DEFAULT 0, diff --git a/maintenance/updaters.inc b/maintenance/updaters.inc index 3f0a9f24e4..2fe3a53d60 100644 --- a/maintenance/updaters.inc +++ b/maintenance/updaters.inc @@ -1401,6 +1401,15 @@ global $wgDatabase, $wgDBmwschema; return $exists === $index; } +function +pg_sequence_exists($seq) +{ +global $wgDatabase, $wgDBmwschema; + $exists = $wgDatabase->selectField("pg_class","relname", + array( "relname" => $seq ) ); + return $exists === $seq; +} + function pg_fkey_deltype($fkey) { @@ -1504,8 +1513,8 @@ function do_postgres_updates() { } $newsequences = array( - "log_log_id_seq", - "pr_id_val", + "logging_log_id_seq", + "page_restrictions_pr_id_seq", ); $newtables = array( @@ -1830,6 +1839,14 @@ function do_postgres_updates() { $wgDatabase->sourceFile(archive('patch-revision_rev_user_fkey.sql')); } + #Update sequence names + if (pg_sequence_exists('page_restrictions_pr_id_seq')) { + wfOut( "... sequences already updated\n" ); + } else { + wfOut( "Updating sequence names\n" ); + $wgDatabase->sourceFile(archive('patch-update_sequences.sql')); + } + # Fix ipb_address index if (pg_index_exists('ipblocks', 'ipb_address' )) { wfOut( "Removing deprecated index 'ipb_address'...\n" ); -- 2.20.1