diff options
author | Andrei Elkin <andrei.elkin@mariadb.com> | 2019-01-10 16:32:56 +0200 |
---|---|---|
committer | Andrei Elkin <andrei.elkin@mariadb.com> | 2019-01-23 15:48:06 +0200 |
commit | cce2b45c8f5b3245d2e63d2763aeec59153d2c6f (patch) | |
tree | 453828894d440f46a204914d5fa3338431814be6 /sql/sql_plugin_compat.h | |
parent | 2a0f1d613219ad7962c3394b9c1996ece40926df (diff) | |
download | mariadb-git-cce2b45c8f5b3245d2e63d2763aeec59153d2c6f.tar.gz |
MDEV-17803 Row-based event is not applied when table map id is greater
32 bit int
Row-based slave applier could not parse correctly the table id when
the value exceeded the max of 32 bit unsigned int.
The reason turns out in that the being parsed value placeholder
was sized as 4 bytes.
The type is fixed to ulonglong.
Additionally the patch works around Rows_log_event::m_table_id 4 bytes
size on 32 bits platforms. In case of last_table_id value overflows
the 4 byte max, there won't be the zero value for m_table_id generated
and the first wrapped-around value is one, this is thanks to excluding
UINT_MAX32 + 1 from TABLE_SHARE::table_map_id.
Diffstat (limited to 'sql/sql_plugin_compat.h')
0 files changed, 0 insertions, 0 deletions