From 553409d6da19245a5a5e7413cdf2655ecdb192d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A4=9A=E5=8D=8E=E5=85=B4?= <15381158111@163.com> Date: Mon, 12 Jul 2021 07:10:41 +0000 Subject: [PATCH] fix table doesn't exist --- sql/sql_base.cc | 3 +-- sql/sql_trigger.cc | 3 ++- sql/sql_trigger.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 11f4cb9890b07..cf6a3c46fe327 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -4420,10 +4420,9 @@ handle_table(THD *thd, Query_tables_list *prelocking_ctx, { if (table_list->table->triggers) { - *need_prelocking= TRUE; if (table_list->table->triggers-> - add_tables_and_routines_for_triggers(thd, prelocking_ctx, table_list)) + add_tables_and_routines_for_triggers(thd, prelocking_ctx, table_list,need_prelocking)) return TRUE; } if (table_list->table->file->referenced_by_foreign_key()) diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc index 52817ef65ae33..a300db1cd0618 100644 --- a/sql/sql_trigger.cc +++ b/sql/sql_trigger.cc @@ -2237,7 +2237,7 @@ bool Table_triggers_list:: add_tables_and_routines_for_triggers(THD *thd, Query_tables_list *prelocking_ctx, - TABLE_LIST *table_list) + TABLE_LIST *table_list,bool *need_prelocking) { DBUG_ASSERT(static_cast(table_list->lock_type) >= static_cast(TL_WRITE_ALLOW_WRITE)); @@ -2253,6 +2253,7 @@ add_tables_and_routines_for_triggers(THD *thd, for ( ; triggers ; triggers= triggers->next) { + *need_prelocking = TRUE; sp_head *trigger= triggers->body; if (!triggers->body) // Parse error diff --git a/sql/sql_trigger.h b/sql/sql_trigger.h index e2e6e1b7acc63..f472c417aec62 100644 --- a/sql/sql_trigger.h +++ b/sql/sql_trigger.h @@ -269,7 +269,7 @@ class Table_triggers_list: public Sql_alloc bool add_tables_and_routines_for_triggers(THD *thd, Query_tables_list *prelocking_ctx, - TABLE_LIST *table_list); + TABLE_LIST *table_list,bool *need_prelocking); Field **nullable_fields() { return record0_field; } void reset_extra_null_bitmap()