From 919aeb387929a4b775024914eed95207111791b0 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Sat, 19 Jul 2014 14:36:00 +0200 Subject: [ticket/12873] Test the good identifier in \phpbb\db\tools We need to rename the index key because with the default prefix (phpbb_) this key has a length of 31. And because we don't accept the keys longer than 30 characters we should ensure that by default no key is longer than 30 characters. PHPBB3-12873 --- phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php | 2 +- phpBB/phpbb/db/tools.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'phpBB/phpbb/db') diff --git a/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php b/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php index 26937d6d80..b3da3a831d 100644 --- a/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php +++ b/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php @@ -731,7 +731,7 @@ class release_3_0_0 extends \phpbb\db\migration\migration 'title_match' => array('BOOL', 0), ), 'KEYS' => array( - 'unq_mtch' => array('UNIQUE', array('word_id', 'post_id', 'title_match')), + 'un_mtch' => array('UNIQUE', array('word_id', 'post_id', 'title_match')), 'word_id' => array('INDEX', 'word_id'), 'post_id' => array('INDEX', 'post_id'), ), diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index 18defc4535..10eb517d90 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -2079,7 +2079,7 @@ class tools $statements = array(); $table_prefix = substr(CONFIG_TABLE, 0, -6); // strlen(config) - if (strlen($table_name . $index_name) - strlen($table_prefix) > 24) + if (strlen($table_name . '_' . $index_name) - strlen($table_prefix) > 24) { $max_length = strlen($table_prefix) + 24; trigger_error("Index name '{$table_name}_$index_name' on table '$table_name' is too long. The maximum is $max_length characters.", E_USER_ERROR); -- cgit v1.2.1 From 27b4ab92414c42345f6737890051268f082ffc81 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Thu, 7 Aug 2014 14:16:57 +0200 Subject: [ticket/12873] Don not touch the existing migrations PHPBB3-12873 --- phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/phpbb/db') diff --git a/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php b/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php index b3da3a831d..26937d6d80 100644 --- a/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php +++ b/phpBB/phpbb/db/migration/data/v30x/release_3_0_0.php @@ -731,7 +731,7 @@ class release_3_0_0 extends \phpbb\db\migration\migration 'title_match' => array('BOOL', 0), ), 'KEYS' => array( - 'un_mtch' => array('UNIQUE', array('word_id', 'post_id', 'title_match')), + 'unq_mtch' => array('UNIQUE', array('word_id', 'post_id', 'title_match')), 'word_id' => array('INDEX', 'word_id'), 'post_id' => array('INDEX', 'post_id'), ), -- cgit v1.2.1 From 2b3e15cf64fdc3f3f1fd4067321c92d4a20c1dd9 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Thu, 7 Aug 2014 14:25:37 +0200 Subject: [ticket/12873] Add migration to rename the index PHPBB3-12873 --- .../data/v310/rename_too_long_indexes.php | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php (limited to 'phpBB/phpbb/db') diff --git a/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php b/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php new file mode 100644 index 0000000000..8d2a15d8ea --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php @@ -0,0 +1,38 @@ + +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\db\migration\data\v310; + +class rename_too_long_indexes extends \phpbb\db\migration\migration +{ + static public function depends_on() + { + return array('\phpbb\db\migration\data\v30x\release_3_0_0'); + } + + public function update_schema() + { + return array( + 'drop_keys' => array( + $this->table_prefix . 'search_wordmatch' => array( + 'unq_mtch', + ), + ), + 'add_unique_index' => array( + $this->table_prefix . 'search_wordmatch' => array( + 'un_mtch' => array('word_id', 'post_id', 'title_match'), + ), + ), + ); + } +} -- cgit v1.2.1