diff --git a/ChangeLog b/ChangeLog
index 0c276f5264..1330a159de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -62,6 +62,7 @@ phpMyAdmin - ChangeLog
- issue #11836 Static analysis error for valid WHERE condition with IF keyword
- issue #11800 Syntax Verifier error using REGEXP in SQL statement
- issue #11799 Backslashes in comments are being interpreted as escape characters
+- issue #11909 Can't insert row into table that contains generated column
4.5.4.1 (2016-01-29)
- issue #11892 Error with PMA 4.4.15.3
diff --git a/libraries/insert_edit.lib.php b/libraries/insert_edit.lib.php
index c3d58c0e57..820a55a81a 100644
--- a/libraries/insert_edit.lib.php
+++ b/libraries/insert_edit.lib.php
@@ -1278,6 +1278,13 @@ function PMA_getValueColumnForOtherDatatypes($column, $default_char_editing,
$onChangeClause, $tabindex, $tabindex_for_value, $idindex, $data_type
);
+ $virtual = array(
+ 'VIRTUAL', 'PERSISTENT', 'VIRTUAL GENERATED', 'STORED GENERATED'
+ );
+ if (in_array($column['Extra'], $virtual)) {
+ $html_output .= '';
+ }
if ($column['Extra'] == 'auto_increment') {
$html_output .= '';
diff --git a/tbl_replace.php b/tbl_replace.php
index 3d503b72a5..a09d5de93d 100644
--- a/tbl_replace.php
+++ b/tbl_replace.php
@@ -181,6 +181,10 @@ foreach ($loop_array as $rownumber => $where_clause) {
= isset($_REQUEST['auto_increment']['multi_edit'][$rownumber])
? $_REQUEST['auto_increment']['multi_edit'][$rownumber]
: null;
+ $multi_edit_virtual
+ = isset($_REQUEST['virtual']['multi_edit'][$rownumber])
+ ? $_REQUEST['virtual']['multi_edit'][$rownumber]
+ : null;
// When a select field is nullified, it's not present in $_REQUEST
// so initialize it; this way, the foreach($multi_edit_columns) will process it
@@ -259,13 +263,15 @@ foreach ($loop_array as $rownumber => $where_clause) {
$gis_from_wkb_functions, $func_optional_param, $func_no_param, $key
);
- list($query_values, $query_fields)
- = PMA_getQueryValuesForInsertAndUpdateInMultipleEdit(
- $multi_edit_columns_name, $multi_edit_columns_null, $current_value,
- $multi_edit_columns_prev, $multi_edit_funcs, $is_insert,
- $query_values, $query_fields, $current_value_as_an_array,
- $value_sets, $key, $multi_edit_columns_null_prev
- );
+ if (! isset($multi_edit_virtual) || ! isset($multi_edit_virtual[$key])) {
+ list($query_values, $query_fields)
+ = PMA_getQueryValuesForInsertAndUpdateInMultipleEdit(
+ $multi_edit_columns_name, $multi_edit_columns_null, $current_value,
+ $multi_edit_columns_prev, $multi_edit_funcs, $is_insert,
+ $query_values, $query_fields, $current_value_as_an_array,
+ $value_sets, $key, $multi_edit_columns_null_prev
+ );
+ }
if (isset($multi_edit_columns_null[$key])) {
$multi_edit_columns[$key] = null;
}