mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fix of LP#616253 Crash in _ma_bitmap_set_full_page_bits on Aria recovery
The bug was based on wrong undo data in recovery file and not enough checking of bad data. sql/sql_select.h: Added comment storage/maria/ma_blockrec.c: - Removed wrong sanity checks (didn't work for UNDO records) - More sanity checks and DBUG_ASSERT - More DBUG_ENTER and DBUG_PRINT - Removed filler blocks in extent_to_bitmap_blocks() as it caused problems in write_block_record(). This was the main cause of the bug. (This change can make records generated by UNDO slightly smaller than original record, which we have to fix by correcting row_pos.length before calling write_block_record()) - Fixed some problems in write_block_record() while doing UNDO. - Store header_length without TRANSID_SIZE into recovery log (as UNDO entires doesn't have TRANSID_SIZE) - Mark table crashed if something goes wrong during UNDO storage/maria/maria_def.h: Added header_length
This commit is contained in:
@ -365,6 +365,11 @@ public:
|
||||
the number of rows in it may vary from one subquery execution to another.
|
||||
*/
|
||||
bool no_const_tables;
|
||||
/*
|
||||
This flag is set if we call no_rows_in_result() as par of end_group().
|
||||
This is used as a simple speed optimization to avoiding calling
|
||||
restore_no_rows_in_result() in ::reinit()
|
||||
*/
|
||||
bool no_rows_in_result_called;
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user