Convert INDEX into PRIMARY KEY in l10n_cache
authortjlsangria <tjlsangria@gmail.com>
Fri, 28 Oct 2016 14:33:32 +0000 (15:33 +0100)
committerReedy <reedy@wikimedia.org>
Tue, 5 Sep 2017 17:58:12 +0000 (17:58 +0000)
Bug: T146591
Change-Id: I85ab18bfa30e562e76253e3ef71653dbf46db041

RELEASE-NOTES-1.30
includes/installer/MysqlUpdater.php
includes/installer/SqliteUpdater.php
maintenance/archives/patch-l10n_cache-primary-key.sql [new file with mode: 0644]
maintenance/sqlite/archives/patch-l10n_cache-primary-key.sql [new file with mode: 0644]
maintenance/tables.sql

index fb69bfd..c104252 100644 (file)
@@ -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
index b42ae46..aeecbb0 100644 (file)
@@ -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' ],
                ];
        }
 
index d0ed822..9f71001 100644 (file)
@@ -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 (file)
index 0000000..d583039
--- /dev/null
@@ -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 (file)
index 0000000..55df392
--- /dev/null
@@ -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*/;
index d6ef40c..bed80db 100644 (file)
@@ -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.