• unknown's avatar
    Bug #18199 PURGE BINARY LOGS fails silently with missing logs; · 6cf64b26
    unknown authored
    Bug #18453  Warning/error message if there is a mismatch between ...
     
    There were three problems:
     
     1. the reported lack of warnings for the BEFORE syntax of PURGE;
     2. the similar lack of warnings for the TO syntax;
     3. incompatible behaviour between the two in that the latter blanked out
        regardlessly of presence or lack the actual file corresponding to
        an index record; the former version gave up at the first mismatch.
    
    fixed with deploying the warning's generation and synronizing logics of 
    purge_logs() and purge_logs_before_date().
    my_stat() is called in either of two branches of purge_logs() (responsible
    for the TO syntax of PURGE) similarly to how it has behaved in the BEFORE syntax.
    If there is no actual binlog file, my_stat returns NULL and my_delete is
    not invoked.
    A critical error is reported to the user if a file from the index
    could not be retrieved info about or deleted with a system error code
    different than ENOENT.
    
    
    sql/log.cc:
      generating warning in two functions.
      refining logics to call my_stat() by purge_logs() as it happens
      in purge_logs_before_date().
      my_delete() is called only if my_stat() ensured existance of the file.
      A critical error is reported to the user if a file from the index
      could not be my_stat():ed or my_delete():d with an error different
      than ENOENT.
    sql/share/errmsg.txt:
      new error message
    mysql-test/include/show_binary_logs.inc:
      a new macro - shortcut of show binary logs
    mysql-test/r/binlog_index.result:
      new results
    mysql-test/t/binlog_index.test:
      a regression test for the bugs
    6cf64b26
errmsg.txt 338 KB