mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-02 14:57:37 +02:00
[ticket/12710] Remove table_name from index_name before deleting and recreating them
PHPBB3-12710
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user