• Luis Soares's avatar
    BUG#49479: Slave stops with syntax error: LOAD DATA event without · 59571928
    Luis Soares authored
    escaped field names
    
    When in mixed or statement mode, the master logs LOAD DATA
    queries by resorting to an Execute_load_query_log_event. This
    event does not contain the original query, but a rewritten
    version of it, which includes the table field names. However, the
    rewrite does not escape the field names. If these names match a
    reserved keyword, then the slave will stop with a syntax error
    when executing the event.
    
    We fix this by escaping the fields names as it happens already
    for the table name.
    
    mysql-test/extra/rpl_tests/rpl_loaddata.test:
      Added test case for the reported bug.
    mysql-test/r/mysqlbinlog.result:
      Changed result to support escaped field name.
    mysql-test/suite/binlog/r/binlog_killed_simulate.result:
      Changed result to support escaped field name.
    mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
      Changed result to support escaped field name.
    mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
      Changed result to support escaped field name.
    mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
      Changed result to support escaped field name.
    mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
      Changed result to support escaped field name.
    mysql-test/suite/rpl/r/rpl_loaddata.result:
      Added result for new test. 
      Changed show slave status positions which are now different because of
      extra escape character in field names.
    mysql-test/suite/rpl/r/rpl_loaddata_fatal.result:
      Changed show slave status positions which are now different because of
      extra escape character.
    mysql-test/suite/rpl/r/rpl_loaddata_map.result:
      Changed result to support escaped field name.
    mysql-test/suite/rpl/r/rpl_stm_log.result:
      Changed result to support escaped field name.
    mysql-test/t/mysqlbinlog.test:
      Changed positions which is now different because of extra escape 
      character in field names.
    sql/sql_load.cc:
      Appended escape characters before and after field names.
    59571928
binlog_row_mix_innodb_myisam.result 32.2 KB