diff options
| author | Oleksandr Byelkin <sanja@mariadb.com> | 2022-02-01 20:33:04 +0100 |
|---|---|---|
| committer | Oleksandr Byelkin <sanja@mariadb.com> | 2022-02-01 20:33:04 +0100 |
| commit | cf63eecef44f189ce2d221612dee9dfc1885ba4e (patch) | |
| tree | 93b4e6645a1d371bd8012a0aa8e6e3a3d541b2a6 /sql/sql_insert.cc | |
| parent | fb40a2fabf8d8cf765c83a0b8e609dd893c75ec3 (diff) | |
| parent | c04a203a10e282e1f33fd04d8a1b7ff0b076bce5 (diff) | |
| download | mariadb-git-cf63eecef44f189ce2d221612dee9dfc1885ba4e.tar.gz | |
Merge branch '10.4' into 10.5
Diffstat (limited to 'sql/sql_insert.cc')
| -rw-r--r-- | sql/sql_insert.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 969d831bc4e..108a0c59665 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -2503,6 +2503,11 @@ bool delayed_get_table(THD *thd, MDL_request *grl_protection_request, di->table_list.alias.length= di->table_list.table_name.length= di->thd.query_length(); di->table_list.db= di->thd.db; /* + Nulify select_lex because, if the thread that spawned the current one + disconnects, the select_lex will point to freed memory. + */ + di->table_list.select_lex= NULL; + /* We need the tickets so that they can be cloned in handle_delayed_insert */ @@ -3162,6 +3167,8 @@ pthread_handler_t handle_delayed_insert(void *arg) di->handler_thread_initialized= TRUE; di->table_list.mdl_request.ticket= NULL; + thd->set_query_id(next_query_id()); + if (di->open_and_lock_table()) goto err; @@ -3280,6 +3287,7 @@ pthread_handler_t handle_delayed_insert(void *arg) if (di->tables_in_use && ! thd->lock && (!thd->killed || di->stacked_inserts)) { + thd->set_query_id(next_query_id()); /* Request for new delayed insert. Lock the table, but avoid to be blocked by a global read lock. |
