diff --git a/phpBB/includes/db/db_tools.php b/phpBB/includes/db/db_tools.php index 10ca6c0a1f..0d8cf7fdab 100644 --- a/phpBB/includes/db/db_tools.php +++ b/phpBB/includes/db/db_tools.php @@ -2145,7 +2145,7 @@ class phpbb_db_tools } // no break case 'mysql_41': - $statements[] = 'CREATE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')'; + $statements[] = 'ALTER TABLE ' . $table_name . ' ADD INDEX ' . $index_name . '(' . implode(', ', $column) . ')'; break; case 'mssql': diff --git a/tests/dbal/db_tools_test.php b/tests/dbal/db_tools_test.php index 753cc08fc5..927bce4597 100644 --- a/tests/dbal/db_tools_test.php +++ b/tests/dbal/db_tools_test.php @@ -333,4 +333,22 @@ class phpbb_dbal_db_tools_test extends phpbb_database_test_case ), )); } + + public function test_index_exists() + { + $db_tools = new phpbb_db_tools($this->db); + + $this->assertTrue($db_tools->sql_index_exists('prefix_table_name', 'i_simple')); + } + + public function test_create_index_against_index_exists() + { + $db_tools = new phpbb_db_tools($this->db); + + $table_name = 'prefix_table_name'; + $index_name = 'fookey'; + + $db_tools->sql_create_index($table_name, $index_name, array('c_timestamp', 'c_decimal')); + $this->assertTrue($db_tools->sql_index_exists($table_name, $index_name)); + } }