mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 10:57:54 +02:00
when we open the HEAP table for the first time since server restart, in hp_open(), we set a flag to propagate this info to the handler level which then writes a DELETE FROM this_heap_table to the binlog. It is not a perfect solution for the bug, because between the server start and the first open of the table, the slave still had old data in his table so a SELECT on the slave may show wrong content. But if there is a --init-file to populate the HEAP table on master as startup, then this is a safe fix (I'll put a note about init-file in the HEAP section of the manual). heap/hp_info.c: new info variable implicit_emptied heap/hp_open.c: If this is the first open of the HEAP table, it means it is empty, so we mark it. include/heap.h: new variables implicit_emptied (we need one in HEAPINFO for the hp_info() call). sql/ha_heap.cc: report info to upper level sql/handler.h: new info 'implicit_emptied' in the handler level; only HEAP uses it. sql/sql_base.cc: When a HEAP table is opened for the first time, write a DELETE FROM to the binlog, for replication and mysqlbinlog|mysql. Monty: I added the entry->file->implicit_emptied= 0; |
||
|---|---|---|
| .. | ||
| .cvsignore | ||
| _check.c | ||
| _rectest.c | ||
| ChangeLog | ||
| heapdef.h | ||
| hp_block.c | ||
| hp_clear.c | ||
| hp_close.c | ||
| hp_create.c | ||
| hp_delete.c | ||
| hp_extra.c | ||
| hp_hash.c | ||
| hp_info.c | ||
| hp_open.c | ||
| hp_panic.c | ||
| hp_rename.c | ||
| hp_rfirst.c | ||
| hp_rkey.c | ||
| hp_rlast.c | ||
| hp_rnext.c | ||
| hp_rprev.c | ||
| hp_rrnd.c | ||
| hp_rsame.c | ||
| hp_scan.c | ||
| hp_static.c | ||
| hp_test1.c | ||
| hp_test2.c | ||
| hp_update.c | ||
| hp_write.c | ||
| make-ccc | ||
| Makefile.am | ||