Пример #1
0
int mi_log(int activate_log)
{
  int error=0;
  char buff[FN_REFLEN];
  DBUG_ENTER("mi_log");

  log_type=activate_log;
  if (activate_log)
  {
    if (!myisam_pid)
      myisam_pid=(ulong) getpid();
    if (myisam_log_file < 0)
    {
      if ((myisam_log_file= mysql_file_create(mi_key_file_log,
                                              fn_format(buff,
                                                        myisam_log_filename,
                                                        "", ".log", 4),
                                              0,
                                              (O_RDWR | O_BINARY | O_APPEND),
                                              MYF(0))) < 0)
	DBUG_RETURN(my_errno);
    }
  }
  else if (myisam_log_file >= 0)
  {
    error= mysql_file_close(myisam_log_file, MYF(0)) ? my_errno : 0 ;
    myisam_log_file= -1;
  }
  DBUG_RETURN(error);
}
Пример #2
0
int myrg_create(const char *name, const char **table_names,
                uint insert_method, my_bool fix_names)
{
  int save_errno;
  uint errpos;
  File file;
  char buff[FN_REFLEN],*end;
  DBUG_ENTER("myrg_create");

  errpos=0;
  if ((file= mysql_file_create(rg_key_file_MRG,
                               fn_format(buff, name, "", MYRG_NAME_EXT,
                                         MY_UNPACK_FILENAME|MY_APPEND_EXT), 0,
                               O_RDWR | O_EXCL | O_NOFOLLOW, MYF(MY_WME))) < 0)
    goto err;
  errpos=1;
  if (table_names)
  {
    for ( ; *table_names ; table_names++)
    {
      my_stpcpy(buff,*table_names);
      if (fix_names)
	fn_same(buff,name,4);
      *(end=strend(buff))='\n';
      end[1]=0;
      if (mysql_file_write(file, (uchar*) buff, (uint) (end-buff+1),
                           MYF(MY_WME | MY_NABP)))
	goto err;
    }
  }
  if (insert_method != MERGE_INSERT_DISABLED)
  {
    end=strxmov(buff,"#INSERT_METHOD=",
		get_type(&merge_insert_method,insert_method-1),"\n",NullS);
    if (mysql_file_write(file, (uchar*) buff, (uint) (end-buff),
                         MYF(MY_WME | MY_NABP)))
        goto err;
  }
  if (mysql_file_close(file, MYF(0)))
    goto err;
  DBUG_RETURN(0);

err:
  save_errno=my_errno() ? my_errno() : -1;
  switch (errpos) {
  case 1:
    (void) mysql_file_close(file, MYF(0));
  }
  set_my_errno(save_errno);
  DBUG_RETURN(save_errno);
} /* myrg_create */