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; }