diff options
author | aelkin/elkin@koti.dsl.inet.fi <> | 2007-12-21 22:34:43 +0200 |
---|---|---|
committer | aelkin/elkin@koti.dsl.inet.fi <> | 2007-12-21 22:34:43 +0200 |
commit | 0ca3250e5910e5e636cbf774027747c3835fe616 (patch) | |
tree | a4618fc7967396f848f1fdf00b415d96ee07ad43 /include | |
parent | c2f00cc3f94b213c06f2006f4e8d560939513011 (diff) | |
download | mariadb-git-0ca3250e5910e5e636cbf774027747c3835fe616.tar.gz |
BUG#30435 loading large LOAD DATA INFILE breaks slave with
read_buffer_size set on master
BUG#33413 show binlog events fails if binlog has event size of close
to max_allowed_packet
The size of Append_block replication event was determined solely by
read_buffer_size whereas the rest of replication code deals with
max_allowed_packet.
When the former parameter was set to larger than the latter there were
two artifacts: the master could not read events from binlog;
show master events did not show.
Fixed with
- fragmenting the used io-cached buffer into pieces each size of less
than max_allowed_packet (bug#30435)
- incrementing show-binlog-events handling thread's max_allowed_packet
with the max estimated for the replication header size
Diffstat (limited to 'include')
-rw-r--r-- | include/my_sys.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/my_sys.h b/include/my_sys.h index 4f7e75a836e..b18df822b40 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -530,6 +530,12 @@ typedef int (*qsort2_cmp)(const void *, const void *, const void *); #define my_b_tell(info) ((info)->pos_in_file + \ (uint) (*(info)->current_pos - (info)->request_pos)) +#define my_b_get_buffer_start(info) (info)->request_pos +#define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end - \ + (char*) my_b_get_buffer_start(info) +#define my_b_get_pos_in_file(info) (info)->pos_in_file + + /* tell write offset in the SEQ_APPEND cache */ my_off_t my_b_append_tell(IO_CACHE* info); my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */ |