mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
88e3aead85
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/
446 lines
11 KiB
Text
446 lines
11 KiB
Text
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;
|