Below is the list of changes that have just been committed into a local
5.1 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.2132 06/02/17 15:52:05 msvensson@neptunus.(none) +1 -0
Bug#17382 mysql-test-run mysqldump fails with mysqlimport
- Remove global MYSQL connection variable
client/mysqlimport.c
1.64 06/02/17 15:52:01 msvensson@neptunus.(none) +56 -54
Remove the global "MYSQL mysql_connection" variable. Use one MYSQL for each thread.
Set exitcode if any of the threads fails, better than nothing.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: msvensson
# Host: neptunus.(none)
# Root: /home/msvensson/mysql/mysql-5.1
--- 1.63/client/mysqlimport.c 2006-02-14 19:10:05 +01:00
+++ 1.64/client/mysqlimport.c 2006-02-17 15:52:01 +01:00
@@ -47,7 +47,6 @@
opt_low_priority= 0, tty_password= 0;
static my_bool opt_use_threads= 0;
static uint opt_local_file=0;
-static MYSQL mysql_connection;
static char *opt_password=0, *current_user=0,
*current_host=0, *current_db=0, *fields_terminated=0,
*lines_terminated=0, *enclosed=0, *opt_enclosed=0,
@@ -283,7 +282,7 @@
-static int write_to_table(char *filename, MYSQL *sock)
+static int write_to_table(char *filename, MYSQL *mysql)
{
char tablename[FN_REFLEN], hard_path[FN_REFLEN],
sql_statement[FN_REFLEN*16+256], *end;
@@ -301,9 +300,9 @@
if (verbose)
fprintf(stdout, "Deleting the old data from table %s\n", tablename);
snprintf(sql_statement, FN_REFLEN*16+256, "DELETE FROM %s", tablename);
- if (mysql_query(sock, sql_statement))
+ if (mysql_query(mysql, sql_statement))
{
- db_error_with_table(sock, tablename);
+ db_error_with_table(mysql, tablename);
DBUG_RETURN(1);
}
}
@@ -342,17 +341,17 @@
end= strmov(strmov(strmov(end, " ("), opt_columns), ")");
*end= '\0';
- if (mysql_query(sock, sql_statement))
+ if (mysql_query(mysql, sql_statement))
{
- db_error_with_table(sock, tablename);
+ db_error_with_table(mysql, tablename);
DBUG_RETURN(1);
}
if (!silent)
{
- if (mysql_info(sock)) /* If NULL-pointer, print nothing */
+ if (mysql_info(mysql)) /* If NULL-pointer, print nothing */
{
fprintf(stdout, "%s.%s: %s\n", current_db, tablename,
- mysql_info(sock));
+ mysql_info(mysql));
}
}
DBUG_RETURN(0);
@@ -360,7 +359,7 @@
-static void lock_table(MYSQL *sock, int tablecount, char **raw_tablename)
+static void lock_table(MYSQL *mysql, int tablecount, char **raw_tablename)
{
DYNAMIC_STRING query;
int i;
@@ -375,70 +374,72 @@
dynstr_append(&query, tablename);
dynstr_append(&query, " WRITE,");
}
- if (mysql_real_query(sock, query.str, query.length-1))
- db_error(sock); /* We shall countinue here, if --force was given */
+ if (mysql_real_query(mysql, query.str, query.length-1))
+ db_error(mysql); /* We shall countinue here, if --force was given */
}
-static MYSQL *db_connect(char *host, char *database, char *user, char *passwd)
+static MYSQL* db_connect(char *host, char *database,
+ char *user, char *passwd)
{
- MYSQL *sock;
+ MYSQL* mysql;
if (verbose)
fprintf(stdout, "Connecting to %s\n", host ? host : "localhost");
- mysql_init(&mysql_connection);
+ if (!(mysql= mysql_init(NULL)))
+ return 0;
if (opt_compress)
- mysql_options(&mysql_connection,MYSQL_OPT_COMPRESS,NullS);
+ mysql_options(mysql,MYSQL_OPT_COMPRESS,NullS);
if (opt_local_file)
- mysql_options(&mysql_connection,MYSQL_OPT_LOCAL_INFILE,
+ mysql_options(mysql,MYSQL_OPT_LOCAL_INFILE,
(char*) &opt_local_file);
#ifdef HAVE_OPENSSL
if (opt_use_ssl)
- mysql_ssl_set(&mysql_connection, opt_ssl_key, opt_ssl_cert, opt_ssl_ca,
+ mysql_ssl_set(mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca,
opt_ssl_capath, opt_ssl_cipher);
#endif
if (opt_protocol)
- mysql_options(&mysql_connection,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol);
+ mysql_options(mysql,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol);
#ifdef HAVE_SMEM
if (shared_memory_base_name)
-
mysql_options(&mysql_connection,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name);
+ mysql_options(mysql,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name);
#endif
- if (!(sock= mysql_real_connect(&mysql_connection,host,user,passwd,
- database,opt_mysql_port,opt_mysql_unix_port,
- 0)))
+ if (!(mysql_real_connect(mysql,host,user,passwd,
+ database,opt_mysql_port,opt_mysql_unix_port,
+ 0)))
{
ignore_errors=0; /* NO RETURN FROM db_error */
- db_error(&mysql_connection);
+ db_error(mysql);
}
- mysql_connection.reconnect= 0;
+ mysql->reconnect= 0;
if (verbose)
fprintf(stdout, "Selecting database %s\n", database);
- if (mysql_select_db(sock, database))
+ if (mysql_select_db(mysql, database))
{
ignore_errors=0;
- db_error(&mysql_connection);
+ db_error(mysql);
}
- return sock;
+ return mysql;
}
-static void db_disconnect(char *host, MYSQL *sock)
+static void db_disconnect(char *host, MYSQL *mysql)
{
if (verbose)
fprintf(stdout, "Disconnecting from %s\n", host ? host : "localhost");
- mysql_close(sock);
+ mysql_close(mysql);
}
-static void safe_exit(int error, MYSQL *sock)
+static void safe_exit(int error, MYSQL *mysql)
{
if (ignore_errors)
return;
- if (sock)
- mysql_close(sock);
+ if (mysql)
+ mysql_close(mysql);
exit(error);
}
@@ -446,8 +447,8 @@
static void db_error_with_table(MYSQL *mysql, char *table)
{
- my_printf_error(0,"Error: %s, when using table: %s",
- MYF(0), mysql_error(mysql), table);
+ my_printf_error(0,"Error: %d, %s, when using table: %s",
+ MYF(0), mysql_errno(mysql), mysql_error(mysql), table);
safe_exit(1, mysql);
}
@@ -455,7 +456,7 @@
static void db_error(MYSQL *mysql)
{
- my_printf_error(0,"Error: %s", MYF(0), mysql_error(mysql));
+ my_printf_error(0,"Error: %d %s", MYF(0), mysql_errno(mysql), mysql_error(mysql));
safe_exit(1, mysql);
}
@@ -509,41 +510,42 @@
return to;
}
+int exitcode= 0;
pthread_handler_t worker_thread(void *arg)
{
+ int error;
char *raw_table_name= (char *)arg;
- MYSQL *sock= 0;
- if (!(sock= db_connect(current_host,current_db,current_user,opt_password)))
+ MYSQL* mysql;
+ if (!(mysql= db_connect(current_host,current_db,current_user,opt_password)))
{
goto error;
}
- if (mysql_query(sock, "set @@character_set_database=binary;"))
+ if (mysql_query(mysql, "set @@character_set_database=binary;"))
{
- db_error(sock); /* We shall countinue here, if --force was given */
+ db_error(mysql); /* We shall countinue here, if --force was given */
goto error;
}
- /*
- We should do something about the error
- */
- write_to_table(raw_table_name, sock);
+ if((error= write_to_table(raw_table_name, mysql)))
+ if (exitcode == 0)
+ exitcode= error;
error:
- if (sock)
- db_disconnect(current_host, sock);
+ if (mysql)
+ db_disconnect(current_host, mysql);
pthread_mutex_lock(&counter_mutex);
counter--;
pthread_mutex_unlock(&counter_mutex);
- return 0;
+ return error;
}
int main(int argc, char **argv)
{
- int exitcode=0, error=0;
+ int error=0;
char **argv_to_free;
MY_INIT(argv[0]);
@@ -607,26 +609,26 @@
}
else
{
- MYSQL *sock= 0;
- if (!(sock= db_connect(current_host,current_db,current_user,opt_password)))
+ MYSQL* mysql= 0;
+ if (!(mysql= db_connect(current_host,current_db,current_user,opt_password)))
{
free_defaults(argv_to_free);
return(1); /* purecov: deadcode */
}
- if (mysql_query(sock, "set @@character_set_database=binary;"))
+ if (mysql_query(mysql, "set @@character_set_database=binary;"))
{
- db_error(sock); /* We shall countinue here, if --force was given */
+ db_error(mysql); /* We shall countinue here, if --force was given */
return(1);
}
if (lock_tables)
- lock_table(sock, argc, argv);
+ lock_table(mysql, argc, argv);
for (; *argv != NULL; argv++)
- if ((error=write_to_table(*argv, sock)))
+ if ((error=write_to_table(*argv, mysql)))
if (exitcode == 0)
exitcode = error;
- db_disconnect(current_host, sock);
+ db_disconnect(current_host, mysql);
}
my_free(opt_password,MYF(MY_ALLOW_ZERO_PTR));
#ifdef HAVE_SMEM
| Thread |
|---|
| • bk commit into 5.1 tree (msvensson:1.2132) BUG#17382 | msvensson | 17 Feb |