Commit 889058aa authored by unknown's avatar unknown

make CHECK killable

parent 39c7065f
...@@ -142,6 +142,8 @@ int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag) ...@@ -142,6 +142,8 @@ int chk_del(MI_CHECK *param, register MI_INFO *info, uint test_flag)
empty=0; empty=0;
for (i= info->state->del ; i > 0L && next_link != HA_OFFSET_ERROR ; i--) for (i= info->state->del ; i > 0L && next_link != HA_OFFSET_ERROR ; i--)
{ {
if (*killed_ptr(param))
DBUG_RETURN(1);
if (test_flag & T_VERBOSE) if (test_flag & T_VERBOSE)
printf(" %9s",llstr(next_link,buff)); printf(" %9s",llstr(next_link,buff));
if (next_link >= info->state->data_file_length) if (next_link >= info->state->data_file_length)
...@@ -233,6 +235,8 @@ static int check_k_link(MI_CHECK *param, register MI_INFO *info, uint nr) ...@@ -233,6 +235,8 @@ static int check_k_link(MI_CHECK *param, register MI_INFO *info, uint nr)
records= (ha_rows) (info->state->key_file_length / block_size); records= (ha_rows) (info->state->key_file_length / block_size);
while (next_link != HA_OFFSET_ERROR && records > 0) while (next_link != HA_OFFSET_ERROR && records > 0)
{ {
if (*killed_ptr(param))
DBUG_RETURN(1);
if (param->testflag & T_VERBOSE) if (param->testflag & T_VERBOSE)
printf("%16s",llstr(next_link,llbuff)); printf("%16s",llstr(next_link,llbuff));
if (next_link > info->state->key_file_length || if (next_link > info->state->key_file_length ||
...@@ -372,6 +376,8 @@ int chk_key(MI_CHECK *param, register MI_INFO *info) ...@@ -372,6 +376,8 @@ int chk_key(MI_CHECK *param, register MI_INFO *info)
for (key= 0,keyinfo= &share->keyinfo[0]; key < share->base.keys ; for (key= 0,keyinfo= &share->keyinfo[0]; key < share->base.keys ;
rec_per_key_part+=keyinfo->keysegs, key++, keyinfo++) rec_per_key_part+=keyinfo->keysegs, key++, keyinfo++)
{ {
if (*killed_ptr(param))
DBUG_RETURN(-1);
param->key_crc[key]=0; param->key_crc[key]=0;
if (!(((ulonglong) 1 << key) & share->state.key_map)) if (!(((ulonglong) 1 << key) & share->state.key_map))
{ {
...@@ -592,6 +598,8 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo, ...@@ -592,6 +598,8 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo,
} }
for ( ;; ) for ( ;; )
{ {
if (*killed_ptr(param))
goto err;
memcpy((char*) info->lastkey,(char*) key,key_length); memcpy((char*) info->lastkey,(char*) key,key_length);
info->lastkey_length=key_length; info->lastkey_length=key_length;
if (nod_flag) if (nod_flag)
...@@ -782,6 +790,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend) ...@@ -782,6 +790,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
bzero((char*) key_checksum, info->s->base.keys * sizeof(key_checksum[0])); bzero((char*) key_checksum, info->s->base.keys * sizeof(key_checksum[0]));
while (pos < info->state->data_file_length) while (pos < info->state->data_file_length)
{ {
if (*killed_ptr(param))
goto err2;
switch (info->s->data_file_type) { switch (info->s->data_file_type) {
case STATIC_RECORD: case STATIC_RECORD:
if (my_b_read(&param->read_cache,(byte*) record, if (my_b_read(&param->read_cache,(byte*) record,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment