diff options
Diffstat (limited to 'storage/innobase/dict/dict0dict.cc')
-rw-r--r-- | storage/innobase/dict/dict0dict.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index e6ec915c0b3..08d489a63c4 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -4342,8 +4342,10 @@ dict_foreign_push_index_error( const char* col_name; field = dict_index_get_nth_field(err_index, err_col); - col_name = dict_table_get_col_name( - table, dict_col_get_no(field->col)); + col_name = dict_col_is_virtual(field->col) + ? "(null)" + : dict_table_get_col_name( + table, dict_col_get_no(field->col)); fprintf(ef, "%s table %s with foreign key constraint" " failed. Field type or character set for column '%s' " @@ -6897,10 +6899,6 @@ dict_foreign_qualify_index( return(false); } - col_name = col_names - ? col_names[col_no] - : dict_table_get_col_name(table, col_no); - if (dict_col_is_virtual(field->col)) { for (ulint j = 0; j < table->n_v_def; j++) { col_name = dict_table_get_v_col_name(table, j); @@ -6908,6 +6906,10 @@ dict_foreign_qualify_index( break; } } + } else { + col_name = col_names + ? col_names[col_no] + : dict_table_get_col_name(table, col_no); } if (0 != innobase_strcasecmp(columns[i], col_name)) { |