mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Bug#42977 RBR logs for rows with more than 250 column results in corrupt binlog
The issue happened to be two-fold. The table map event was recorded into binlog having an incorrect size when number of columns exceeded 251. The Row-based event had incorrect recording and restoring m_width member within the same as above conditions. Fixed with correcting m_data_size and m_width.
This commit is contained in:
@ -294,12 +294,14 @@ namespace {
|
||||
}
|
||||
#endif
|
||||
|
||||
// NB. number of printed bit values is limited to sizeof(buf) - 1
|
||||
#define DBUG_PRINT_BITSET(N,FRM,BS) \
|
||||
do { \
|
||||
char buf[256]; \
|
||||
for (uint i = 0 ; i < (BS)->n_bits ; ++i) \
|
||||
uint i; \
|
||||
for (i = 0 ; i < min(sizeof(buf) - 1, (BS)->n_bits) ; i++) \
|
||||
buf[i] = bitmap_is_set((BS), i) ? '1' : '0'; \
|
||||
buf[(BS)->n_bits] = '\0'; \
|
||||
buf[i] = '\0'; \
|
||||
DBUG_PRINT((N), ((FRM), buf)); \
|
||||
} while (0)
|
||||
|
||||
|
Reference in New Issue
Block a user