diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index b4168e27..1ca3cde9 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -786,12 +786,14 @@ if (!defined('Adminer\DRIVER')) { * @return bool */ function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { + global $connection; $alter = array(); foreach ($fields as $field) { if ($field[1]) { $default = $field[1][3]; if (preg_match('~ GENERATED~', $default)) { - $field[1][3] = $field[1][2]; + // swap default and null + $field[1][3] = (preg_match('~MariaDB~', $connection->server_info) ? "" : $field[1][2]); // MariaDB doesn't support NULL on virtual columns $field[1][2] = $default; } $alter[] = ($table != "" ? ($field[0] != "" ? "CHANGE " . idf_escape($field[0]) : "ADD") : " ") . " " . implode($field[1]) . ($table != "" ? $field[2] : ""); diff --git a/changes.txt b/changes.txt index e4e174ad..a77bce59 100644 --- a/changes.txt +++ b/changes.txt @@ -2,6 +2,7 @@ Adminer dev: Fix gzip export (bug #896) Fix importing multiple SQL files not terminated by semicolon Use for altering collations +MariaDB: Fix creating and altering generated columns (bug #897) Adminer 5.0.2 (released 2025-03-10): PostgreSQL: Fix setting NULL and original value on enum (bug #884)