mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 22:28:51 +00:00
[ticket/12710] Remove table_name from index_name before deleting and recreating them
PHPBB3-12710
This commit is contained in:
parent
078c68da63
commit
7d44995f16
1 changed files with 15 additions and 3 deletions
|
@ -2274,6 +2274,18 @@ class tools
|
||||||
return array_map('strtolower', $index_array);
|
return array_map('strtolower', $index_array);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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!)
|
* Change column type (not name!)
|
||||||
*/
|
*/
|
||||||
|
@ -2360,7 +2372,7 @@ class tools
|
||||||
$drop_indexes = array_merge(array_keys($indexes), array_keys($unique_indexes));
|
$drop_indexes = array_merge(array_keys($indexes), array_keys($unique_indexes));
|
||||||
foreach ($drop_indexes as $index_name => $index_data)
|
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);
|
$statements = array_merge($statements, $result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2386,7 +2398,7 @@ class tools
|
||||||
// Recreate indexes after we changed the column
|
// Recreate indexes after we changed the column
|
||||||
foreach ($indexes as $index_name => $index_data)
|
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);
|
$statements = array_merge($statements, $result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2396,7 +2408,7 @@ class tools
|
||||||
// Recreate unique indexes after we changed the column
|
// Recreate unique indexes after we changed the column
|
||||||
foreach ($unique_indexes as $index_name => $index_data)
|
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);
|
$statements = array_merge($statements, $result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue