diff options
Diffstat (limited to 'libmysqld')
-rw-r--r-- | libmysqld/CMakeLists.txt | 40 | ||||
-rw-r--r-- | libmysqld/examples/CMakeLists.txt | 19 | ||||
-rw-r--r-- | libmysqld/lib_sql.cc | 35 | ||||
-rw-r--r-- | libmysqld/libmysqld.c | 1 | ||||
-rw-r--r-- | libmysqld/libmysqld.def | 3 |
5 files changed, 63 insertions, 35 deletions
diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt index eaf14b8a65a..c40beb5f9a1 100644 --- a/libmysqld/CMakeLists.txt +++ b/libmysqld/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2011, Oracle and/or its affiliates. # # 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 @@ -41,10 +41,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 @@ -70,13 +70,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 @@ -84,10 +85,16 @@ 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} ) @@ -127,7 +134,7 @@ FOREACH(LIB ${LIBS}) ENDFOREACH() MERGE_LIBRARIES(mysqlserver STATIC ${EMBEDDED_LIBS} - OUTPUT_NAME ${MYSQLSERVER_OUTPUT_NAME} COMPONENT Embedded) + OUTPUT_NAME ${MYSQLSERVER_OUTPUT_NAME} COMPONENT Development) # Visual Studio users need debug static library IF(MSVC) @@ -139,7 +146,22 @@ 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) +IF(NOT DISABLE_SHARED) + MERGE_LIBRARIES(libmysqld SHARED mysqlserver EXPORTS ${CLIENT_API_FUNCTIONS} + COMPONENT Server) + 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/examples/CMakeLists.txt b/libmysqld/examples/CMakeLists.txt index c4055a56303..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,17 +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) +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++ @@ -49,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 2de7217f10b..b454fc0d2e0 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -46,6 +46,7 @@ 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; } @@ -167,7 +168,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, #endif end: - thd->restore_globals(); + thd->reset_globals(); return result; } @@ -622,6 +623,7 @@ void end_embedded_server() my_free(copy_arguments_ptr); copy_arguments_ptr=0; clean_up(0); + clean_up_mutexes(); } @@ -631,6 +633,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); } @@ -742,6 +745,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]) { @@ -766,6 +770,7 @@ 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); memcpy(net->sqlstate, @@ -1209,6 +1214,7 @@ bool Protocol_text::store_null() return false; } + bool Protocol::net_store_data(const uchar *from, size_t length) { char *field_buf; @@ -1228,19 +1234,6 @@ 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, CHARSET_INFO *from_cs, CHARSET_INFO *to_cs) @@ -1264,3 +1257,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 6de1e3383d2..36728cf573c 100644 --- a/libmysqld/libmysqld.c +++ b/libmysqld/libmysqld.c @@ -77,7 +77,6 @@ static my_bool is_NT(void) } #endif - int mysql_init_character_set(MYSQL *mysql); MYSQL * STDCALL 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 |