diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index 9e426b18..563d1ffe 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -555,6 +555,7 @@ if (!defined("DRIVER")) { "privileges" => array_flip(preg_split('~, *~', $row["Privileges"])), "comment" => $row["Comment"], "primary" => ($row["Key"] == "PRI"), + "generated" => preg_match('~ GENERATED$~', $row["Extra"]), ); } return $return; diff --git a/adminer/edit.inc.php b/adminer/edit.inc.php index a6283161..bdc1fca6 100644 --- a/adminer/edit.inc.php +++ b/adminer/edit.inc.php @@ -4,7 +4,7 @@ $fields = fields($TABLE); $where = (isset($_GET["select"]) ? ($_POST["check"] && count($_POST["check"]) == 1 ? where_check($_POST["check"][0], $fields) : "") : where($_GET, $fields)); $update = (isset($_GET["select"]) ? $_POST["edit"] : $where); foreach ($fields as $name => $field) { - if (!isset($field["privileges"][$update ? "update" : "insert"]) || $adminer->fieldName($field) == "") { + if (!isset($field["privileges"][$update ? "update" : "insert"]) || $adminer->fieldName($field) == "" || $field["generated"]) { unset($fields[$name]); } } diff --git a/changes.txt b/changes.txt index 6d2ec5ee..300bb47b 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,6 @@ +Adminer 4.7.3-dev: +MySQL: Skip editing generated columns + Adminer 4.7.2 (released 2019-07-18): Do not attempt logging in without password (bug #676) Stretch footer over the whole table width (bug #624)