Skip to content
  • Daogang Qu's avatar
    f654475b
    Bug #28258992 FUNCTION CALL NOT WRITTEN TO BINLOG IF IT CONTAIN DML ALONG... · f654475b
    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.
    f654475b
    Bug #28258992 FUNCTION CALL NOT WRITTEN TO BINLOG IF IT CONTAIN DML ALONG...
    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.
Loading