diff options
Diffstat (limited to 'libmysqld')
-rw-r--r-- | libmysqld/CMakeLists.txt | 98 | ||||
-rw-r--r-- | libmysqld/emb_qcache.cc | 9 | ||||
-rw-r--r-- | libmysqld/examples/CMakeLists.txt | 25 | ||||
-rw-r--r-- | libmysqld/lib_sql.cc | 87 | ||||
-rw-r--r-- | libmysqld/libmysqld.c | 6 | ||||
-rw-r--r-- | libmysqld/libmysqld.def | 3 |
6 files changed, 124 insertions, 104 deletions
diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt index b1ed62ce141..d15be662df6 100644 --- a/libmysqld/CMakeLists.txt +++ b/libmysqld/CMakeLists.txt @@ -1,4 +1,5 @@ -# Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2011, Oracle and/or its affiliates. +# Copyright (c) 2009, 2018, MariaDB Corporation # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -23,6 +24,7 @@ ${CMAKE_SOURCE_DIR}/libmysqld ${CMAKE_SOURCE_DIR}/sql ${CMAKE_BINARY_DIR}/sql ${CMAKE_SOURCE_DIR}/regex +${ZLIB_INCLUDE_DIR} ${SSL_INCLUDE_DIRS} ${SSL_INTERNAL_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/sql/backup @@ -40,10 +42,10 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc ../libmysql/libmysql.c ../libmysql/errmsg.c ../client/get_password.c ../sql-common/client.c ../sql-common/my_time.c ../sql-common/my_user.c ../sql-common/pack.c - ../sql-common/client_plugin.c + ../sql-common/client_plugin.c ../sql-common/mysql_async.c ../sql/password.c ../sql/discover.cc ../sql/derror.cc ../sql/field.cc ../sql/field_conv.cc - ../sql/filesort.cc ../sql/gstream.cc + ../sql/filesort.cc ../sql/gstream.cc ../sql/slave.cc ../sql/signal_handler.cc ../sql/handler.cc ../sql/hash_filo.cc ../sql/hostname.cc ../sql/init.cc ../sql/item_buff.cc ../sql/item_cmpfunc.cc @@ -69,13 +71,14 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc ../sql/sql_list.cc ../sql/sql_load.cc ../sql/sql_locale.cc ../sql/sql_binlog.cc ../sql/sql_manager.cc ../sql/sql_parse.cc ../sql/sql_partition.cc ../sql/sql_plugin.cc - ../sql/debug_sync.cc + ../sql/debug_sync.cc ../sql/opt_table_elimination.cc ../sql/sql_prepare.cc ../sql/sql_rename.cc ../sql/sql_repl.cc ../sql/sql_select.cc ../sql/sql_servers.cc ../sql/sql_show.cc ../sql/sql_state.c ../sql/sql_string.cc ../sql/sql_tablespace.cc ../sql/sql_table.cc ../sql/sql_test.cc ../sql/sql_trigger.cc ../sql/sql_udf.cc ../sql/sql_union.cc ../sql/sql_update.cc ../sql/sql_view.cc ../sql/sql_profile.cc + ../sql/gcalc_tools.cc ../sql/gcalc_slicescan.cc ../sql/strfunc.cc ../sql/table.cc ../sql/thr_malloc.cc ../sql/sql_time.cc ../sql/tztime.cc ../sql/uniques.cc ../sql/unireg.cc ../sql/partition_info.cc ../sql/sql_connect.cc @@ -83,23 +86,21 @@ SET(SQL_EMBEDDED_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc ../sql/sql_alter.cc ../sql/sql_partition_admin.cc ../sql/event_parse_data.cc ../sql/sql_signal.cc ../sql/rpl_handler.cc - ../sql/rpl_utility.cc ../sql/sys_vars.cc ${CMAKE_BINARY_DIR}/sql/sql_builtin.cc ../sql/mdl.cc ../sql/transaction.cc + ../sql/sql_join_cache.cc + ../sql/multi_range_read.cc + ../sql/opt_index_cond_pushdown.cc + ../sql/opt_subselect.cc + ../sql/create_options.cc ../sql/rpl_utility.cc + ../sql/rpl_reporting.cc + ../sql/sql_expression_cache.cc ${GEN_SOURCES} ${MYSYS_LIBWRAP_SOURCE} ) -# These files have unused result errors, so we skip Werror -CHECK_C_COMPILER_FLAG("-Werror" HAVE_WERROR_FLAG) -IF(HAVE_WERROR_FLAG) - INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) - ADD_COMPILE_FLAGS(../sql/filesort.cc COMPILE_FLAGS "-Wno-error") - ADD_COMPILE_FLAGS(../sql/opt_range.cc COMPILE_FLAGS "-Wno-error") -ENDIF() - ADD_CONVENIENCE_LIBRARY(sql_embedded ${SQL_EMBEDDED_SOURCES}) DTRACE_INSTRUMENT(sql_embedded) ADD_DEPENDENCIES(sql_embedded GenError GenServerSource) @@ -108,8 +109,12 @@ ADD_DEPENDENCIES(sql_embedded GenError GenServerSource) # On Unix, it is libmysqld.a IF(WIN32) SET(MYSQLSERVER_OUTPUT_NAME mysqlserver) + SET(COMPONENT_MYSQLSERVER "Embedded") + SET(COMPONENT_LIBMYSQLD "Embedded") ELSE() SET(MYSQLSERVER_OUTPUT_NAME mysqld) + SET(COMPONENT_MYSQLSERVER "Development") + SET(COMPONENT_LIBMYSQLD "Server") ENDIF() @@ -134,7 +139,9 @@ FOREACH(LIB ${LIBS}) ENDFOREACH() MERGE_LIBRARIES(mysqlserver STATIC ${EMBEDDED_LIBS} - OUTPUT_NAME ${MYSQLSERVER_OUTPUT_NAME} COMPONENT Embedded) + OUTPUT_NAME ${MYSQLSERVER_OUTPUT_NAME} COMPONENT ${COMPONENT_MYSQLSERVER}) + +INSTALL(FILES embedded_priv.h DESTINATION ${INSTALL_INCLUDEDIR}/private COMPONENT ${COMPONENT_MYSQLSERVER}) # Visual Studio users need debug static library IF(MSVC) @@ -146,41 +153,34 @@ IF(UNIX) ${CMAKE_STATIC_LIBRARY_PREFIX}mysqld-debug) ENDIF() -IF(MSVC AND NOT DISABLE_SHARED) - MERGE_LIBRARIES(libmysqld SHARED ${LIBS} EXPORTS ${CLIENT_API_FUNCTIONS} - COMPONENT Embedded) -ENDIF() +# List of exported functions in embedded (client api except client plugin or +# async (*_start/*_cont functions) -OPTION(WITH_EMBEDDED_SHARED_LIBRARY - "Generate shared version of embedded library (in addition to the static one)" - OFF) -IF(WITH_EMBEDDED_SHARED_LIBRARY) - MERGE_LIBRARIES(libmysqld SHARED - mysqlserver - EXPORTS ${CLIENT_API_FUNCTIONS} - OUTPUT_NAME "mysqld" - COMPONENT Embedded) - SET_TARGET_PROPERTIES(libmysqld PROPERTIES - VERSION "${SHARED_LIB_MAJOR_VERSION}.${SHARED_LIB_MINOR_VERSION}.0" - SOVERSION "${SHARED_LIB_MAJOR_VERSION}" - ) - - GET_TARGET_PROPERTY(libmysqld_link_flags libmysqld LINK_FLAGS) - IF(NOT libmysqld_link_flag) - SET(libmysqld_link_flags) - ENDIF() - SET(libmysqld_link_flags - "${CMAKE_SHARED_LIBRARY_C_FLAGS} ${libmysqld_link_flags}") - SET_TARGET_PROPERTIES(libmysqld - PROPERTIES LINK_FLAGS "${libmysqld_link_flags}") - - IF(LINK_FLAG_NO_UNDEFINED) - SET(libmysqld_link_flags - "${libmysqld_link_flags} ${LINK_FLAG_NO_UNDEFINED}") - SET_TARGET_PROPERTIES(libmysqld - PROPERTIES LINK_FLAGS "${libmysqld_link_flags}") - ENDIF() +SET(EMBEDDED_API) - SET_TARGET_PROPERTIES(libmysqld PROPERTIES CLEAN_DIRECT_OUTPUT 1) - SET_TARGET_PROPERTIES(mysqlserver PROPERTIES CLEAN_DIRECT_OUTPUT 1) +FOREACH(f ${CLIENT_API_FUNCTIONS}) + IF(f MATCHES "plugin|_start$|_cont$") + # Ignore functions, embedded does not export them + ELSE() + SET(EMBEDDED_API ${EMBEDDED_API} ${f}) + ENDIF() +ENDFOREACH() + +IF(NOT DISABLE_SHARED) + MERGE_LIBRARIES(libmysqld SHARED mysqlserver EXPORTS ${EMBEDDED_API} + COMPONENT ${COMPONENT_LIBMYSQLD}) + IF(UNIX) + # Name the shared library, handle versioning (provides same api as client + # library hence the same version) + SET_TARGET_PROPERTIES(libmysqld PROPERTIES + OUTPUT_NAME mysqld + SOVERSION "${SHARED_LIB_MAJOR_VERSION}") + # Clean direct output flags, as 2 targets have the same base name + # libmysqld + SET_TARGET_PROPERTIES(libmysqld PROPERTIES CLEAN_DIRECT_OUTPUT 1) + SET_TARGET_PROPERTIES(mysqlserver PROPERTIES CLEAN_DIRECT_OUTPUT 1) + IF(LIBMYSQLD_SO_EXTRA_LIBS) + TARGET_LINK_LIBRARIES(libmysqld ${LIBMYSQLD_SO_EXTRA_LIBS}) + ENDIF() + ENDIF() ENDIF() diff --git a/libmysqld/emb_qcache.cc b/libmysqld/emb_qcache.cc index d263e5d5fe8..53e7ced424c 100644 --- a/libmysqld/emb_qcache.cc +++ b/libmysqld/emb_qcache.cc @@ -316,7 +316,8 @@ uint emb_count_querycache_size(THD *thd) result+= field->def_length; } - if (thd->protocol == &thd->protocol_binary) + if (thd->protocol == &thd->protocol_binary || + thd->command == COM_STMT_EXECUTE) { result+= (uint) (4*n_rows); for (; cur_row; cur_row=cur_row->next) @@ -379,7 +380,8 @@ void emb_store_querycache_result(Querycache_stream *dst, THD *thd) dst->store_safe_str(field->def, field->def_length); } - if (thd->protocol == &thd->protocol_binary) + if (thd->protocol == &thd->protocol_binary || + thd->command == COM_STMT_EXECUTE) { for (; cur_row; cur_row=cur_row->next) dst->store_str((char *) cur_row->data, cur_row->length); @@ -447,7 +449,8 @@ int emb_load_querycache_result(THD *thd, Querycache_stream *src) data->rows= rows; if (!rows) goto return_ok; - if (thd->protocol == &thd->protocol_binary) + if (thd->protocol == &thd->protocol_binary || + thd->command == COM_STMT_EXECUTE) { uint length; row= (MYSQL_ROWS *)alloc_root(&data->alloc, diff --git a/libmysqld/examples/CMakeLists.txt b/libmysqld/examples/CMakeLists.txt index 55b2079c320..559b1d9ae32 100644 --- a/libmysqld/examples/CMakeLists.txt +++ b/libmysqld/examples/CMakeLists.txt @@ -15,9 +15,9 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/libmysqld/include - ${CMAKE_SOURCE_DIR}/regex - ${CMAKE_SOURCE_DIR}/tests - ${READLINE_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR}/regex + ${CMAKE_SOURCE_DIR}/sql + ${MY_READLINE_INCLUDE_DIR} ) @@ -25,23 +25,17 @@ ADD_DEFINITIONS(-DEMBEDDED_LIBRARY -UMYSQL_CLIENT) MYSQL_ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc - ../../client/mysql.cc ../../client/readline.cc) + ../../client/mysql.cc ../../client/readline.cc + COMPONENT Client) TARGET_LINK_LIBRARIES(mysql_embedded mysqlserver) IF(UNIX) - ADD_DEFINITIONS(${READLINE_DEFINES}) - TARGET_LINK_LIBRARIES(mysql_embedded ${READLINE_LIBRARY}) + TARGET_LINK_LIBRARIES(mysql_embedded ${MY_READLINE_LIBRARY}) ENDIF(UNIX) -MYSQL_ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.cc) -# mysqltest has unused result errors, so we skip Werror -CHECK_C_COMPILER_FLAG("-Werror" HAVE_WERROR_FLAG) -IF(HAVE_WERROR_FLAG) - INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) - ADD_COMPILE_FLAGS(../../client/mysqltest.cc COMPILE_FLAGS "-Wno-error") -ENDIF() +MYSQL_ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.cc + COMPONENT Test) TARGET_LINK_LIBRARIES(mysqltest_embedded mysqlserver) - IF(CMAKE_GENERATOR MATCHES "Xcode") # It does not seem possible to tell Xcode the resulting target might need # to be linked with C++ runtime. The project needs to have at least one C++ @@ -55,7 +49,8 @@ IF(CMAKE_GENERATOR MATCHES "Xcode") ${CMAKE_CURRENT_BINARY_DIR}/mysql_client_test_embedded_dummy.cc ../../tests/mysql_client_test.c) ELSE() - MYSQL_ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c) + MYSQL_ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c + COMPONENT Test) SET_TARGET_PROPERTIES(mysql_client_test_embedded PROPERTIES HAS_CXX TRUE) ENDIF() TARGET_LINK_LIBRARIES(mysql_client_test_embedded mysqlserver) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 7c8e9d3426a..623569c18de 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -43,12 +43,14 @@ C_MODE_START extern unsigned int mysql_server_last_errno; extern char mysql_server_last_error[MYSQL_ERRMSG_SIZE]; static my_bool emb_read_query_result(MYSQL *mysql); +static void emb_free_embedded_thd(MYSQL *mysql); extern "C" void unireg_clear(int exit_code) { DBUG_ENTER("unireg_clear"); clean_up(!opt_help && (exit_code || !opt_bootstrap)); /* purecov: inspected */ + clean_up_mutexes(); my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0); DBUG_VOID_RETURN; } @@ -92,7 +94,7 @@ void embedded_get_error(MYSQL *mysql, MYSQL_DATA *data) NET *net= &mysql->net; struct embedded_query_result *ei= data->embedded_info; net->last_errno= ei->last_errno; - strmake(net->last_error, ei->info, sizeof(net->last_error)-1); + strmake_buf(net->last_error, ei->info); memcpy(net->sqlstate, ei->sqlstate, sizeof(net->sqlstate)); mysql->server_status= ei->server_status; my_free(data); @@ -109,6 +111,17 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, NET *net= &mysql->net; my_bool stmt_skip= stmt ? stmt->state != MYSQL_STMT_INIT_DONE : FALSE; + if (thd->killed != NOT_KILLED) + { + if (thd->killed < KILL_CONNECTION) + thd->killed= NOT_KILLED; + else + { + emb_free_embedded_thd(mysql); + thd= 0; + } + } + if (!thd) { /* Do "reconnect" if possible */ @@ -170,7 +183,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, #endif end: - thd->restore_globals(); + thd->reset_globals(); return result; } @@ -328,6 +341,12 @@ static int emb_stmt_execute(MYSQL_STMT *stmt) THD *thd; my_bool res; + if (stmt->param_count && !stmt->bind_param_done) + { + set_stmt_error(stmt, CR_PARAMS_NOT_BOUND, unknown_sqlstate, NULL); + DBUG_RETURN(1); + } + int4store(header, stmt->stmt_id); header[4]= (uchar) stmt->flags; thd= (THD*)stmt->mysql->thd; @@ -418,11 +437,13 @@ int emb_unbuffered_fetch(MYSQL *mysql, char **row) static void emb_free_embedded_thd(MYSQL *mysql) { THD *thd= (THD*)mysql->thd; + mysql_mutex_lock(&LOCK_thread_count); thd->clear_data_list(); thread_count--; thd->store_globals(); thd->unlink(); delete thd; + mysql_mutex_unlock(&LOCK_thread_count); my_pthread_setspecific_ptr(THR_THD, 0); mysql->thd=0; } @@ -442,7 +463,7 @@ static MYSQL_RES * emb_store_result(MYSQL *mysql) int emb_read_change_user_result(MYSQL *mysql) { mysql->net.read_pos= (uchar*)""; // fake an OK packet - return mysql_errno(mysql) ? packet_error : 1 /* length of the OK packet */; + return mysql_errno(mysql) ? (int)packet_error : 1 /* length of the OK packet */; } MYSQL_METHODS embedded_methods= @@ -625,6 +646,7 @@ void end_embedded_server() my_free(copy_arguments_ptr); copy_arguments_ptr=0; clean_up(0); + clean_up_mutexes(); } @@ -634,6 +656,7 @@ void init_embedded_mysql(MYSQL *mysql, int client_flag) thd->mysql= mysql; mysql->server_version= server_version; mysql->client_flag= client_flag; + //mysql->server_capabilities= client_flag; init_alloc_root(&mysql->field_alloc, 8192, 0); } @@ -683,8 +706,10 @@ void *create_embedded_thd(int client_flag) thd->data_tail= &thd->first_data; bzero((char*) &thd->net, sizeof(thd->net)); + mysql_mutex_lock(&LOCK_thread_count); thread_count++; threads.append(thd); + mysql_mutex_unlock(&LOCK_thread_count); thd->mysys_var= 0; return thd; err: @@ -702,10 +727,9 @@ int check_embedded_connection(MYSQL *mysql, const char *db) thd_init_client_charset(thd, mysql->charset->number); thd->update_charset(); Security_context *sctx= thd->security_ctx; - sctx->set_host(my_localhost); - sctx->host_or_ip= sctx->get_host()->ptr(); - strmake(sctx->priv_host, (char*) my_localhost, MAX_HOSTNAME-1); - strmake(sctx->priv_user, mysql->user, USERNAME_LENGTH-1); + sctx->host_or_ip= sctx->host= (char*) my_localhost; + strmake_buf(sctx->priv_host, (char*) my_localhost); + strmake_buf(sctx->priv_user, mysql->user); sctx->user= my_strdup(mysql->user, MYF(0)); sctx->proxy_user[0]= 0; sctx->master_access= GLOBAL_ACLS; // Full rights @@ -731,14 +755,14 @@ int check_embedded_connection(MYSQL *mysql, const char *db) if (mysql->options.client_ip) { - sctx->set_host(my_strdup(mysql->options.client_ip, MYF(0))); - sctx->set_ip(my_strdup(sctx->get_host()->ptr(), MYF(0))); + sctx->host= my_strdup(mysql->options.client_ip, MYF(0)); + sctx->ip= my_strdup(sctx->host, MYF(0)); } else - sctx->set_host((char*)my_localhost); - sctx->host_or_ip= sctx->host->ptr(); + sctx->host= (char*)my_localhost; + sctx->host_or_ip= sctx->host; - if (acl_check_host(sctx->get_host()->ptr(), sctx->get_ip()->ptr())) + if (acl_check_host(sctx->host, sctx->ip)) goto err; /* construct a COM_CHANGE_USER packet */ @@ -746,6 +770,7 @@ int check_embedded_connection(MYSQL *mysql, const char *db) memset(thd->scramble, 55, SCRAMBLE_LENGTH); // dummy scramble thd->scramble[SCRAMBLE_LENGTH]= 0; + //strcpy(mysql->scramble, thd->scramble); if (mysql->passwd && mysql->passwd[0]) { @@ -770,8 +795,9 @@ int check_embedded_connection(MYSQL *mysql, const char *db) goto err; } return 0; + err: - strmake(net->last_error, thd->main_da.message(), sizeof(net->last_error)-1); + strmake_buf(net->last_error, thd->main_da.message()); memcpy(net->sqlstate, mysql_errno_to_sqlstate(thd->main_da.sql_errno()), sizeof(net->sqlstate)-1); @@ -1118,8 +1144,7 @@ net_send_ok(THD *thd, data->embedded_info->affected_rows= affected_rows; data->embedded_info->insert_id= id; if (message) - strmake(data->embedded_info->info, message, - sizeof(data->embedded_info->info)-1); + strmake_buf(data->embedded_info->info, message); bool error= write_eof_packet(thd, server_status, statement_warn_count); thd->cur_data= 0; @@ -1170,7 +1195,7 @@ bool net_send_error_packet(THD *thd, uint sql_errno, const char *err, err, strlen(err), system_charset_info, &error); /* Converted error message is always null-terminated. */ - strmake(ei->info, converted_err, sizeof(ei->info)-1); + strmake_buf(ei->info, converted_err); strmov(ei->sqlstate, sqlstate); ei->server_status= thd->server_status; thd->cur_data= 0; @@ -1213,6 +1238,7 @@ bool Protocol_text::store_null() return false; } + bool Protocol::net_store_data(const uchar *from, size_t length) { char *field_buf; @@ -1232,21 +1258,8 @@ bool Protocol::net_store_data(const uchar *from, size_t length) return FALSE; } -#if defined(_MSC_VER) && _MSC_VER < 1400 -#define vsnprintf _vsnprintf -#endif -int vprint_msg_to_log(enum loglevel level __attribute__((unused)), - const char *format, va_list argsi) -{ - vsnprintf(mysql_server_last_error, sizeof(mysql_server_last_error), - format, argsi); - mysql_server_last_errno= CR_UNKNOWN_ERROR; - return 0; -} - - -bool Protocol::net_store_data(const uchar *from, size_t length, +bool Protocol::net_store_data_cs(const uchar *from, size_t length, CHARSET_INFO *from_cs, CHARSET_INFO *to_cs) { uint conv_length= to_cs->mbmaxlen * length / from_cs->mbminlen; @@ -1268,3 +1281,17 @@ bool Protocol::net_store_data(const uchar *from, size_t length, ++next_mysql_field; return false; } + +#if defined(_MSC_VER) && _MSC_VER < 1400 +#define vsnprintf _vsnprintf +#endif + +int vprint_msg_to_log(enum loglevel level __attribute__((unused)), + const char *format, va_list argsi) +{ + vsnprintf(mysql_server_last_error, sizeof(mysql_server_last_error), + format, argsi); + mysql_server_last_errno= CR_UNKNOWN_ERROR; + return 0; +} + diff --git a/libmysqld/libmysqld.c b/libmysqld/libmysqld.c index 85ca0cf4bd8..36728cf573c 100644 --- a/libmysqld/libmysqld.c +++ b/libmysqld/libmysqld.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -77,7 +77,6 @@ static my_bool is_NT(void) } #endif - int mysql_init_character_set(MYSQL *mysql); MYSQL * STDCALL @@ -173,9 +172,6 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, if (db) client_flag|=CLIENT_CONNECT_WITH_DB; - if (embedded_ssl_check(mysql)) - goto error; - mysql->info_buffer= my_malloc(MYSQL_ERRMSG_SIZE, MYF(0)); mysql->thd= create_embedded_thd(client_flag); diff --git a/libmysqld/libmysqld.def b/libmysqld/libmysqld.def index ecfad75b12f..ebabfef28a3 100644 --- a/libmysqld/libmysqld.def +++ b/libmysqld/libmysqld.def @@ -1,5 +1,4 @@ LIBRARY LIBMYSQLD -DESCRIPTION 'MySQL 5.1 Embedded Server Library' VERSION 5.1 EXPORTS mysql_thread_end @@ -104,4 +103,4 @@ EXPORTS mysql_stmt_attr_get mysql_stmt_attr_set mysql_stmt_field_count - mysql_stmt_next_result + mysql_get_server_name |