summaryrefslogtreecommitdiff
path: root/mysys/mf_iocache2.c
diff options
context:
space:
mode:
authorunknown <mats@romeo.(none)>2006-10-06 10:17:02 +0200
committerunknown <mats@romeo.(none)>2006-10-06 10:17:02 +0200
commitd8be3113351929f12e4277f4306a1428a280d970 (patch)
treec53b3dcab5ecc776912602d4cd486b053c124aec /mysys/mf_iocache2.c
parentd9b292808461af13c9c17a6260475524bc60b728 (diff)
downloadmariadb-git-d8be3113351929f12e4277f4306a1428a280d970.tar.gz
BUG#19459 (BINLOG RBR command does not lock tables correctly causing
crash for, e.g., NDB): Before, mysqlbinlog printed table map events as a separate statement, so when executing the event, the opened table was subsequently closed when the statement ended. Instead, the row-based events that make up a statement are now printed as *one* BINLOG statement, which means that the table maps and the following *_rows_log_event events are executed fully before the statement ends. Changing implementation of BINLOG statement to be able to read the emitted format, which now consists of several chunks of BASE64-encoded data. client/mysqlbinlog.cc: Using IO_CACHE to print events instead of directly to file. Factoring out code to write event header and base64 representation into separate function. mysys/mf_iocache2.c: Correcting name in documentation. sql/log_event.cc: Adding class Write_on_release_cache that holds an IO_CACHE and that will write contents of IO_CACHE to a designated file on destruction. Changing signature of event printing functions print_header() and print_base64() to write to IO_CACHE and changing *all* calls in those functions in accordance. This means that all printing functions now print to an IO_CACHE instead of to a file, and that the IO_CACHE is then copied to the file. The print() function have the same signature as before, but since it is using print_header() and print_base64(), the data will now be printed to an IO_CACHE and then copied to the file. Changing row-based replication events to incrementally build one BINLOG statement for all events making up a statement. sql/log_event.h: Changing signature of event printing functions print_header() and print_base64() to write to an IO_CACHE instead of a file. Changing row-based replication events to incrementally build one BINLOG statement for all events making up a statement. Adding a head_cache and a body_cache to cache statement comment and statement body respectively. In addition, the head_cache is used when printing other events than the RBR events. sql/sql_binlog.cc: Changing code to be able to decode several pieces of base64-encoded data for a BINLOG statement. The BINLOG statement now consists of several pieces of BASE64-encoded data, so once a block has been decoded and executed, the next block has to be read from the statement until there is no more data to read.
Diffstat (limited to 'mysys/mf_iocache2.c')
-rw-r--r--mysys/mf_iocache2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c
index d76b895aeb0..57a06e263a6 100644
--- a/mysys/mf_iocache2.c
+++ b/mysys/mf_iocache2.c
@@ -28,7 +28,7 @@
Copy contents of an IO_CACHE to a file.
SYNOPSIS
- copy_io_cache_to_file()
+ my_b_copy_to_file()
cache IO_CACHE to copy from
file File to copy to