diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index 4486cf5d95..14d165b819 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -151,6 +151,7 @@
[Fix] Display the online status of hidden users to users with the u_viewonline permission when viewing PMs.
[Fix] "Select all" selects much too much in Opera (Bug #42885 - Patch by TerraFrost and ToonArmy)
[Fix] Correct calculation of source/target forum statistics if mass moving topics with global announcements (Bug #44545)
+ [Fix] Fix column handling in db updater, custom profile fields an db tools for firebird DBMS (Bug #44555)
[Change] Default difference view is now 'inline' instead of 'side by side'
[Change] Added new option for merging differences to conflicting files in automatic updater
[Change] Add link to user profile in the MCP for user notes and warn user.
diff --git a/phpBB/includes/acp/acp_profile.php b/phpBB/includes/acp/acp_profile.php
index 7ab6ff7cd6..2b5ec88e5b 100644
--- a/phpBB/includes/acp/acp_profile.php
+++ b/phpBB/includes/acp/acp_profile.php
@@ -1539,7 +1539,7 @@ class acp_profile
case 'firebird':
// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.
- $sql = 'ALTER TABLE ' . PROFILE_FIELDS_DATA_TABLE . " ADD \"$field_ident\" ";
+ $sql = 'ALTER TABLE ' . PROFILE_FIELDS_DATA_TABLE . ' ADD "' . strtoupper($field_ident) . '" ';
switch ($field_type)
{
diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php
index 57300be359..e5f83faec3 100644
--- a/phpBB/includes/acp/acp_users.php
+++ b/phpBB/includes/acp/acp_users.php
@@ -1162,7 +1162,8 @@ class acp_users
foreach ($cp_data as $key => $value)
{
- $cp_data[$left_delim . $key . $right_delim] = $value;
+ // Firebird is case sensitive with delimiter
+ $cp_data[$left_delim . (($db->sql_layer == 'firebird') ? strtoupper($key) : $key) . $right_delim] = $value;
unset($cp_data[$key]);
}
diff --git a/phpBB/includes/db/db_tools.php b/phpBB/includes/db/db_tools.php
index 70c946574b..b1a5d13d26 100644
--- a/phpBB/includes/db/db_tools.php
+++ b/phpBB/includes/db/db_tools.php
@@ -1115,7 +1115,7 @@ class phpbb_db_tools
switch ($this->sql_layer)
{
case 'firebird':
- $statements[] = 'ALTER TABLE "' . $table_name . '" ADD "' . $column_name . '" ' . $column_data['column_type_sql'];
+ $statements[] = 'ALTER TABLE ' . $table_name . ' ADD "' . strtoupper($column_name) . '" ' . $column_data['column_type_sql'];
break;
case 'mssql':
@@ -1207,7 +1207,7 @@ class phpbb_db_tools
switch ($this->sql_layer)
{
case 'firebird':
- $statements[] = 'ALTER TABLE "' . $table_name . '" DROP "' . $column_name . '"';
+ $statements[] = 'ALTER TABLE ' . $table_name . ' DROP "' . strtoupper($column_name) . '"';
break;
case 'mssql':
@@ -1626,7 +1626,7 @@ class phpbb_db_tools
{
case 'firebird':
// Change type...
- $statements[] = 'ALTER TABLE "' . $table_name . '" ALTER COLUMN "' . $column_name . '" TYPE ' . ' ' . $column_data['column_type_sql'];
+ $statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql'];
break;
case 'mssql':
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 4fda30463f..90c46be06b 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -1883,7 +1883,7 @@ class updater_db_tools
switch ($this->sql_layer)
{
case 'firebird':
- $statements[] = 'ALTER TABLE "' . $table_name . '" ADD "' . $column_name . '" ' . $column_data['column_type_sql'];
+ $statements[] = 'ALTER TABLE ' . $table_name . ' ADD "' . strtoupper($column_name) . '" ' . $column_data['column_type_sql'];
break;
case 'mssql':
@@ -1975,7 +1975,7 @@ class updater_db_tools
switch ($this->sql_layer)
{
case 'firebird':
- $statements[] = 'ALTER TABLE "' . $table_name . '" DROP "' . $column_name . '"';
+ $statements[] = 'ALTER TABLE ' . $table_name . ' DROP "' . strtoupper($column_name) . '"';
break;
case 'mssql':
@@ -2238,7 +2238,7 @@ class updater_db_tools
{
case 'firebird':
// Change type...
- $statements[] = 'ALTER TABLE "' . $table_name . '" ALTER COLUMN "' . $column_name . '" TYPE ' . ' ' . $column_data['column_type_sql'];
+ $statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql'];
break;
case 'mssql':