mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Bug#7853 (mysqlbinlog does not accept input from stdin)
The utility 'mysqlbinlog' now accepts input from stdin. It can now be used to read the output from, e.g., 'zcat' or other utility. client/mysqlbinlog.cc: Reading from stdin instead of stdout [sic]. Not repositioning manually since my_b_read does that correctly. mysql-test/r/mysqlbinlog.result: Adding tests for reading from stdin. mysql-test/t/mysqlbinlog.test: Adding tests for reading from stdin.
This commit is contained in:
parent
98f97f2260
commit
00a71ae83a
3 changed files with 23 additions and 5 deletions
|
@ -1121,15 +1121,15 @@ static int dump_local_log_entries(const char* logname)
|
|||
}
|
||||
check_header(file, &description_event);
|
||||
}
|
||||
else // reading from stdin; TODO: check that it works
|
||||
else // reading from stdin;
|
||||
{
|
||||
if (init_io_cache(file, fileno(result_file), 0, READ_CACHE, (my_off_t) 0,
|
||||
if (init_io_cache(file, fileno(stdin), 0, READ_CACHE, (my_off_t) 0,
|
||||
0, MYF(MY_WME | MY_NABP | MY_DONT_CHECK_FILESIZE)))
|
||||
return 1;
|
||||
check_header(file, &description_event);
|
||||
if (start_position)
|
||||
{
|
||||
/* skip 'start_position' characters from stdout */
|
||||
/* skip 'start_position' characters from stdin */
|
||||
byte buff[IO_SIZE];
|
||||
my_off_t length,tmp;
|
||||
for (length= start_position_mot ; length > 0 ; length-=tmp)
|
||||
|
@ -1142,8 +1142,6 @@ static int dump_local_log_entries(const char* logname)
|
|||
}
|
||||
}
|
||||
}
|
||||
file->pos_in_file= start_position_mot;
|
||||
file->seek_not_done=0;
|
||||
}
|
||||
|
||||
if (!description_event || !description_event->is_valid())
|
||||
|
|
|
@ -96,4 +96,14 @@ SET TIMESTAMP=1000000000;
|
|||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
insert into t1 values ("Alas");
|
||||
|
||||
--- reading stdin --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1065204671;
|
||||
BEGIN;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1065204671;
|
||||
BEGIN;
|
||||
drop table t1, t2;
|
||||
|
|
|
@ -95,5 +95,15 @@ select "--- --position --" as "";
|
|||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec $MYSQL_BINLOG --short-form --local-load=$MYSQL_TEST_DIR/var/tmp/ --read-from-remote-server --position=118 --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002
|
||||
|
||||
# Bug#7853 (mysqlbinlog does not accept input from stdin)
|
||||
--disable_query_log
|
||||
select "--- reading stdin --" as "";
|
||||
--enable_query_log
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec cat $MYSQL_TEST_DIR/std_data/trunc_binlog.000001 | $MYSQL_BINLOG --short-form -
|
||||
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec cat $MYSQL_TEST_DIR/std_data/trunc_binlog.000001 | $MYSQL_BINLOG --short-form --position=79 -
|
||||
|
||||
# clean up
|
||||
drop table t1, t2;
|
||||
|
|
Loading…
Add table
Reference in a new issue