From 93eef8d2c568891e5ae13014ff6093e33be088be Mon Sep 17 00:00:00 2001 From: tjlsangria Date: Fri, 28 Oct 2016 15:33:32 +0100 Subject: [PATCH 1/1] Convert INDEX into PRIMARY KEY in l10n_cache Bug: T146591 Change-Id: I85ab18bfa30e562e76253e3ef71653dbf46db041 --- RELEASE-NOTES-1.30 | 2 ++ includes/installer/MysqlUpdater.php | 2 ++ includes/installer/SqliteUpdater.php | 2 ++ .../archives/patch-l10n_cache-primary-key.sql | 8 ++++++++ .../sqlite/archives/patch-l10n_cache-primary-key.sql | 12 ++++++++++++ maintenance/tables.sql | 4 ++-- 6 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 maintenance/archives/patch-l10n_cache-primary-key.sql create mode 100644 maintenance/sqlite/archives/patch-l10n_cache-primary-key.sql diff --git a/RELEASE-NOTES-1.30 b/RELEASE-NOTES-1.30 index fb69bfdf75..c104252b74 100644 --- a/RELEASE-NOTES-1.30 +++ b/RELEASE-NOTES-1.30 @@ -203,6 +203,8 @@ changes to languages because of Phabricator reports. templatelinks, text, transcache, user_former_groups, user_properties. * IDatabase::nextSequenceValue() is no longer needed by any database backends (formerly it was needed by PostgreSQL and Oracle), and is now deprecated. +* (T146591) The lc_lang_key index on the l10n_cache table has been changed into a + PRIMARY KEY. == Compatibility == MediaWiki 1.30 requires PHP 5.5.9 or later. There is experimental support for diff --git a/includes/installer/MysqlUpdater.php b/includes/installer/MysqlUpdater.php index b42ae4661a..aeecbb0e3d 100644 --- a/includes/installer/MysqlUpdater.php +++ b/includes/installer/MysqlUpdater.php @@ -327,6 +327,8 @@ class MysqlUpdater extends DatabaseUpdater { 'patch-user_properties-fix-pk.sql' ], [ 'addTable', 'comment', 'patch-comment-table.sql' ], [ 'migrateComments' ], + [ 'renameIndex', 'l10n_cache', 'lc_lang_key', 'PRIMARY', false, + 'patch-l10n_cache-primary-key.sql' ], ]; } diff --git a/includes/installer/SqliteUpdater.php b/includes/installer/SqliteUpdater.php index d0ed822397..9f71001441 100644 --- a/includes/installer/SqliteUpdater.php +++ b/includes/installer/SqliteUpdater.php @@ -191,6 +191,8 @@ class SqliteUpdater extends DatabaseUpdater { 'patch-user_properties-fix-pk.sql' ], [ 'addTable', 'comment', 'patch-comment-table.sql' ], [ 'migrateComments' ], + [ 'renameIndex', 'l10n_cache', 'lc_lang_key', 'PRIMARY', false, + 'patch-l10n_cache-primary-key.sql' ], ]; } diff --git a/maintenance/archives/patch-l10n_cache-primary-key.sql b/maintenance/archives/patch-l10n_cache-primary-key.sql new file mode 100644 index 0000000000..d583039677 --- /dev/null +++ b/maintenance/archives/patch-l10n_cache-primary-key.sql @@ -0,0 +1,8 @@ +-- +-- patch-l10n_cache-primary-key.sql +-- +-- Bug T146591. Add l10n_cache primary key + +DELETE FROM /*$wgDBprefix*/l10n_cache; + +ALTER TABLE /*$wgDBprefix*/l10n_cache DROP KEY /*i*/lc_lang_key, ADD PRIMARY KEY(lc_lang, lc_key); diff --git a/maintenance/sqlite/archives/patch-l10n_cache-primary-key.sql b/maintenance/sqlite/archives/patch-l10n_cache-primary-key.sql new file mode 100644 index 0000000000..55df392cdf --- /dev/null +++ b/maintenance/sqlite/archives/patch-l10n_cache-primary-key.sql @@ -0,0 +1,12 @@ +-- +-- patch-l10n_cache-primary-key.sql +-- +-- Bug T146591. Add l10n_cache primary key +DROP TABLE IF EXISTS /*_*/l10n_cache; + +CREATE TABLE /*$wgDBprefix*/l10n_cache ( + lc_lang varbinary(32) NOT NULL, + lc_key varchar(255) NOT NULL, + lc_value mediumblob NOT NULL, + PRIMARY KEY (lc_lang, lc_key) +) /*$wgDBTableOptions*/; diff --git a/maintenance/tables.sql b/maintenance/tables.sql index d6ef40c73b..bed80db37c 100644 --- a/maintenance/tables.sql +++ b/maintenance/tables.sql @@ -1738,9 +1738,9 @@ CREATE TABLE /*_*/l10n_cache ( -- Cache key lc_key varchar(255) NOT NULL, -- Value - lc_value mediumblob NOT NULL + lc_value mediumblob NOT NULL, + PRIMARY KEY (lc_lang, lc_key) ) /*$wgDBTableOptions*/; -CREATE INDEX /*i*/lc_lang_key ON /*_*/l10n_cache (lc_lang, lc_key); -- Table caching which local files a module depends on that aren't -- registered directly, used for fast retrieval of file dependency. -- 2.20.1