From: Tim Starling Date: Thu, 30 Mar 2017 04:17:47 +0000 (+1100) Subject: Update comment for indexName(), explaining why it exists X-Git-Tag: 1.31.0-rc.0~3628^2 X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=commitdiff_plain;h=e4a716ac0d2cfdfda44370dd0a9f250e18369e5a Update comment for indexName(), explaining why it exists Bug: T154872 Change-Id: Idf64b85dc56dcc28f3a25b2b8ded44c5490cf56c --- diff --git a/includes/libs/rdbms/database/DatabaseMysqlBase.php b/includes/libs/rdbms/database/DatabaseMysqlBase.php index 4b3a644932..672509002d 100644 --- a/includes/libs/rdbms/database/DatabaseMysqlBase.php +++ b/includes/libs/rdbms/database/DatabaseMysqlBase.php @@ -1343,7 +1343,20 @@ abstract class DatabaseMysqlBase extends Database { * @return string */ protected function indexName( $index ) { - // Backwards-compatibility hack + /** + * When SQLite indexes were introduced in r45764, it was noted that + * SQLite requires index names to be unique within the whole database, + * not just within a schema. As discussed in CR r45819, to avoid the + * need for a schema change on existing installations, the indexes + * were implicitly mapped from the new names to the old names. + * + * This mapping can be removed if DB patches are introduced to alter + * the relevant tables in existing installations. Note that because + * this index mapping applies to table creation, even new installations + * of MySQL have the old names (except for installations created during + * a period where this mapping was inappropriately removed, see + * T154872). + */ $renamed = [ 'ar_usertext_timestamp' => 'usertext_timestamp', 'un_user_id' => 'user_id',