mirror of
https://github.com/vrana/adminer.git
synced 2025-08-10 08:34:20 +02:00
PostgreSQL: Fix editing record that contains a field with GENERATED ALWAYS default value
Fields with GENERATED ALWAYS default values are also disabled. Thanks to PurpleTape (https://github.com/adminerevo/adminerevo/issues/201).
This commit is contained in:
@@ -948,13 +948,14 @@ function input($field, $value, $function) {
|
|||||||
$function = null;
|
$function = null;
|
||||||
}
|
}
|
||||||
$functions = (isset($_GET["select"]) || $reset ? array("orig" => lang('original')) : array()) + $adminer->editFunctions($field);
|
$functions = (isset($_GET["select"]) || $reset ? array("orig" => lang('original')) : array()) + $adminer->editFunctions($field);
|
||||||
$attrs = " name='fields[$name]'";
|
$disabled = stripos($field["default"], "GENERATED ALWAYS AS ") === 0 ? " disabled=''" : "";
|
||||||
|
$attrs = " name='fields[$name]'$disabled";
|
||||||
if ($field["type"] == "enum") {
|
if ($field["type"] == "enum") {
|
||||||
echo h($functions[""]) . "<td>" . $adminer->editInput($_GET["edit"], $field, $attrs, $value);
|
echo h($functions[""]) . "<td>" . $adminer->editInput($_GET["edit"], $field, $attrs, $value);
|
||||||
} else {
|
} else {
|
||||||
$has_function = (in_array($function, $functions) || isset($functions[$function]));
|
$has_function = (in_array($function, $functions) || isset($functions[$function]));
|
||||||
echo (count($functions) > 1
|
echo (count($functions) > 1
|
||||||
? "<select name='function[$name]'>" . optionlist($functions, $function === null || $has_function ? $function : "") . "</select>"
|
? "<select name='function[$name]'$disabled>" . optionlist($functions, $function === null || $has_function ? $function : "") . "</select>"
|
||||||
. on_help("getTarget(event).value.replace(/^SQL\$/, '')", 1)
|
. on_help("getTarget(event).value.replace(/^SQL\$/, '')", 1)
|
||||||
. script("qsl('select').onchange = functionChange;", "")
|
. script("qsl('select').onchange = functionChange;", "")
|
||||||
: h(reset($functions))
|
: h(reset($functions))
|
||||||
@@ -1019,6 +1020,11 @@ function input($field, $value, $function) {
|
|||||||
*/
|
*/
|
||||||
function process_input($field) {
|
function process_input($field) {
|
||||||
global $adminer, $driver;
|
global $adminer, $driver;
|
||||||
|
|
||||||
|
if (stripos($field["default"], "GENERATED ALWAYS AS ") === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
$idf = bracket_escape($field["field"]);
|
$idf = bracket_escape($field["field"]);
|
||||||
$function = $_POST["function"][$idf];
|
$function = $_POST["function"][$idf];
|
||||||
$value = $_POST["fields"][$idf];
|
$value = $_POST["fields"][$idf];
|
||||||
|
Reference in New Issue
Block a user