diff --git a/libraries/classes/Controllers/Table/TableStructureController.php b/libraries/classes/Controllers/Table/TableStructureController.php index c5005e2b4e..5f13954640 100644 --- a/libraries/classes/Controllers/Table/TableStructureController.php +++ b/libraries/classes/Controllers/Table/TableStructureController.php @@ -404,6 +404,9 @@ class TableStructureController extends TableController $column_names = array_keys($columns); $changes = array(); + // @see https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-102/#information-schema + $usesLiteralNull = $this->dbi->isMariaDB() && $this->dbi->getVersion() >= 100200; + $defaultNullValue = $usesLiteralNull ? 'NULL' : null; // move columns from first to last for ($i = 0, $l = count($_POST['move_columns']); $i < $l; $i++) { $column = $_POST['move_columns'][$i]; @@ -426,7 +429,8 @@ class TableStructureController extends TableController && ($data['Default'] == 'CURRENT_TIMESTAMP' || $data['Default'] == 'current_timestamp()'); - if ($data['Null'] === 'YES' && $data['Default'] === null) { + // @see https://mariadb.com/kb/en/library/information-schema-columns-table/#examples + if ($data['Null'] === 'YES' && in_array($$data['Default'], [$defaultNullValue, null])) { $default_type = 'NULL'; } elseif ($current_timestamp) { $default_type = 'CURRENT_TIMESTAMP'; @@ -454,7 +458,7 @@ class TableStructureController extends TableController $extracted_columnspec['spec_in_brackets'], $extracted_columnspec['attribute'], isset($data['Collation']) ? $data['Collation'] : '', - $data['Null'] === 'YES' ? 'NULL' : 'NOT NULL', + $data['Null'] === 'YES' ? 'YES' : 'NO', $default_type, $current_timestamp ? '' : $data['Default'], isset($data['Extra']) && $data['Extra'] !== '' ? $data['Extra'] diff --git a/libraries/classes/CreateAddField.php b/libraries/classes/CreateAddField.php index 718b34d9e8..d80e4e24ee 100644 --- a/libraries/classes/CreateAddField.php +++ b/libraries/classes/CreateAddField.php @@ -93,7 +93,7 @@ class CreateAddField : '', isset($_POST['field_null'][$i]) ? $_POST['field_null'][$i] - : 'NOT NULL', + : 'NO', $_POST['field_default_type'][$i], $_POST['field_default_value'][$i], isset($_POST['field_extra'][$i])