1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-34705: Binlog-in-engine: Use the whole page for binlog data

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
This commit is contained in:
Kristian Nielsen
2025-03-21 21:10:25 +01:00
parent 8b3b6770f4
commit e4935b716a
6 changed files with 69 additions and 39 deletions

View File

@@ -4836,7 +4836,22 @@ show_engine_binlog_events(THD* thd, Protocol *protocol, LEX_MASTER_INFO *lex_mi)
return true;
}
if (reader->init_legacy_pos(lex_mi->log_file_name, lex_mi->pos))
ulonglong pos= lex_mi->pos;
/*
The positions "0" and "4" are unfortunately traditionally used
interchangeably to mean "the start of the binlog". Thus, we might here
easily see a starting position of "4", which is probably not valid in
the engine, but which really means "start of the file".
So here we have this ugly hack where "4" means the same as "0". Well,
use of offsets is discourated anyway in the new binlog (in favour of
GTID), and "4" is not going to be a valid position most likely, or if
it is, "0" will be equivalent (at least it is so for the InnoDB binlog
implementation.
*/
if (pos == 4)
pos= 0;
if (reader->init_legacy_pos(lex_mi->log_file_name, pos))
{
err= true;
goto end;