• unknown's avatar
    Replication: various small fixes specific to the new binlog format of 5.0 · 9b867a2a
    unknown authored
    (including one which may explain autobuild's failure of yesterday)
    
    
    client/mysqlbinlog.cc:
      - In mysqlbinlog, we should not reset the Format event when we see Rotate. If a binlog started with a Format event, it is not going to switch later to 4.0 format.
      I had already did the same fix in Rotate_log_event::exec_event() in replication.
      - Fix for a merge bug.
    sql/log_event.cc:
      An event with an uninited catalog (read from a 4.x server) is not the same as an event with a NULL catalog
      (5.0 server which did not specify catalog), the difference is that they are not in the same format;
      so I introduce a way to know if the catalog has been inited or not. This fixes a rpl_trunc_binlog failure
      I had.
      When we leave Load_log_event::exec_event(), we must reset thd->catalog to 0, like we already do
      in Query_log_event::exec_event(). This fixes a Valgrind error which popped in rpl_charset (which may
      be what caused autobuild to crash yesterday).
      And a fix for event's parsing (the position was always computed right because start_dup==end is always true
      and will until we add new string members to Query_log_event.
    sql/log_event.h:
      catalog_len changed from uint to int to allow -1, which means "not inited"
      (I preferred to do it like this rather than create a new bool var Query_log_event::catalog_inited
      like we have in Query_log_event::sql_mode_inited; that's because catalog will not use the whole range of int,
      so it's allowed to pick -1 as a special value and have only one var.
    sql/slave.cc:
      comments
    9b867a2a
log_event.cc 126 KB