-
Daogang Qu authored
Bug #28258992 FUNCTION CALL NOT WRITTEN TO BINLOG IF IT CONTAIN DML ALONG WITH DROP TEMP TABLE - post fix Problem 1 ========= Calling a function updating temporary table is not compatible with FLUSH TABLES WITH READ LOCK in mixed mode, because we set binlog format to statement for writing a 'function call' top statement into binary log if the function contains DML statement(s) on temporary table in mixed mode after fixing Bug#28258992. Which causes an known timeout issue in statement binlog format. Fix 1 ===== To fix the problem, split the case from original script and only run the case in row binlog format. Problem 2 ========= There is an assertion `thd->binlog_evt_union.do_union' failure in MYSQL_BIN_LOG::stop_union_events(...) when restoring sub statement state. The root cause is that we change the binlog format after resetting sub statement state when executing a function which contains DML statement(s) on temporary table. Fix 2 ===== To fix the problem, we change the binlog format before resetting sub statement state when executing a function which contains DML statement(s) on temporary table.
Daogang Qu authoredBug #28258992 FUNCTION CALL NOT WRITTEN TO BINLOG IF IT CONTAIN DML ALONG WITH DROP TEMP TABLE - post fix Problem 1 ========= Calling a function updating temporary table is not compatible with FLUSH TABLES WITH READ LOCK in mixed mode, because we set binlog format to statement for writing a 'function call' top statement into binary log if the function contains DML statement(s) on temporary table in mixed mode after fixing Bug#28258992. Which causes an known timeout issue in statement binlog format. Fix 1 ===== To fix the problem, split the case from original script and only run the case in row binlog format. Problem 2 ========= There is an assertion `thd->binlog_evt_union.do_union' failure in MYSQL_BIN_LOG::stop_union_events(...) when restoring sub statement state. The root cause is that we change the binlog format after resetting sub statement state when executing a function which contains DML statement(s) on temporary table. Fix 2 ===== To fix the problem, we change the binlog format before resetting sub statement state when executing a function which contains DML statement(s) on temporary table.
Loading