diff options
author | unknown <hf@deer.(none)> | 2003-12-18 15:51:22 +0400 |
---|---|---|
committer | unknown <hf@deer.(none)> | 2003-12-18 15:51:22 +0400 |
commit | 886307f28275c29e2ca1e833081d2c4a01ef10b7 (patch) | |
tree | 2785059bf0f530b8d1cff70378904178e52fb05e /libmysqld | |
parent | 69cee79246feab6844f52a1e1244704d3741bde3 (diff) | |
download | mariadb-git-886307f28275c29e2ca1e833081d2c4a01ef10b7.tar.gz |
Fix for #2126 (mysql_server_init call shouldn't be needed)
now mysql_server_init is called from mysql_init with fake parameters
mysql_once_init code included to mysql_server_init.
embedded-specific initialization is in init_embedded_server function
include/errmsg.h:
this error won't happen
include/mysql.h:
declarations removed
libmysql/client_settings.h:
declaration of init_embedded_server/end_embedded_server added
libmysql/errmsg.c:
this error won't happen
libmysql/libmysql.c:
mysql_once_init -> mysql_server_init transformations
libmysqld/embedded_priv.h:
declaration deleted
libmysqld/lib_sql.cc:
mysql_server_init -> init_embedded_server
mysql_server_end -> end_embedded_server
libmysqld/libmysqld.c:
check for server_inited not needed now
sql-common/client.c:
mysql_server_init now called from mysql_init
sql/client_settings.h:
fake mysql_server_init for server code
sql/net_serv.cc:
we need MYSQL_CLIENT defined in embedded server
sql/sql_client.cc:
not needed now
Diffstat (limited to 'libmysqld')
-rw-r--r-- | libmysqld/embedded_priv.h | 1 | ||||
-rw-r--r-- | libmysqld/lib_sql.cc | 22 | ||||
-rw-r--r-- | libmysqld/libmysqld.c | 14 |
3 files changed, 6 insertions, 31 deletions
diff --git a/libmysqld/embedded_priv.h b/libmysqld/embedded_priv.h index 833cc1b1f80..673531c0c14 100644 --- a/libmysqld/embedded_priv.h +++ b/libmysqld/embedded_priv.h @@ -28,5 +28,4 @@ extern void init_embedded_mysql(MYSQL *mysql, int client_flag, char *db); extern void *create_embedded_thd(int client_flag, char *db); extern MYSQL_METHODS embedded_methods; void free_old_query(MYSQL *mysql); -extern my_bool server_inited; C_MODE_END diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 2fd6927854f..864adddb9c4 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -42,9 +42,6 @@ C_MODE_START #include "errmsg.h" #include <sql_common.h> -static my_bool org_my_init_done; -my_bool server_inited; - static my_bool emb_advanced_command(MYSQL *mysql, enum enum_server_command command, const char *header, ulong header_length, @@ -305,7 +302,7 @@ extern "C" char ** copy_arguments_ptr= 0; -int STDCALL mysql_server_init(int argc, char **argv, char **groups) +int init_embedded_server(int argc, char **argv, char **groups) { char glob_hostname[FN_REFLEN]; @@ -329,17 +326,7 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups) if (!groups) groups= (char**) fake_groups; - - /* Only call MY_INIT() if it hasn't been called before */ - if (!server_inited) - { - server_inited=1; - org_my_init_done=my_init_done; - } - if (!org_my_init_done) - { - MY_INIT((char *)"mysql_embedded"); // init my_sys library & pthreads - } + my_progname= (char *)"mysql_embedded"; if (init_common_variables("my", *argcp, *argvp, (const char **)groups)) { @@ -438,14 +425,11 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups) return 0; } -void STDCALL mysql_server_end() +void end_embedded_server() { my_free((char*) copy_arguments_ptr, MYF(MY_ALLOW_ZERO_PTR)); copy_arguments_ptr=0; clean_up(0); - /* If library called my_init(), free memory allocated by it */ - if (!org_my_init_done) - my_end(0); } } /* extern "C" */ diff --git a/libmysqld/libmysqld.c b/libmysqld/libmysqld.c index 59c18368279..f96c06ff0f6 100644 --- a/libmysqld/libmysqld.c +++ b/libmysqld/libmysqld.c @@ -163,20 +163,12 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, db ? db : "(Null)", user ? user : "(Null)")); -#if defined(EMBEDDED_LIBRARY) || !defined(DBUG_OFF) - if (!server_inited) - { - mysql->net.last_errno=CR_MYSQL_SERVER_INIT_MISSED; - strmov(mysql->net.last_error,ER(mysql->net.last_errno)); - goto error; - } -#endif - if (mysql->options.methods_to_use == MYSQL_OPT_USE_REMOTE_CONNECTION || (mysql->options.methods_to_use == MYSQL_OPT_GUESS_CONNECTION && host && strcmp(host,LOCAL_HOST))) - cli_mysql_real_connect(mysql, host, user, - passwd, db, port, unix_socket, client_flag); + DBUG_RETURN(cli_mysql_real_connect(mysql, host, user, + passwd, db, port, + unix_socket, client_flag)); mysql->methods= &embedded_methods; |