Browse Source

Fixes a problem with heap when scanning and insert rows at the same time

This causes failures in versioning.update-big in 10.3 and above
pull/1308/head
Monty 6 years ago
parent
commit
262927a9e5
  1. 15
      storage/heap/hp_scan.c

15
storage/heap/hp_scan.c

@ -44,6 +44,12 @@ int heap_scan(register HP_INFO *info, uchar *record)
DBUG_ENTER("heap_scan");
pos= ++info->current_record;
if (pos >= share->records+share->deleted)
{
info->update= 0; /* No active row */
DBUG_RETURN(my_errno= HA_ERR_END_OF_FILE);
}
if (pos < info->next_block)
{
info->current_ptr+=share->block.recbuffer;
@ -51,15 +57,6 @@ int heap_scan(register HP_INFO *info, uchar *record)
else
{
info->next_block+=share->block.records_in_block;
if (info->next_block >= share->records+share->deleted)
{
info->next_block= share->records+share->deleted;
if (pos >= info->next_block)
{
info->update= 0;
DBUG_RETURN(my_errno= HA_ERR_END_OF_FILE);
}
}
hp_find_record(info, pos);
}
if (!info->current_ptr[share->visible])

Loading…
Cancel
Save