Commit cf3adaaa authored by Jan Lindström's avatar Jan Lindström

MDEV-25494 : Assertion `tl->table == __null' failed in bool THD::open_temporary_table(TABLE_LIST*)

There is no need to open or process temporary tables at
wsrep_append_fk_parent_table.
parent 7b555ff2
connection node_2;
connection node_1;
SET SESSION binlog_format=STATEMENT;
Warnings:
Warning 1105 MariaDB Galera and flashback do not support binlog format: STATEMENT
CREATE TEMPORARY TABLE t (i INT) UNION=(t);
ALTER TABLE t ADD extrac CHAR(1);
SHOW CREATE TABLE t;
Table Create Table
t CREATE TEMPORARY TABLE `t` (
`i` int(11) DEFAULT NULL,
`extrac` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t;
--source include/galera_cluster.inc
SET SESSION binlog_format=STATEMENT;
CREATE TEMPORARY TABLE t (i INT) UNION=(t);
ALTER TABLE t ADD extrac CHAR(1);
SHOW CREATE TABLE t;
DROP TABLE t;
......@@ -1201,14 +1201,23 @@ wsrep_append_fk_parent_table(THD* thd, TABLE_LIST* tables, wsrep::key_array* key
bool fail= false;
TABLE_LIST *table;
for (table= tables; table; table= table->next_local)
{
if (is_temporary_table(table))
{
WSREP_DEBUG("Temporary table %s.%s already opened query=%s", table->db.str,
table->table_name.str, wsrep_thd_query(thd));
return false;
}
}
thd->release_transactional_locks();
uint counter;
MDL_savepoint mdl_savepoint= thd->mdl_context.mdl_savepoint();
if (thd->open_temporary_tables(tables) ||
open_tables(thd, &tables, &counter, MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL))
if (open_tables(thd, &tables, &counter, MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL))
{
WSREP_DEBUG("unable to open table for FK checks for %s", thd->query());
WSREP_DEBUG("Unable to open table for FK checks for %s", wsrep_thd_query(thd));
fail= true;
goto exit;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment