• unknown's avatar
    Bug #54579 Wrong unsafe warning for INSERT DELAYED in SBR · 3b1a7ebb
    unknown authored
          
    The lock_type is upgrade to TL_WRITE from TL_WRITE_DELAYED for
    INSERT DELAYED when inserting multi values in one statement.
    It's safe. But it causes an unsafe warning in SBR.
          
    Make INSERT DELAYED safe by logging it as INSERT without DELAYED.
    
    
    mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
      Updated the test file to test multi INSERT DELAYED statement
      is no longer causes an unsafe warning and binlogged as INSERT
      without DELAYED.
    mysql-test/extra/rpl_tests/create_recursive_construct.inc:
      Updated for the patch of bug#54579.
    mysql-test/suite/binlog/r/binlog_row_binlog.result:
      Updated for the patch of bug#54579.
    mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
      Test result for BUG#54579.
    mysql-test/suite/binlog/r/binlog_stm_binlog.result:
      Updated for the patch of bug#54579.
    mysql-test/suite/binlog/r/binlog_unsafe.result:
      Updated for the patch of bug#54579.
    mysql-test/suite/binlog/t/binlog_unsafe.test:
      Updated for the patch of bug#54579.
    sql/sql_insert.cc:
      Added code to genetate a new query string for removing
      DELAYED keyword for multi INSERT DEALAYED statement.
    sql/sql_yacc.yy:
      Added code to record the DELAYED keyword position and remove the setting
      of unsafe statement for INSERT DELAYED statement
    3b1a7ebb
sql_lex.h 79.7 KB