diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2014-08-09 12:53:15 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2014-08-09 12:53:15 +0200 |
commit | 7d44995f1659cf654bf8d05b5f6315de2eda7925 (patch) | |
tree | 4319e66b2b74564c0898e920a6fe1611ee12dc0a | |
parent | 078c68da6360f0f55acf887b31394ae69553d52e (diff) | |
download | forums-7d44995f1659cf654bf8d05b5f6315de2eda7925.tar forums-7d44995f1659cf654bf8d05b5f6315de2eda7925.tar.gz forums-7d44995f1659cf654bf8d05b5f6315de2eda7925.tar.bz2 forums-7d44995f1659cf654bf8d05b5f6315de2eda7925.tar.xz forums-7d44995f1659cf654bf8d05b5f6315de2eda7925.zip |
[ticket/12710] Remove table_name from index_name before deleting and recreating them
PHPBB3-12710
-rw-r--r-- | phpBB/phpbb/db/tools.php | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index d5b8d4fad7..434568d01a 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -2275,6 +2275,18 @@ class tools } /** + * Removes table_name from the index_name if it is at the beginning + * + * @param $table_name + * @param $index_name + * @return string + */ + protected function strip_table_name_from_index_name($table_name, $index_name) + { + return (strpos($index_name, $table_name) === 0) ? substr($index_name, strlen($table_name) + 1) : $index_name; + } + + /** * Change column type (not name!) */ function sql_column_change($table_name, $column_name, $column_data, $inline = false) @@ -2360,7 +2372,7 @@ class tools $drop_indexes = array_merge(array_keys($indexes), array_keys($unique_indexes)); foreach ($drop_indexes as $index_name => $index_data) { - $result = $this->sql_index_drop($table_name, $index_name); + $result = $this->sql_index_drop($table_name, $this->strip_table_name_from_index_name($table_name, $index_name)); $statements = array_merge($statements, $result); } } @@ -2386,7 +2398,7 @@ class tools // Recreate indexes after we changed the column foreach ($indexes as $index_name => $index_data) { - $result = $this->sql_create_index($table_name, $index_name, $index_data); + $result = $this->sql_create_index($table_name, $this->strip_table_name_from_index_name($table_name, $index_name), $index_data); $statements = array_merge($statements, $result); } } @@ -2396,7 +2408,7 @@ class tools // Recreate unique indexes after we changed the column foreach ($unique_indexes as $index_name => $index_data) { - $result = $this->sql_create_unique_index($table_name, $index_name, $index_data); + $result = $this->sql_create_unique_index($table_name, $this->strip_table_name_from_index_name($table_name, $index_name), $index_data); $statements = array_merge($statements, $result); } } |