diff options
author | Dhruv Goel <dhruv.goel92@gmail.com> | 2014-07-22 00:08:07 +0530 |
---|---|---|
committer | Dhruv Goel <dhruv.goel92@gmail.com> | 2014-07-22 00:08:07 +0530 |
commit | 1c8357a1cba79ed490d7bebda59c67ea3c2bda46 (patch) | |
tree | 21c3ef42a3fcdf7272183b6de4057efb1f2847ab /phpBB/phpbb | |
parent | 449ffbe7992bcda2f28ceaf861329e913575149a (diff) | |
parent | 4917ebe93a7490d814848f2ce6a5c80343599dcf (diff) | |
download | forums-1c8357a1cba79ed490d7bebda59c67ea3c2bda46.tar forums-1c8357a1cba79ed490d7bebda59c67ea3c2bda46.tar.gz forums-1c8357a1cba79ed490d7bebda59c67ea3c2bda46.tar.bz2 forums-1c8357a1cba79ed490d7bebda59c67ea3c2bda46.tar.xz forums-1c8357a1cba79ed490d7bebda59c67ea3c2bda46.zip |
Merge pull request #2651 from nickvergessen/ticket/12448
[ticket/12448] Allow null as default value for columns
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r-- | phpBB/phpbb/db/tools.php | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index 18defc4535..ae0c695aa2 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -1487,8 +1487,16 @@ class tools $return_array['textimage'] = $column_type === '[text]'; - $sql .= 'NOT NULL'; - $sql_default .= 'NOT NULL'; + if (!is_null($column_data[1]) || (isset($column_data[2]) && $column_data[2] == 'auto_increment')) + { + $sql .= 'NOT NULL'; + $sql_default .= 'NOT NULL'; + } + else + { + $sql .= 'NULL'; + $sql_default .= 'NULL'; + } $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 .= 'NOT NULL'; + + if (!is_null($column_data[1])) + { + $sql .= 'NOT NULL'; + } + else + { + $sql .= 'NULL'; + } 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) 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; @@ -1556,6 +1572,12 @@ class tools $return_array['null'] = 'NOT NULL'; $sql .= 'NOT NULL '; } + else + { + $default_val = "'" . $column_data[1] . "'"; + $return_array['null'] = 'NULL'; + $sql .= 'NULL '; + } $return_array['default'] = $default_val; @@ -1588,8 +1610,11 @@ class tools $sql .= ' ' . $column_type; } - $sql .= ' NOT NULL '; - $sql .= (!is_null($column_data[1])) ? "DEFAULT '{$column_data[1]}'" : ''; + if (!is_null($column_data[1])) + { + $sql .= ' NOT NULL '; + $sql .= "DEFAULT '{$column_data[1]}'"; + } break; } |