~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/myisam/mi_check.c

  • Committer: Brian Aker
  • Date: 2008-08-01 18:59:55 UTC
  • Revision ID: brian@tangent.org-20080801185955-o1j93r71gd6onvzr
Random key cleanup (it is a friday...)

Show diffs side-by-side

added added

removed removed

Lines of Context:
445
445
 
446
446
    if ((!(param->testflag & T_SILENT)))
447
447
      printf ("- check data record references index: %d\n",key+1);
448
 
    if (share->state.key_root[key] == HA_OFFSET_ERROR &&
449
 
        (info->state->records == 0 || keyinfo->flag & HA_FULLTEXT))
 
448
    if (share->state.key_root[key] == HA_OFFSET_ERROR && (info->state->records == 0))
450
449
      goto do_stat;
451
450
    if (!_mi_fetch_keypage(info,keyinfo,share->state.key_root[key],
452
451
                           DFLT_INIT_HITS,info->buff,0))
466
465
    if (chk_index(param,info,keyinfo,share->state.key_root[key],info->buff,
467
466
                  &keys, param->key_crc+key,1))
468
467
      return(-1);
469
 
    if(!(keyinfo->flag & (HA_FULLTEXT | HA_SPATIAL)))
 
468
    if(!(0))
470
469
    {
471
470
      if (keys != info->state->records)
472
471
      {
1168
1167
      {
1169
1168
        if (mi_is_key_active(info->s->state.key_map, key))
1170
1169
        {
1171
 
          if(!(keyinfo->flag & HA_FULLTEXT))
1172
1170
          {
1173
1171
            uint key_length=_mi_make_key(info,key,info->lastkey,record,
1174
1172
                                         start_recpos);
1233
1231
  {
1234
1232
    for (key=0 ; key < info->s->base.keys;  key++)
1235
1233
    {
1236
 
      if (key_checksum[key] != param->key_crc[key] &&
1237
 
          !(info->s->keyinfo[key].flag & (HA_FULLTEXT | HA_SPATIAL)))
 
1234
      if (key_checksum[key] != param->key_crc[key])
1238
1235
      {
1239
1236
        mi_check_print_error(param,"Checksum for key: %2d doesn't match checksum for records",
1240
1237
                    key+1);
1939
1936
                llstr(pagepos,llbuff));
1940
1937
    goto err;
1941
1938
  }
1942
 
  if ((nod_flag=mi_test_if_nod(buff)) || keyinfo->flag & HA_FULLTEXT)
 
1939
  if ((nod_flag=mi_test_if_nod(buff)))
1943
1940
  {
1944
1941
    used_length=mi_getint(buff);
1945
1942
    keypos=buff+2+nod_flag;
4211
4208
static my_bool mi_too_big_key_for_sort(MI_KEYDEF *key, ha_rows rows)
4212
4209
{
4213
4210
  uint key_maxlength=key->maxlength;
4214
 
  return (key->flag & (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY | HA_FULLTEXT) &&
 
4211
  return (key->flag & (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY) &&
4215
4212
          ((uint64_t) rows * key_maxlength >
4216
4213
           (uint64_t) myisam_max_temp_length));
4217
4214
}
4235
4232
              (!rows || rows >= MI_MIN_ROWS_TO_DISABLE_INDEXES));
4236
4233
  for (i=0 ; i < share->base.keys ; i++,key++)
4237
4234
  {
4238
 
    if (!(key->flag & (HA_NOSAME | HA_SPATIAL | HA_AUTO_KEY)) &&
 
4235
    if (!(key->flag & (HA_NOSAME | HA_AUTO_KEY)) &&
4239
4236
        ! mi_too_big_key_for_sort(key,rows) && info->s->base.auto_key != i+1)
4240
4237
    {
4241
4238
      mi_clear_key_active(share->state.key_map, i);