mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
WL#1580: --start-datetime, --stop-datetime, --start-position (alias for --position) and --stop-position
options for mysqlbinlog, with a test file. This enables user to say "recover my database to how it was this morning at 10:30" (mysqlbinlog "--stop-datetime=2003-07-29 10:30:00"). Using time functions into client/ made me move them out of sql/ into sql-common/. + (small) fix for BUG#4507 "mysqlbinlog --read-from-remote-server sometimes cannot accept 2 binlogs" (that is, on command line). client/client_priv.h: new options for mysqlbinlog client/mysqlbinlog.cc: WL#1580: --start-datetime, --stop-datetime, --start-position (alias for --position) and --stop-position. (small) fix for BUG#4507 "mysqlbinlog --read-from-remote-server sometimes cannot accept 2 binlogs". include/my_time.h: importing time functions so that client/ files can use them. include/mysql_time.h: importing time types so that client/ files can use them. sql-common/my_time.c: importing time functions so that client/ files can use them. sql/mysql_priv.h: moving time functions out of sql/ into sql-common/ sql/time.cc: moving time functions out of sql/ into sql-common/ sql/tztime.h: moving time functions out of sql/ into sql-common/
This commit is contained in:
446
mysql-test/r/mysqlbinlog2.result
Normal file
446
mysql-test/r/mysqlbinlog2.result
Normal file
@@ -0,0 +1,446 @@
|
||||
drop table if exists t1;
|
||||
reset master;
|
||||
set @a=UNIX_TIMESTAMP("2020-01-21 15:32:22");
|
||||
set timestamp=@a;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
insert into t1 values(null, "a");
|
||||
insert into t1 values(null, "b");
|
||||
set timestamp=@a+2;
|
||||
insert into t1 values(null, "c");
|
||||
set timestamp=@a+4;
|
||||
insert into t1 values(null, "d");
|
||||
insert into t1 values(null, "e");
|
||||
flush logs;
|
||||
set timestamp=@a+1;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- Local --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=1;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=3;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
|
||||
--- Local with 2 binlogs on command line --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=1;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=3;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
|
||||
--- Remote --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=1;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=3;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
|
||||
--- Remote with 2 binlogs on command line --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=1;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
SET INSERT_ID=3;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
|
||||
--- to-last-log --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
|
||||
--- end of test --
|
||||
drop table t1;
|
||||
Reference in New Issue
Block a user