summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
Diffstat (limited to 'libmysqld')
-rw-r--r--libmysqld/CMakeLists.txt98
-rw-r--r--libmysqld/emb_qcache.cc9
-rw-r--r--libmysqld/examples/CMakeLists.txt25
-rw-r--r--libmysqld/lib_sql.cc87
-rw-r--r--libmysqld/libmysqld.c6
-rw-r--r--libmysqld/libmysqld.def3
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