aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-04-13 16:43:57 +0200
committerJoas Schilling <nickvergessen@gmx.de>2014-04-17 11:29:44 +0200
commit190b4282df5c5c81123b1ed371eeada385831e99 (patch)
tree7d6c7f04e3c355f7b03b82d82de430d3d6744343 /phpBB/phpbb
parente2784d01cee227a56f2ad7bcaee4b796dbf6dde6 (diff)
downloadforums-190b4282df5c5c81123b1ed371eeada385831e99.tar
forums-190b4282df5c5c81123b1ed371eeada385831e99.tar.gz
forums-190b4282df5c5c81123b1ed371eeada385831e99.tar.bz2
forums-190b4282df5c5c81123b1ed371eeada385831e99.tar.xz
forums-190b4282df5c5c81123b1ed371eeada385831e99.zip
[ticket/12012] Return SQL statements for index drop/create
Otherwise we recreate the index before changing the column PHPBB3-12012
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r--phpBB/phpbb/db/tools.php20
1 files changed, 17 insertions, 3 deletions
diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php
index c2285bcf80..113059900a 100644
--- a/phpBB/phpbb/db/tools.php
+++ b/phpBB/phpbb/db/tools.php
@@ -2336,21 +2336,32 @@ class tools
case 'mssql':
case 'mssqlnative':
+ // We need the data here
+ $old_return_statements = $this->return_statements;
+ $this->return_statements = true;
+
$indexes = $this->mssql_get_existing_indexes($table_name, $column_name);
+ // Drop any indexes
if (!empty($indexes))
{
foreach ($indexes as $index_name => $index_data)
{
- $this->sql_index_drop($table_name, $index_name);
+ $result = $this->sql_index_drop($table_name, $index_name);
+ $statements = array_merge($statements, $result);
}
}
- $statements = $this->mssql_drop_default_constraints($table_name, $column_name);
+ // Drop default value constraint
+ $result = $this->mssql_drop_default_constraints($table_name, $column_name);
+ $statements = array_merge($statements, $result);
+
+ // Change the column
$statements[] = 'ALTER TABLE [' . $table_name . '] ALTER COLUMN [' . $column_name . '] ' . $column_data['column_type_sql'];
if (!empty($column_data['default']))
{
+ // Add new default value constraint
$statements[] = 'ALTER TABLE [' . $table_name . '] ADD CONSTRAINT [DF_' . $table_name . '_' . $column_name . '_1] ' . $this->db->sql_escape($column_data['default']) . ' FOR [' . $column_name . ']';
}
@@ -2359,9 +2370,12 @@ class tools
// Recreate indexes after we changed the column
foreach ($indexes as $index_name => $index_data)
{
- $this->sql_create_index($table_name, $index_name, $index_data);
+ $result = $this->sql_create_index($table_name, $index_name, $index_data);
+ $statements = array_merge($statements, $result);
}
}
+
+ $this->return_statements = $old_return_statements;
break;
case 'mysql_40':