From ebf3e7c58d32fe438ee8673dbee066d722f32f80 Mon Sep 17 00:00:00 2001 From: addshore Date: Thu, 22 Aug 2013 15:05:15 +0200 Subject: [PATCH] Split change_tag sql patch After pulling master and some extensions and running the update script these tables are not created when needed. DB returned error "1146: Table 'my_wiki.valid_tag' This is probably a broken edge case This patch splits the patch into three seperate patches ensuring all of the tables are created if they dont already exist Change-Id: I79c740dc4ec68d3c5aa0572dc77ea3ac8d305db9 --- includes/installer/MysqlUpdater.php | 4 ++-- includes/installer/SqliteUpdater.php | 4 ++-- maintenance/archives/patch-change_tag.sql | 17 ----------------- maintenance/archives/patch-tag_summary.sql | 12 ++++++++++++ maintenance/archives/patch-valid_tag.sql | 4 ++++ 5 files changed, 20 insertions(+), 21 deletions(-) create mode 100644 maintenance/archives/patch-tag_summary.sql create mode 100644 maintenance/archives/patch-valid_tag.sql diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index 02faf7c4bb..261d02a719 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -155,8 +155,8 @@ class MysqlUpdater extends DatabaseUpdater { // 1.15 array( 'doUniquePlTlIl' ), array( 'addTable', 'change_tag', 'patch-change_tag.sql' ), - /* array( 'addTable', 'tag_summary', 'patch-change_tag.sql' ), */ - /* array( 'addTable', 'valid_tag', 'patch-change_tag.sql' ), */ + array( 'addTable', 'tag_summary', 'patch-tag_summary.sql' ), + array( 'addTable', 'valid_tag', 'patch-valid_tag.sql' ), // 1.16 array( 'addTable', 'user_properties', 'patch-user_properties.sql' ), diff --git a/includes/installer/SqliteUpdater.php b/includes/installer/SqliteUpdater.php index 28d8d66b1b..e64847db3c 100644 --- a/includes/installer/SqliteUpdater.php +++ b/includes/installer/SqliteUpdater.php @@ -39,8 +39,8 @@ class SqliteUpdater extends DatabaseUpdater { // 1.15 array( 'addTable', 'change_tag', 'patch-change_tag.sql' ), - array( 'addTable', 'tag_summary', 'patch-change_tag.sql' ), - array( 'addTable', 'valid_tag', 'patch-change_tag.sql' ), + array( 'addTable', 'tag_summary', 'patch-tag_summary.sql' ), + array( 'addTable', 'valid_tag', 'patch-valid_tag.sql' ), // 1.16 array( 'addTable', 'user_properties', 'patch-user_properties.sql' ), diff --git a/maintenance/archives/patch-change_tag.sql b/maintenance/archives/patch-change_tag.sql index 030e086b47..3079a5bb30 100644 --- a/maintenance/archives/patch-change_tag.sql +++ b/maintenance/archives/patch-change_tag.sql @@ -13,20 +13,3 @@ CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag); -- Covering index, so we can pull all the info only out of the index. CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id); - --- Rollup table to pull a LIST of tags simply without ugly GROUP_CONCAT that only works on MySQL 4.1+ -CREATE TABLE /*_*/tag_summary ( - ts_rc_id int NULL, - ts_log_id int NULL, - ts_rev_id int NULL, - ts_tags BLOB NOT NULL -) /*$wgDBTableOptions*/; - -CREATE UNIQUE INDEX /*i*/tag_summary_rc_id ON /*_*/tag_summary (ts_rc_id); -CREATE UNIQUE INDEX /*i*/tag_summary_log_id ON /*_*/tag_summary (ts_log_id); -CREATE UNIQUE INDEX /*i*/tag_summary_rev_id ON /*_*/tag_summary (ts_rev_id); - - -CREATE TABLE /*_*/valid_tag ( - vt_tag varchar(255) NOT NULL PRIMARY KEY -) /*$wgDBTableOptions*/; diff --git a/maintenance/archives/patch-tag_summary.sql b/maintenance/archives/patch-tag_summary.sql new file mode 100644 index 0000000000..a81b368002 --- /dev/null +++ b/maintenance/archives/patch-tag_summary.sql @@ -0,0 +1,12 @@ +-- Rollup table to pull a LIST of tags simply without ugly GROUP_CONCAT that only works on MySQL 4.1+ +-- Andrew Garrett, 2009-01 +CREATE TABLE /*_*/tag_summary ( + ts_rc_id int NULL, + ts_log_id int NULL, + ts_rev_id int NULL, + ts_tags BLOB NOT NULL +) /*$wgDBTableOptions*/; + +CREATE UNIQUE INDEX /*i*/tag_summary_rc_id ON /*_*/tag_summary (ts_rc_id); +CREATE UNIQUE INDEX /*i*/tag_summary_log_id ON /*_*/tag_summary (ts_log_id); +CREATE UNIQUE INDEX /*i*/tag_summary_rev_id ON /*_*/tag_summary (ts_rev_id); diff --git a/maintenance/archives/patch-valid_tag.sql b/maintenance/archives/patch-valid_tag.sql new file mode 100644 index 0000000000..994a5d53ee --- /dev/null +++ b/maintenance/archives/patch-valid_tag.sql @@ -0,0 +1,4 @@ +-- Andrew Garrett, 2009-01 +CREATE TABLE /*_*/valid_tag ( + vt_tag varchar(255) NOT NULL PRIMARY KEY +) /*$wgDBTableOptions*/; -- 2.20.1