summaryrefslogtreecommitdiff
path: root/sql/wsrep_mysqld.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/wsrep_mysqld.cc')
-rw-r--r--sql/wsrep_mysqld.cc35
1 files changed, 16 insertions, 19 deletions
diff --git a/sql/wsrep_mysqld.cc b/sql/wsrep_mysqld.cc
index 304da7ec979..99a8105efd9 100644
--- a/sql/wsrep_mysqld.cc
+++ b/sql/wsrep_mysqld.cc
@@ -1191,30 +1191,27 @@ wsrep_append_fk_parent_table(THD* thd, TABLE_LIST* tables, wsrep::key_array* key
uint counter;
MDL_savepoint mdl_savepoint= thd->mdl_context.mdl_savepoint();
- bool open_error=
- open_tables(thd, &tables, &counter, MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL);
- if (unlikely(open_error && (thd->killed || thd->is_error())))
+ if (thd->open_temporary_tables(tables) ||
+ open_tables(thd, &tables, &counter, MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL))
{
- WSREP_WARN("unable to open table for FK checks in OPTIMIZE/REPAIR/ALTER processing");
+ WSREP_DEBUG("unable to open table for FK checks for %s", thd->query());
}
- else
+
+ for (table= tables; table; table= table->next_local)
{
- for (table= tables; table; table= table->next_local)
+ if (!is_temporary_table(table) && table->table)
{
- if (table->table)
+ FOREIGN_KEY_INFO *f_key_info;
+ List<FOREIGN_KEY_INFO> f_key_list;
+
+ table->table->file->get_foreign_key_list(thd, &f_key_list);
+ List_iterator_fast<FOREIGN_KEY_INFO> it(f_key_list);
+ while ((f_key_info=it++))
{
- FOREIGN_KEY_INFO *f_key_info;
- List<FOREIGN_KEY_INFO> f_key_list;
-
- table->table->file->get_foreign_key_list(thd, &f_key_list);
- List_iterator_fast<FOREIGN_KEY_INFO> it(f_key_list);
- while ((f_key_info=it++))
- {
- WSREP_DEBUG("appended fkey %s", f_key_info->referenced_table->str);
- keys->push_back(wsrep_prepare_key_for_toi(f_key_info->referenced_db->str,
- f_key_info->referenced_table->str,
- wsrep::key::shared));
- }
+ WSREP_DEBUG("appended fkey %s", f_key_info->referenced_table->str);
+ keys->push_back(wsrep_prepare_key_for_toi(f_key_info->referenced_db->str,
+ f_key_info->referenced_table->str,
+ wsrep::key::shared));
}
}
}