diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2009-06-13 16:04:54 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2009-06-13 16:04:54 +0000 |
commit | e69fe56634225d771d4d47c2151d9828b1be2b5d (patch) | |
tree | 79c71561d2286966fb0ac1b36aa9d50a469a5870 /phpBB/includes/db/db_tools.php | |
parent | d8e78c766b0f14f5d53e1916c341cbaccb012b4f (diff) | |
download | forums-e69fe56634225d771d4d47c2151d9828b1be2b5d.tar forums-e69fe56634225d771d4d47c2151d9828b1be2b5d.tar.gz forums-e69fe56634225d771d4d47c2151d9828b1be2b5d.tar.bz2 forums-e69fe56634225d771d4d47c2151d9828b1be2b5d.tar.xz forums-e69fe56634225d771d4d47c2151d9828b1be2b5d.zip |
- fix sql_column_exists for firebird (had same problem as oracle)
- fix sql_column_change for firebird (interbase6 only supports TYPE and SET DEFAULT, but not the same syntax ass ADD COLUMN)
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9586 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/db/db_tools.php')
-rw-r--r-- | phpBB/includes/db/db_tools.php | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/phpBB/includes/db/db_tools.php b/phpBB/includes/db/db_tools.php index 8c8653e1da..7ea70f341d 100644 --- a/phpBB/includes/db/db_tools.php +++ b/phpBB/includes/db/db_tools.php @@ -819,7 +819,7 @@ class phpbb_db_tools case 'firebird': $sql = "SELECT RDB\$FIELD_NAME as FNAME FROM RDB\$RELATION_FIELDS - WHERE RDB\$RELATION_NAME = '{$table}'"; + WHERE RDB\$RELATION_NAME = '" . strtoupper($table) . "'"; $result = $this->db->sql_query($sql); while ($row = $this->db->sql_fetchrow($result)) { @@ -972,10 +972,12 @@ class phpbb_db_tools { case 'firebird': $sql .= " {$column_type} "; + $return_array['column_type_sql_type'] = " {$column_type} "; if (!is_null($column_data[1])) { $sql .= 'DEFAULT ' . ((is_numeric($column_data[1])) ? $column_data[1] : "'{$column_data[1]}'") . ' '; + $return_array['column_type_sql_default'] = ((is_numeric($column_data[1])) ? $column_data[1] : "'{$column_data[1]}'") . ' '; } $sql .= 'NOT NULL'; @@ -1648,7 +1650,15 @@ class phpbb_db_tools { case 'firebird': // Change type... - $statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql']; + if (!empty($column_data['column_type_sql_default'])) + { + $statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql_type']; + $statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" SET DEFAULT ' . ' ' . $column_data['column_type_sql_default']; + } + else + { + $statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql']; + } break; case 'mssql': |