diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 44593cef0af04a6fd2a775c044b57fa94d57d1e9..a8379b3d3385f245d00185466e22a65f683a6679 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -33,6 +33,7 @@ dlenev@build.mysql.com dlenev@jabberwock.localdomain dlenev@mysql.com ejonore@mc03.ndb.mysql.com +georg@beethoven.local gerberb@ou800.zenez.com gluh@gluh.(none) gluh@gluh.mysql.r18.ru diff --git a/include/mysql.h b/include/mysql.h index 537467336f8d4eb05f6933f36d518a23d0fa0070..51540a7d89fc4c8f842b45dc19aebe2d38dc4270 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -188,10 +188,11 @@ struct st_mysql_options { my_bool secure_auth; /* function pointers for local infile support */ - int (*local_infile_init)(void **, const char *); + int (*local_infile_init)(void **, const char *, void *); int (*local_infile_read)(void *, char *, unsigned int); void (*local_infile_end)(void *); int (*local_infile_error)(void *, char *, unsigned int); + void *local_infile_userdata; }; enum mysql_status @@ -397,12 +398,14 @@ my_bool STDCALL mysql_slave_send_query(MYSQL *mysql, const char *q, void mysql_set_local_infile_handler(MYSQL *mysql, - int (*local_infile_init)(void **, const char *), + int (*local_infile_init)(void **, const char *, + void *), int (*local_infile_read)(void *, char *, unsigned int), void (*local_infile_end)(void *), int (*local_infile_error)(void *, char*, - unsigned int)); + unsigned int), + void *); void mysql_set_local_infile_default(MYSQL *mysql); diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 4ecc1bd05841cc8c27834d76a9900defe85b4d84..a467b7fc9fd59a9b16a306ddb193d16f776e5e8e 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -831,7 +831,8 @@ my_bool handle_local_infile(MYSQL *mysql, const char *net_filename) } /* initialize local infile (open file, usually) */ - if ((*options->local_infile_init)(&li_ptr, net_filename)) + if ((*options->local_infile_init)(&li_ptr, net_filename, + options->local_infile_userdata)) { my_net_write(net,"",0); /* Server needs one packet */ net_flush(net); @@ -915,7 +916,8 @@ typedef struct st_default_local_infile 1 error */ -static int default_local_infile_init(void **ptr, const char *filename) +static int default_local_infile_init(void **ptr, const char *filename, + void *userdata __attribute__ ((unused))) { default_local_infile_data *data; char tmp_name[FN_REFLEN]; @@ -1025,15 +1027,18 @@ default_local_infile_error(void *ptr, char *error_msg, uint error_msg_len) void mysql_set_local_infile_handler(MYSQL *mysql, - int (*local_infile_init)(void **, const char *), + int (*local_infile_init)(void **, const char *, + void *), int (*local_infile_read)(void *, char *, uint), void (*local_infile_end)(void *), - int (*local_infile_error)(void *, char *, uint)) + int (*local_infile_error)(void *, char *, uint), + void *userdata) { mysql->options.local_infile_init= local_infile_init; mysql->options.local_infile_read= local_infile_read; mysql->options.local_infile_end= local_infile_end; mysql->options.local_infile_error= local_infile_error; + mysql->options.local_infile_userdata = userdata; }