Commit e3613c93 authored by unknown's avatar unknown
Browse files

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into neptunus.(none):/home/msvensson/mysql/mysql-5.0

parents c3e1ccad 56b8c906
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -192,6 +192,8 @@ select count(*) from t3;
count(*)
1199
rename table t3 to t4;
Warnings:
Error	7	Error on rename of './test/t3.ARN' to './test/t4.ARN' (Errcode: 2)
select * from t4 where fld3='bonfire';
auto	fld1	companynr	fld3	fld4	fld5	fld6
1191	068504	00	bonfire	corresponds	positively	
+0 −29
Original line number Diff line number Diff line
@@ -447,35 +447,6 @@ const char **ha_archive::bas_ext() const
}


/*
  Rename all files that this handler defines in bas_ext list

  NOTE Don't care if the .arn file is missing
*/
int ha_archive::rename_table(const char * from, const char * to)
{
  DBUG_ENTER("ha_archive::rename_table");
  DBUG_PRINT("enter", ("from: %s, to: %s", from, to));
  for (const char **ext=bas_ext(); *ext ; ext++)
  {
    // Check if the .arn file exists before rename
    if (!my_strcasecmp(system_charset_info, *ext, ARN))
    {
      char name[FN_REFLEN];
      (void)strxnmov(name, FN_REFLEN, from, ARN, NullS);
      if (access(name, F_OK))
      {
        DBUG_PRINT("info", ("%s does not exist on disk, skipping it", name));
        continue;
      }
    }
    if (rename_file_ext(from,to,*ext))
      DBUG_RETURN(my_errno);
  }
  DBUG_RETURN(0);
}


/* 
  When opening a file we:
  Create/get our shared structure.
+0 −1
Original line number Diff line number Diff line
@@ -104,7 +104,6 @@ class ha_archive: public handler
  int end_bulk_insert();
  THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
                             enum thr_lock_type lock_type);
  int rename_table(const char * from, const char * to);
};

handlerton *archive_db_init(void);
+9 −5
Original line number Diff line number Diff line
@@ -1772,13 +1772,17 @@ int handler::delete_table(const char *name)

int handler::rename_table(const char * from, const char * to)
{
  DBUG_ENTER("handler::rename_table");
  int error= 0;
  for (const char **ext= bas_ext(); *ext ; ext++)
  {
    if (rename_file_ext(from, to, *ext))
      DBUG_RETURN(my_errno);
    {
      if ((error=my_errno) != ENOENT)
	break;
      error= 0;
    }
  DBUG_RETURN(0);
  }
  return error;
}

/*