Commit f9112ce6 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/home/mydev/mysql-5.0

into  mysql.com:/home/mydev/mysql-5.0-bug10405

parents 8052fafd 942fcb56
Loading
Loading
Loading
Loading
+17 −9
Original line number Diff line number Diff line
@@ -3800,6 +3800,7 @@ int recreate_table(MI_CHECK *param, MI_INFO **org_info, char *filename)
  ha_rows max_records;
  ulonglong file_length,tmp_length;
  MI_CREATE_INFO create_info;
  DBUG_ENTER("recreate_table");

  error=1;					/* Default error */
  info= **org_info;
@@ -3809,7 +3810,7 @@ int recreate_table(MI_CHECK *param, MI_INFO **org_info, char *filename)
  unpack= (share.options & HA_OPTION_COMPRESS_RECORD) &&
    (param->testflag & T_UNPACK);
  if (!(keyinfo=(MI_KEYDEF*) my_alloca(sizeof(MI_KEYDEF)*share.base.keys)))
    return 0;
    DBUG_RETURN(0);
  memcpy((byte*) keyinfo,(byte*) share.keyinfo,
	 (size_t) (sizeof(MI_KEYDEF)*share.base.keys));

@@ -3818,14 +3819,14 @@ int recreate_table(MI_CHECK *param, MI_INFO **org_info, char *filename)
				       (key_parts+share.base.keys))))
  {
    my_afree((gptr) keyinfo);
    return 1;
    DBUG_RETURN(1);
  }
  if (!(recdef=(MI_COLUMNDEF*)
	my_alloca(sizeof(MI_COLUMNDEF)*(share.base.fields+1))))
  {
    my_afree((gptr) keyinfo);
    my_afree((gptr) keysegs);
    return 1;
    DBUG_RETURN(1);
  }
  if (!(uniquedef=(MI_UNIQUEDEF*)
	my_alloca(sizeof(MI_UNIQUEDEF)*(share.state.header.uniques+1))))
@@ -3833,7 +3834,7 @@ int recreate_table(MI_CHECK *param, MI_INFO **org_info, char *filename)
    my_afree((gptr) recdef);
    my_afree((gptr) keyinfo);
    my_afree((gptr) keysegs);
    return 1;
    DBUG_RETURN(1);
  }

  /* Copy the column definitions */
@@ -3906,6 +3907,11 @@ int recreate_table(MI_CHECK *param, MI_INFO **org_info, char *filename)
  create_info.language = (param->language ? param->language :
			  share.state.header.language);
  create_info.key_file_length=  status_info.key_file_length;
  /*
    Allow for creating an auto_increment key. This has an effect only if
    an auto_increment key exists in the original table.
  */
  create_info.with_auto_increment= TRUE;
  /* We don't have to handle symlinks here because we are using
     HA_DONT_TOUCH_DATA */
  if (mi_create(filename,
@@ -3950,7 +3956,7 @@ int recreate_table(MI_CHECK *param, MI_INFO **org_info, char *filename)
  my_afree((gptr) keyinfo);
  my_afree((gptr) recdef);
  my_afree((gptr) keysegs);
  return error;
  DBUG_RETURN(error);
}


@@ -4053,6 +4059,8 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
			       my_bool repair_only)
{
  byte *record;
  DBUG_ENTER("update_auto_increment_key");

  if (!info->s->base.auto_key ||
      ! mi_is_key_active(info->s->state.key_map, info->s->base.auto_key - 1))
  {
@@ -4060,7 +4068,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
      mi_check_print_info(param,
			  "Table: %s doesn't have an auto increment key\n",
			  param->isam_file_name);
    return;
    DBUG_VOID_RETURN;
  }
  if (!(param->testflag & T_SILENT) &&
      !(param->testflag & T_REP))
@@ -4073,7 +4081,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
				  MYF(0))))
  {
    mi_check_print_error(param,"Not enough memory for extra record");
    return;
    DBUG_VOID_RETURN;
  }

  mi_extra(info,HA_EXTRA_KEYREAD,0);
@@ -4084,7 +4092,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
      mi_extra(info,HA_EXTRA_NO_KEYREAD,0);
      my_free((char*) record, MYF(0));
      mi_check_print_error(param,"%d when reading last record",my_errno);
      return;
      DBUG_VOID_RETURN;
    }
    if (!repair_only)
      info->s->state.auto_increment=param->auto_increment_value;
@@ -4100,7 +4108,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
  mi_extra(info,HA_EXTRA_NO_KEYREAD,0);
  my_free((char*) record, MYF(0));
  update_state_info(param, info, UPDATE_AUTO_INC);
  return;
  DBUG_VOID_RETURN;
}