1
0
mirror of https://github.com/MariaDB/server.git synced 2025-05-08 15:01:49 +03:00
mariadb/mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result
Luis Soares 6395cb8ecf BUG#34582: FLUSH LOGS does not close and reopen the binlog index
file
      
Issuing 'FLUSH LOGS' does not close and reopen indexfile.
Instead a SEEK_SET is performed.
      
This patch makes index file to be closed and reopened whenever a
rotation happens (FLUSH LOGS is issued or binary log exceeds 
maximum configured size).

mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result:
  Result file.
mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test:
  Test case.
sql/log.cc:
  Added LOG_CLOSE_INDEX flag when calling MYSQL_BIN_LOG::close
  from within MYSQL_BIN_LOG::new_file_impl (which should just be
  called whenever a rotation is to happen - FLUSH LOGS issued or
  binlog size exceeds the maximum configured).
2009-10-20 09:39:40 +01:00

51 lines
1.7 KiB
Plaintext

RESET MASTER;
CREATE TABLE t1 (a int);
### assertion: index file contains regular entries
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
SELECT @index;
@index
master-bin.000001
### assertion: show original binlogs
show binary logs;
Log_name File_size
master-bin.000001 #
### assertion: binlog contents from regular entries
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a int)
FLUSH LOGS;
### assertion: index file contains renamed binlog and the new one
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
SELECT @index;
@index
master-bin-b34582.000001
master-bin.000002
### assertion: original binlog content still exists, despite we
### renamed and changed the index file
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin-b34582.000001 # Query # # use `test`; CREATE TABLE t1 (a int)
### assertion: user changed binlog index shows correct entries
show binary logs;
Log_name File_size
master-bin-b34582.000001 #
master-bin.000002 #
DROP TABLE t1;
### assertion: purging binlogs up to binlog created after instrumenting index file should work
PURGE BINARY LOGS TO 'master-bin.000002';
### assertion: show binary logs should only contain latest binlog
show binary logs;
Log_name File_size
master-bin.000002 #
### assertion: assert that binlog files were indeed purged (using file_exists calls)
### assertion: assert that not purged binlog file exists
### assertion: show index file contents and these should match show binary logs issued above
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
SELECT @index;
@index
master-bin.000002
RESET MASTER;