mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
- 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
This commit is contained in:
parent
d8e78c766b
commit
e69fe56634
2 changed files with 25 additions and 5 deletions
|
@ -819,7 +819,7 @@ class phpbb_db_tools
|
||||||
case 'firebird':
|
case 'firebird':
|
||||||
$sql = "SELECT RDB\$FIELD_NAME as FNAME
|
$sql = "SELECT RDB\$FIELD_NAME as FNAME
|
||||||
FROM RDB\$RELATION_FIELDS
|
FROM RDB\$RELATION_FIELDS
|
||||||
WHERE RDB\$RELATION_NAME = '{$table}'";
|
WHERE RDB\$RELATION_NAME = '" . strtoupper($table) . "'";
|
||||||
$result = $this->db->sql_query($sql);
|
$result = $this->db->sql_query($sql);
|
||||||
while ($row = $this->db->sql_fetchrow($result))
|
while ($row = $this->db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
|
@ -972,10 +972,12 @@ class phpbb_db_tools
|
||||||
{
|
{
|
||||||
case 'firebird':
|
case 'firebird':
|
||||||
$sql .= " {$column_type} ";
|
$sql .= " {$column_type} ";
|
||||||
|
$return_array['column_type_sql_type'] = " {$column_type} ";
|
||||||
|
|
||||||
if (!is_null($column_data[1]))
|
if (!is_null($column_data[1]))
|
||||||
{
|
{
|
||||||
$sql .= 'DEFAULT ' . ((is_numeric($column_data[1])) ? $column_data[1] : "'{$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';
|
$sql .= 'NOT NULL';
|
||||||
|
@ -1648,7 +1650,15 @@ class phpbb_db_tools
|
||||||
{
|
{
|
||||||
case 'firebird':
|
case 'firebird':
|
||||||
// Change type...
|
// Change type...
|
||||||
|
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'];
|
$statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql'];
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'mssql':
|
case 'mssql':
|
||||||
|
|
|
@ -497,7 +497,7 @@ function _sql($sql, &$errored, &$error_ary, $echo_dot = true)
|
||||||
{
|
{
|
||||||
$errored = true;
|
$errored = true;
|
||||||
$error_ary['sql'][] = $db->sql_error_sql;
|
$error_ary['sql'][] = $db->sql_error_sql;
|
||||||
$error_ary['error_code'][] = $db->_sql_error();
|
$error_ary['error_code'][] = $db->sql_error_returned;
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->sql_return_on_error(false);
|
$db->sql_return_on_error(false);
|
||||||
|
@ -1671,7 +1671,7 @@ class updater_db_tools
|
||||||
case 'firebird':
|
case 'firebird':
|
||||||
$sql = "SELECT RDB\$FIELD_NAME as FNAME
|
$sql = "SELECT RDB\$FIELD_NAME as FNAME
|
||||||
FROM RDB\$RELATION_FIELDS
|
FROM RDB\$RELATION_FIELDS
|
||||||
WHERE RDB\$RELATION_NAME = '{$table}'";
|
WHERE RDB\$RELATION_NAME = '" . strtoupper($table) . "'";
|
||||||
$result = $this->db->sql_query($sql);
|
$result = $this->db->sql_query($sql);
|
||||||
while ($row = $this->db->sql_fetchrow($result))
|
while ($row = $this->db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
|
@ -1824,10 +1824,12 @@ class updater_db_tools
|
||||||
{
|
{
|
||||||
case 'firebird':
|
case 'firebird':
|
||||||
$sql .= " {$column_type} ";
|
$sql .= " {$column_type} ";
|
||||||
|
$return_array['column_type_sql_type'] = " {$column_type} ";
|
||||||
|
|
||||||
if (!is_null($column_data[1]))
|
if (!is_null($column_data[1]))
|
||||||
{
|
{
|
||||||
$sql .= 'DEFAULT ' . ((is_numeric($column_data[1])) ? $column_data[1] : "'{$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';
|
$sql .= 'NOT NULL';
|
||||||
|
@ -2344,7 +2346,15 @@ class updater_db_tools
|
||||||
{
|
{
|
||||||
case 'firebird':
|
case 'firebird':
|
||||||
// Change type...
|
// Change type...
|
||||||
|
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'];
|
$statements[] = 'ALTER TABLE ' . $table_name . ' ALTER COLUMN "' . strtoupper($column_name) . '" TYPE ' . ' ' . $column_data['column_type_sql'];
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'mssql':
|
case 'mssql':
|
||||||
|
|
Loading…
Add table
Reference in a new issue