19 #include "myisam_priv.h"
21 int mi_delete_all_rows(
MI_INFO *info)
27 if (share->options & HA_OPTION_READ_ONLY_DATA)
31 if (_mi_readinfo(info,F_WRLCK,1))
33 if (_mi_mark_file_changed(info))
36 info->state->records=info->state->del=state->split=0;
37 state->dellink = HA_OFFSET_ERROR;
38 state->sortkey= UINT16_MAX;
39 info->state->key_file_length=share->base.keystart;
40 info->state->data_file_length=0;
41 info->state->empty=info->state->key_empty=0;
42 info->state->checksum=0;
44 for (i=share->base.max_key_block_length/MI_MIN_KEY_BLOCK_LENGTH ; i-- ; )
45 state->key_del[i]= HA_OFFSET_ERROR;
46 for (i=0 ; i < share->base.keys ; i++)
47 state->key_root[i]= HA_OFFSET_ERROR;
53 if (ftruncate(info->dfile, 0) || ftruncate(share->kfile, share->base.keystart))
55 _mi_writeinfo(info,WRITEINFO_UPDATE_KEYFILE);
61 _mi_writeinfo(info,WRITEINFO_UPDATE_KEYFILE);
62 info->update|=HA_STATE_WRITTEN;
63 return(errno=save_errno);