summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-05-06 14:36:46 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-05-06 14:36:46 +0300
commit14c6f00a9f25430f995fb42c768e19a9d2a980e8 (patch)
treeb0ff411e6ca13668124a66ded3b5bb5a7721e595 /sql
parentbaad0f3484ec3079a09a206576290091cc823428 (diff)
parentb82c602db588cfa688278ef772050c004590c124 (diff)
downloadmariadb-git-14c6f00a9f25430f995fb42c768e19a9d2a980e8.tar.gz
Merge 10.1 into 10.2
Also, include fixes by Vladislav Vaintroub to the aws_key_management plugin. The AWS C++ SDK specifically depends on OPENSSL_LIBRARIES, not generic SSL_LIBRARIES (such as YaSSL).
Diffstat (limited to 'sql')
-rw-r--r--sql/CMakeLists.txt32
-rw-r--r--sql/innodb_priv.h1
-rw-r--r--sql/mysqld.cc6
-rw-r--r--sql/mysqld.h14
-rw-r--r--sql/sql_class.cc4
-rw-r--r--sql/sql_plugin.cc30
-rw-r--r--sql/sql_plugin_services.ic26
-rw-r--r--sql/unireg.h4
8 files changed, 63 insertions, 54 deletions
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index f46d8e4ee83..c0a123a0c74 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -82,39 +82,39 @@ SET (SQL_SOURCE
filesort_utils.cc
filesort.cc gstream.cc
signal_handler.cc
- handler.cc hash_filo.h
+ handler.cc
hostname.cc init.cc item.cc item_buff.cc item_cmpfunc.cc
item_create.cc item_func.cc item_geofunc.cc item_row.cc
item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc
key.cc log.cc lock.cc
log_event.cc rpl_record.cc rpl_reporting.cc
log_event_old.cc rpl_record_old.cc
- message.h mf_iocache.cc my_decimal.cc
+ mf_iocache.cc my_decimal.cc
mysqld.cc net_serv.cc keycaches.cc
../sql-common/client_plugin.c
- opt_range.cc opt_range.h opt_sum.cc
+ opt_range.cc opt_sum.cc
../sql-common/pack.c parse_file.cc password.c procedure.cc
protocol.cc records.cc repl_failsafe.cc rpl_filter.cc
session_tracker.cc
set_var.cc
slave.cc sp.cc sp_cache.cc sp_head.cc sp_pcontext.cc
sp_rcontext.cc spatial.cc sql_acl.cc sql_analyse.cc sql_base.cc
- sql_cache.cc sql_class.cc sql_client.cc sql_crypt.cc sql_crypt.h
+ sql_cache.cc sql_class.cc sql_client.cc sql_crypt.cc
sql_cursor.cc sql_db.cc sql_delete.cc sql_derived.cc
sql_digest.cc sql_do.cc
sql_error.cc sql_handler.cc sql_get_diagnostics.cc
sql_help.cc sql_insert.cc sql_lex.cc
sql_list.cc sql_load.cc sql_manager.cc
- sql_parse.cc sql_bootstrap.cc sql_bootstrap.h
+ sql_parse.cc sql_bootstrap.cc
sql_partition.cc sql_plugin.cc sql_prepare.cc sql_rename.cc
- debug_sync.cc debug_sync.h
+ debug_sync.cc
sql_repl.cc sql_select.cc sql_show.cc sql_state.c
group_by_handler.cc
sql_statistics.cc sql_string.cc
sql_table.cc sql_test.cc sql_trigger.cc sql_udf.cc sql_union.cc
sql_update.cc sql_view.cc strfunc.cc table.cc thr_malloc.cc
sql_time.cc tztime.cc unireg.cc item_xmlfunc.cc
- uniques.cc uniques.h
+ uniques.cc
rpl_tblmap.cc sql_binlog.cc event_scheduler.cc event_data_objects.cc
event_queue.cc event_db_repository.cc
sql_tablespace.cc events.cc ../sql-common/my_user.c
@@ -124,23 +124,23 @@ SET (SQL_SOURCE
sql_profile.cc event_parse_data.cc sql_alter.cc
sql_signal.cc rpl_handler.cc mdl.cc sql_admin.cc
transaction.cc sys_vars.cc sql_truncate.cc datadict.cc
- sql_reload.cc sql_cmd.h item_inetfunc.cc
+ sql_reload.cc item_inetfunc.cc
# added in MariaDB:
- sql_explain.h sql_explain.cc
- sql_analyze_stmt.h sql_analyze_stmt.cc
- sql_lifo_buffer.h sql_join_cache.h sql_join_cache.cc
+ sql_explain.cc
+ sql_analyze_stmt.cc
+ sql_join_cache.cc
create_options.cc multi_range_read.cc
opt_index_cond_pushdown.cc opt_subselect.cc
opt_table_elimination.cc sql_expression_cache.cc
gcalc_slicescan.cc gcalc_tools.cc
threadpool_common.cc ../sql-common/mysql_async.c
- my_apc.cc my_apc.h mf_iocache_encr.cc item_jsonfunc.cc
- my_json_writer.cc my_json_writer.h
+ my_apc.cc mf_iocache_encr.cc item_jsonfunc.cc
+ my_json_writer.cc
rpl_gtid.cc rpl_parallel.cc
- sql_type.cc sql_type.h
+ sql_type.cc
item_windowfunc.cc sql_window.cc
- sql_cte.cc sql_cte.h
+ sql_cte.cc
${WSREP_SOURCES}
table_cache.cc encryption.cc temporary_tables.cc
${CMAKE_CURRENT_BINARY_DIR}/sql_builtin.cc
@@ -176,7 +176,7 @@ TARGET_LINK_LIBRARIES(sql ${MYSQLD_STATIC_PLUGIN_LIBS}
${LIBSYSTEMD})
IF(WIN32)
- SET(MYSQLD_SOURCE main.cc nt_servc.cc nt_servc.h message.rc)
+ SET(MYSQLD_SOURCE main.cc nt_servc.cc message.rc)
TARGET_LINK_LIBRARIES(sql psapi)
ELSE()
SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL})
diff --git a/sql/innodb_priv.h b/sql/innodb_priv.h
index ec85aa352f8..27aa9ac8645 100644
--- a/sql/innodb_priv.h
+++ b/sql/innodb_priv.h
@@ -28,6 +28,7 @@ void localtime_to_TIME(MYSQL_TIME *to, struct tm *from);
uint strconvert(CHARSET_INFO *from_cs, const char *from, uint from_length,
CHARSET_INFO *to_cs, char *to, uint to_length,
uint *errors);
+
void sql_print_error(const char *format, ...);
#define thd_binlog_pos(X, Y, Z) mysql_bin_log_commit_pos(X, Z, Y)
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 68c8f6aa781..2bbdff6ac04 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -3188,7 +3188,7 @@ LONG WINAPI my_unhandler_exception_filter(EXCEPTION_POINTERS *ex_pointers)
}
-static void init_signals(void)
+void init_signals(void)
{
if(opt_console)
SetConsoleCtrlHandler(console_event_handler,TRUE);
@@ -3319,7 +3319,7 @@ static size_t my_setstacksize(pthread_attr_t *attr, size_t stacksize)
#ifndef EMBEDDED_LIBRARY
-static void init_signals(void)
+void init_signals(void)
{
sigset_t set;
struct sigaction sa;
@@ -6296,7 +6296,7 @@ static void bootstrap(MYSQL_FILE *file)
thd->variables.wsrep_on= 0;
#endif
thd->bootstrap=1;
- my_net_init(&thd->net,(st_vio*) 0, (void*) 0, MYF(0));
+ my_net_init(&thd->net,(st_vio*) 0, thd, MYF(0));
thd->max_client_packet_length= thd->net.max_packet;
thd->security_ctx->master_access= ~(ulong)0;
in_bootstrap= TRUE;
diff --git a/sql/mysqld.h b/sql/mysqld.h
index 613b57b133d..4c864e90f1b 100644
--- a/sql/mysqld.h
+++ b/sql/mysqld.h
@@ -778,20 +778,6 @@ inline void dec_thread_running()
extern void set_server_version(char *buf, size_t size);
-#if defined(MYSQL_DYNAMIC_PLUGIN) && defined(_WIN32)
-extern "C" THD *_current_thd_noinline();
-#define _current_thd() _current_thd_noinline()
-#else
-/*
- THR_THD is a key which will be used to set/get THD* for a thread,
- using my_pthread_setspecific_ptr()/my_thread_getspecific_ptr().
-*/
-extern pthread_key(THD*, THR_THD);
-inline THD *_current_thd(void)
-{
- return my_pthread_getspecific_ptr(THD*,THR_THD);
-}
-#endif
#define current_thd _current_thd()
inline int set_current_thd(THD *thd)
{
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index f8ba23298e0..43419472026 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -4006,16 +4006,12 @@ my_bool thd_net_is_killed()
void thd_increment_bytes_received(void *thd, ulong length)
{
- if (unlikely(!thd)) // Called from federatedx
- thd= current_thd;
((THD*) thd)->status_var.bytes_received+= length;
}
void thd_increment_net_big_packet_count(void *thd, ulong length)
{
- if (unlikely(!thd)) // Called from federatedx
- thd= current_thd;
((THD*) thd)->status_var.net_big_packet_count+= length;
}
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index 101ea3fd3c7..d352d715aa5 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -1617,22 +1617,28 @@ int plugin_init(int *argc, char **argv, int flags)
}
}
- /* First, we initialize only MyISAM - that should always succeed */
+ /*
+ First, we initialize only MyISAM - that should almost always succeed
+ (almost always, because plugins can be loaded outside of the server, too).
+ */
plugin_ptr= plugin_find_internal(&MyISAM, MYSQL_STORAGE_ENGINE_PLUGIN);
- DBUG_ASSERT(plugin_ptr);
- DBUG_ASSERT(plugin_ptr->load_option == PLUGIN_FORCE);
+ DBUG_ASSERT(plugin_ptr || !mysql_mandatory_plugins[0]);
+ if (plugin_ptr)
+ {
+ DBUG_ASSERT(plugin_ptr->load_option == PLUGIN_FORCE);
- if (plugin_initialize(&tmp_root, plugin_ptr, argc, argv, false))
- goto err_unlock;
+ if (plugin_initialize(&tmp_root, plugin_ptr, argc, argv, false))
+ goto err_unlock;
- /*
- set the global default storage engine variable so that it will
- not be null in any child thread.
- */
- global_system_variables.table_plugin=
- intern_plugin_lock(NULL, plugin_int_to_ref(plugin_ptr));
- DBUG_ASSERT(plugin_ptr->ref_count == 1);
+ /*
+ set the global default storage engine variable so that it will
+ not be null in any child thread.
+ */
+ global_system_variables.table_plugin =
+ intern_plugin_lock(NULL, plugin_int_to_ref(plugin_ptr));
+ DBUG_ASSERT(plugin_ptr->ref_count == 1);
+ }
mysql_mutex_unlock(&LOCK_plugin);
/* Register (not initialize!) all dynamic plugins */
diff --git a/sql/sql_plugin_services.ic b/sql/sql_plugin_services.ic
index 2e71fac50be..ea6aefa5993 100644
--- a/sql/sql_plugin_services.ic
+++ b/sql/sql_plugin_services.ic
@@ -133,7 +133,7 @@ static struct base64_service_st base64_handler= {
my_base64_decode
};
-static struct thd_error_context_service_st thd_error_conext_handler= {
+static struct thd_error_context_service_st thd_error_context_handler= {
thd_get_error_message,
thd_get_error_number,
thd_get_error_row,
@@ -196,6 +196,24 @@ static struct encryption_scheme_service_st encryption_scheme_handler=
encryption_scheme_decrypt
};
+static struct my_crypt_service_st crypt_handler=
+{
+ my_aes_crypt_init,
+ my_aes_crypt_update,
+ my_aes_crypt_finish,
+ my_aes_crypt,
+ my_aes_get_size,
+ my_aes_ctx_size,
+ my_random_bytes
+};
+
+static struct my_print_error_service_st my_print_error_handler=
+{
+ my_error,
+ my_printf_error,
+ my_printv_error
+};
+
static struct st_service_ref list_of_services[]=
{
{ "base64_service", VERSION_base64, &base64_handler },
@@ -203,19 +221,21 @@ static struct st_service_ref list_of_services[]=
{ "encryption_scheme_service", VERSION_encryption_scheme, &encryption_scheme_handler },
{ "encryption_service", VERSION_encryption, &encryption_handler },
{ "logger_service", VERSION_logger, &logger_service_handler },
+ { "my_crypt_service", VERSION_my_crypt, &crypt_handler},
{ "my_md5_service", VERSION_my_md5, &my_md5_handler},
+ { "my_print_error_service", VERSION_my_print_error, &my_print_error_handler},
{ "my_sha1_service", VERSION_my_sha1, &my_sha1_handler},
{ "my_sha2_service", VERSION_my_sha2, &my_sha2_handler},
{ "my_snprintf_service", VERSION_my_snprintf, &my_snprintf_handler },
{ "progress_report_service", VERSION_progress_report, &progress_report_handler },
{ "thd_alloc_service", VERSION_thd_alloc, &thd_alloc_handler },
{ "thd_autoinc_service", VERSION_thd_autoinc, &thd_autoinc_handler },
- { "thd_error_context_service", VERSION_thd_error_context, &thd_error_conext_handler },
+ { "thd_error_context_service", VERSION_thd_error_context, &thd_error_context_handler },
{ "thd_kill_statement_service", VERSION_kill_statement, &thd_kill_statement_handler },
{ "thd_rnd_service", VERSION_thd_rnd, &thd_rnd_handler },
{ "thd_specifics_service", VERSION_thd_specifics, &thd_specifics_handler },
{ "thd_timezone_service", VERSION_thd_timezone, &thd_timezone_handler },
{ "thd_wait_service", VERSION_thd_wait, &thd_wait_handler },
- { "wsrep_service", VERSION_wsrep, &wsrep_handler },
+ { "wsrep_service", VERSION_wsrep, &wsrep_handler }
};
diff --git a/sql/unireg.h b/sql/unireg.h
index b1cab841092..b0cfb3841ef 100644
--- a/sql/unireg.h
+++ b/sql/unireg.h
@@ -54,8 +54,8 @@
#define ER(X) ER_THD(current_thd, (X))
#define ER_THD_OR_DEFAULT(thd,X) ((thd) ? ER_THD(thd, (X)) : ER_DEFAULT(X))
-#define ME_INFO (ME_HOLDTANG+ME_OLDWIN+ME_NOREFRESH)
-#define ME_ERROR (ME_BELL+ME_OLDWIN+ME_NOREFRESH)
+#define ME_INFO (ME_HOLDTANG | ME_NOREFRESH)
+#define ME_ERROR (ME_BELL | ME_NOREFRESH)
#define MYF_RW MYF(MY_WME+MY_NABP) /* Vid my_read & my_write */
#define SPECIAL_USE_LOCKS 1 /* Lock used databases */