mirror of
https://github.com/MariaDB/server.git
synced 2025-12-13 20:03:16 +03:00
Fixes some bug in Aria recovery:
- _ma_apply_redo_index: Assertion `page_offset != 0 && page_offset + length <= page_length' failed Fixes one bug and one log assert when inserting rows: - _ma_log_split: Assertion `org_length <= info->s->max_index_block_size' failed - write_block_record: Assertion '(data_length < MAX_TAIL_SIZE(block_size)' failed Mark in recovery log where _ma_log_add() calls was done (for better debugging). storage/maria/ma_bitmap.c: Don't write a head part on a tail page. (Caused an assert in write_block_record()) storage/maria/ma_delete.c: Mark in recovery log where _ma_log_add() calls was done storage/maria/ma_key_recover.c: Mark in recovery log where _ma_log_add() calls was done Fixed not handled logging case for overfull index pages. storage/maria/ma_key_recover.h: Mark in recovery log where _ma_log_add() calls was done storage/maria/ma_loghandler.h: Mark in recovery log where _ma_log_add() calls was done storage/maria/ma_rt_key.c: Mark in recovery log where _ma_log_add() calls was done storage/maria/ma_write.c: Mark in recovery log where _ma_log_add() calls was done. Fixed wrong call to _ma_split_page() for overfull pages
This commit is contained in:
@@ -1016,7 +1016,7 @@ static my_bool allocate_tail(MARIA_FILE_BITMAP *bitmap, uint size,
|
||||
DBUG_PRINT("enter", ("size: %u", size));
|
||||
|
||||
LINT_INIT(best_pos);
|
||||
DBUG_ASSERT(size <= FULL_PAGE_SIZE(bitmap->block_size));
|
||||
DBUG_ASSERT(size <= MAX_TAIL_SIZE(bitmap->block_size));
|
||||
|
||||
for (; data < end; data += 6)
|
||||
{
|
||||
@@ -1732,7 +1732,7 @@ my_bool _ma_bitmap_find_place(MARIA_HA *info, MARIA_ROW *row,
|
||||
row_length= find_where_to_split_row(share, row, extents_length,
|
||||
max_page_size);
|
||||
|
||||
full_page_size= FULL_PAGE_SIZE(share->block_size);
|
||||
full_page_size= MAX_TAIL_SIZE(share->block_size);
|
||||
position= 0;
|
||||
if (head_length - row_length <= full_page_size)
|
||||
position= ELEMENTS_RESERVED_FOR_MAIN_PART -2; /* Only head and tail */
|
||||
|
||||
Reference in New Issue
Block a user