summaryrefslogtreecommitdiff
path: root/storage/innobase/dict/dict0dict.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/dict/dict0dict.cc')
-rw-r--r--storage/innobase/dict/dict0dict.cc14
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)) {