mirror of
https://github.com/phpbb/phpbb.git
synced 2025-02-24 12:03:21 +01:00
[ticket/12448] Allow null as default value for columns
PHPBB3-12448
This commit is contained in:
parent
3e9d62b9b0
commit
95ab4b3e93
@ -1487,8 +1487,16 @@ class tools
|
|||||||
|
|
||||||
$return_array['textimage'] = $column_type === '[text]';
|
$return_array['textimage'] = $column_type === '[text]';
|
||||||
|
|
||||||
$sql .= 'NOT NULL';
|
if (!is_null($column_data[1]))
|
||||||
$sql_default .= 'NOT NULL';
|
{
|
||||||
|
$sql .= 'NOT NULL';
|
||||||
|
$sql_default .= 'NOT NULL';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sql .= 'NULL';
|
||||||
|
$sql_default .= 'NULL';
|
||||||
|
}
|
||||||
|
|
||||||
$return_array['column_type_sql_default'] = $sql_default;
|
$return_array['column_type_sql_default'] = $sql_default;
|
||||||
|
|
||||||
@ -1503,7 +1511,15 @@ class tools
|
|||||||
{
|
{
|
||||||
$sql .= (strpos($column_data[1], '0x') === 0) ? "DEFAULT {$column_data[1]} " : "DEFAULT '{$column_data[1]}' ";
|
$sql .= (strpos($column_data[1], '0x') === 0) ? "DEFAULT {$column_data[1]} " : "DEFAULT '{$column_data[1]}' ";
|
||||||
}
|
}
|
||||||
$sql .= 'NOT NULL';
|
|
||||||
|
if (!is_null($column_data[1]))
|
||||||
|
{
|
||||||
|
$sql .= 'NOT NULL';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sql .= 'NULL';
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($column_data[2]))
|
if (isset($column_data[2]))
|
||||||
{
|
{
|
||||||
@ -1528,7 +1544,7 @@ class tools
|
|||||||
// Oracle does not like setting NOT NULL on a column that is already NOT NULL (this happens only on number fields)
|
// Oracle does not like setting NOT NULL on a column that is already NOT NULL (this happens only on number fields)
|
||||||
if (!preg_match('/number/i', $column_type))
|
if (!preg_match('/number/i', $column_type))
|
||||||
{
|
{
|
||||||
$sql .= ($column_data[1] === '') ? '' : 'NOT NULL';
|
$sql .= ($column_data[1] === '' || $column_data[1] === null) ? '' : 'NOT NULL';
|
||||||
}
|
}
|
||||||
|
|
||||||
$return_array['auto_increment'] = false;
|
$return_array['auto_increment'] = false;
|
||||||
@ -1588,8 +1604,11 @@ class tools
|
|||||||
$sql .= ' ' . $column_type;
|
$sql .= ' ' . $column_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql .= ' NOT NULL ';
|
if (!is_null($column_data[1]))
|
||||||
$sql .= (!is_null($column_data[1])) ? "DEFAULT '{$column_data[1]}'" : '';
|
{
|
||||||
|
$sql .= ' NOT NULL ';
|
||||||
|
$sql .= "DEFAULT '{$column_data[1]}'";
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,7 @@ class phpbb_dbal_db_tools_test extends phpbb_database_test_case
|
|||||||
'c_bool' => array('BOOL', 1),
|
'c_bool' => array('BOOL', 1),
|
||||||
'c_vchar' => array('VCHAR', 'foo'),
|
'c_vchar' => array('VCHAR', 'foo'),
|
||||||
'c_vchar_size' => array('VCHAR:4', 'foo'),
|
'c_vchar_size' => array('VCHAR:4', 'foo'),
|
||||||
|
'c_vchar_null' => array('VCHAR', null),
|
||||||
'c_char_size' => array('CHAR:4', 'foo'),
|
'c_char_size' => array('CHAR:4', 'foo'),
|
||||||
'c_xstext' => array('XSTEXT', 'foo'),
|
'c_xstext' => array('XSTEXT', 'foo'),
|
||||||
'c_stext' => array('STEXT', 'foo'),
|
'c_stext' => array('STEXT', 'foo'),
|
||||||
@ -111,6 +112,7 @@ class phpbb_dbal_db_tools_test extends phpbb_database_test_case
|
|||||||
'c_bool' => 0,
|
'c_bool' => 0,
|
||||||
'c_vchar' => '',
|
'c_vchar' => '',
|
||||||
'c_vchar_size' => '',
|
'c_vchar_size' => '',
|
||||||
|
'c_vchar_null' => null,
|
||||||
'c_char_size' => 'abcd',
|
'c_char_size' => 'abcd',
|
||||||
'c_xstext' => '',
|
'c_xstext' => '',
|
||||||
'c_stext' => '',
|
'c_stext' => '',
|
||||||
@ -144,6 +146,7 @@ class phpbb_dbal_db_tools_test extends phpbb_database_test_case
|
|||||||
array('c_bool', 0),
|
array('c_bool', 0),
|
||||||
array('c_vchar', str_repeat('a', 255)),
|
array('c_vchar', str_repeat('a', 255)),
|
||||||
array('c_vchar_size', str_repeat('a', 4)),
|
array('c_vchar_size', str_repeat('a', 4)),
|
||||||
|
array('c_vchar_null', str_repeat('a', 4)),
|
||||||
array('c_char_size', str_repeat('a', 4)),
|
array('c_char_size', str_repeat('a', 4)),
|
||||||
array('c_xstext', str_repeat('a', 1000)),
|
array('c_xstext', str_repeat('a', 1000)),
|
||||||
array('c_stext', str_repeat('a', 3000)),
|
array('c_stext', str_repeat('a', 3000)),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user