mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge branch '10.2' into 10.3
This commit is contained in:
@@ -3899,6 +3899,11 @@ bool mysql_show_binlog_events(THD* thd)
|
||||
List<Item> field_list;
|
||||
const char *errmsg = 0;
|
||||
bool ret = TRUE;
|
||||
/*
|
||||
Using checksum validate the correctness of event pos specified in show
|
||||
binlog events command.
|
||||
*/
|
||||
bool verify_checksum_once= false;
|
||||
IO_CACHE log;
|
||||
File file = -1;
|
||||
MYSQL_BIN_LOG *binary_log= NULL;
|
||||
@@ -3954,6 +3959,10 @@ bool mysql_show_binlog_events(THD* thd)
|
||||
mi= 0;
|
||||
}
|
||||
|
||||
/* Validate user given position using checksum */
|
||||
if (lex_mi->pos == pos && !opt_master_verify_checksum)
|
||||
verify_checksum_once= true;
|
||||
|
||||
unit->set_limit(thd->lex->current_select);
|
||||
limit_start= unit->offset_limit_cnt;
|
||||
limit_end= unit->select_limit_cnt;
|
||||
@@ -4033,15 +4042,16 @@ bool mysql_show_binlog_events(THD* thd)
|
||||
for (event_count = 0;
|
||||
(ev = Log_event::read_log_event(&log,
|
||||
description_event,
|
||||
opt_master_verify_checksum)); )
|
||||
(opt_master_verify_checksum ||
|
||||
verify_checksum_once))); )
|
||||
{
|
||||
if (event_count >= limit_start &&
|
||||
ev->net_send(protocol, linfo.log_file_name, pos))
|
||||
ev->net_send(protocol, linfo.log_file_name, pos))
|
||||
{
|
||||
errmsg = "Net error";
|
||||
delete ev;
|
||||
errmsg = "Net error";
|
||||
delete ev;
|
||||
mysql_mutex_unlock(log_lock);
|
||||
goto err;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (ev->get_type_code() == FORMAT_DESCRIPTION_EVENT)
|
||||
@@ -4067,10 +4077,11 @@ bool mysql_show_binlog_events(THD* thd)
|
||||
delete ev;
|
||||
}
|
||||
|
||||
verify_checksum_once= false;
|
||||
pos = my_b_tell(&log);
|
||||
|
||||
if (++event_count >= limit_end)
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
if (unlikely(event_count < limit_end && log.error))
|
||||
|
||||
Reference in New Issue
Block a user