diff options
Diffstat (limited to 'storage/maria/ma_update.c')
-rw-r--r-- | storage/maria/ma_update.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/storage/maria/ma_update.c b/storage/maria/ma_update.c index 7b9e006ec43..531b7de8fec 100644 --- a/storage/maria/ma_update.c +++ b/storage/maria/ma_update.c @@ -216,7 +216,10 @@ err: { if ((flag++ && _ma_ft_del(info,i,new_key_buff,newrec,pos)) || _ma_ft_add(info,i,old_key_buff,oldrec,pos)) + { + _ma_set_fatal_error(share, my_errno); break; + } } else { @@ -228,16 +231,17 @@ err: oldrec, pos, info->cur_row.trid); if ((flag++ && _ma_ck_delete(info, &new_key)) || _ma_ck_write(info, &old_key)) + { + _ma_set_fatal_error(share, my_errno); break; + } } } } while (i-- != 0); } else - { - maria_print_error(share, HA_ERR_CRASHED); - maria_mark_crashed(info); - } + _ma_set_fatal_error(share, save_errno); + info->update= (HA_STATE_CHANGED | HA_STATE_AKTIV | HA_STATE_ROW_CHANGED | key_changed); @@ -245,9 +249,6 @@ err: VOID(_ma_writeinfo(info,WRITEINFO_UPDATE_KEYFILE)); allow_break(); /* Allow SIGHUP & SIGINT */ if (save_errno == HA_ERR_KEY_NOT_FOUND) - { - maria_print_error(share, HA_ERR_CRASHED); - save_errno=HA_ERR_CRASHED; - } + _ma_set_fatal_error(share, HA_ERR_CRASHED); DBUG_RETURN(my_errno=save_errno); } /* maria_update */ |