• Venkatesh Duggirala's avatar
    BUG#20574550 MAIN.MERGE TEST CASE FAILS IF BINLOG_FORMAT=ROW · 29cc2c28
    Venkatesh Duggirala authored
    The main.merge test case was failing when tested using row based
    binlog format.
    
    While analyzing the issue it was found the following issues:
    
    a) The server is calling binlog related code even when a statement will
       not be binlogged;
    b) The child table list was not present into table structure by the time
       to generate the create table statement;
    c) The tables in the child table list will not be opened yet when
       generating table create info using row based replication;
    d) CREATE TABLE LIKE TEMP_TABLE does not preserve original table storage
       engine when using row based replication;
    
    This patch addressed all above issues.
    
    @ sql/sql_class.h
    
    Added a function to determine if the binary log is disabled to
      the current session. This is related with issue (a) above.
    
    @ sql/sql_table.cc
    
    Added code to skip binary logging related code if the statement
      will not be binlogged. This is related with issue (a) above.
    
    Added code to add the children to the query list of the table that
      will have its CREATE TABLE generated. This is related with issue (b)
      above.
    
    Added code to force the storage engine to be generated into the
      CREATE TABLE. This is related with issue (d) above.
    
    @ storage/myisammrg/ha_myisammrg.cc
    
    Added a test to skip a table getting info about a child table if the
      child table is not opened. This is related to issue (c) above.
    29cc2c28
binlog_row_binlog.result 76.7 KB