Commit 04890a2e authored by unknown's avatar unknown
Browse files

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

into mysql.com:/home/my/mysql-4.1

parents 2a695127 2b518223
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1014,7 +1014,7 @@ vi_histedit(EditLine *el, int c)
		return CC_ERROR;
	case 0:
		close(fd);
		execlp("vi", "vi", tempfile, 0);
		execlp("vi", "vi", tempfile, (char *) NULL);
		exit(0);
		/*NOTREACHED*/
	default:
+1 −0
Original line number Diff line number Diff line
@@ -381,6 +381,7 @@ unsigned int STDCALL mysql_warning_count(MYSQL *mysql);
const char * STDCALL mysql_info(MYSQL *mysql);
unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
const char * STDCALL mysql_character_set_name(MYSQL *mysql);
int          STDCALL mysql_set_character_set(MYSQL *mysql, char *csname);

MYSQL *		STDCALL mysql_init(MYSQL *mysql);
my_bool		STDCALL mysql_ssl_set(MYSQL *mysql, const char *key,
+10 −2
Original line number Diff line number Diff line
@@ -1606,10 +1606,18 @@ row_create_table_for_mysql(
		trx_general_rollback_for_mysql(trx, FALSE, NULL);

		if (err == DB_OUT_OF_FILE_SPACE) {
			fputs("InnoDB: Warning: cannot create table ", stderr);
	    		ut_print_timestamp(stderr);

			fputs("  InnoDB: Warning: cannot create table ", 
								stderr);
			ut_print_name(stderr, trx, table->name);
			fputs(" because tablespace full\n", stderr);
		     	row_drop_table_for_mysql(table->name, trx, FALSE);

			if (dict_table_get_low(table->name)) {

		     		row_drop_table_for_mysql(table->name, trx,
								FALSE);
			}

		} else if (err == DB_DUPLICATE_KEY) {
	    		ut_print_timestamp(stderr);
+30 −0
Original line number Diff line number Diff line
@@ -1509,6 +1509,36 @@ const char * STDCALL mysql_character_set_name(MYSQL *mysql)
  return mysql->charset->csname;
}

int STDCALL mysql_set_character_set(MYSQL *mysql, char *cs_name)
{
  struct charset_info_st *cs;
  const char *save_csdir = charsets_dir;

  if (mysql->options.charset_dir)
    charsets_dir = mysql->options.charset_dir; 

  if ( (cs = get_charset_by_csname(cs_name, MY_CS_PRIMARY, MYF(0))) )
  {
    char buff[MY_CS_NAME_SIZE + 10];
    charsets_dir = save_csdir;
    sprintf(buff, "SET NAMES %s", cs_name);
    if (!mysql_query(mysql, buff)) {
      mysql->charset = cs;
    } 
  } else {
    char cs_dir_name[FN_REFLEN];
    get_charsets_dir(cs_dir_name);
    mysql->net.last_errno=CR_CANT_READ_CHARSET;
    strmov(mysql->net.sqlstate, unknown_sqlstate);
    my_snprintf(mysql->net.last_error, sizeof(mysql->net.last_error)-1,
                ER(mysql->net.last_errno),
                cs_name,
                cs_dir_name);

  }
  charsets_dir = save_csdir;
  return mysql->net.last_errno;
}

uint STDCALL mysql_thread_safe(void)
{
+1 −0
Original line number Diff line number Diff line
@@ -146,4 +146,5 @@ EXPORTS
	mysql_rpl_query_type
	mysql_slave_query
	mysql_embedded
	mysql_set_character_set
	get_defaults_files