summaryrefslogtreecommitdiff
path: root/sql/mysqld.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/mysqld.h')
-rw-r--r--sql/mysqld.h104
1 files changed, 57 insertions, 47 deletions
diff --git a/sql/mysqld.h b/sql/mysqld.h
index d508023a22b..ebf55d8fd8a 100644
--- a/sql/mysqld.h
+++ b/sql/mysqld.h
@@ -20,11 +20,13 @@
#include "sql_bitmap.h" /* Bitmap */
#include "my_decimal.h" /* my_decimal */
#include "mysql_com.h" /* SERVER_VERSION_LENGTH */
-#include "my_atomic.h" /* my_atomic_rwlock_t */
+#include "my_atomic.h"
#include "mysql/psi/mysql_file.h" /* MYSQL_FILE */
#include "sql_list.h" /* I_List */
#include "sql_cmd.h"
#include <my_rnd.h>
+#include "my_pthread.h"
+#include "my_rdtsc.h"
class THD;
struct handlerton;
@@ -53,6 +55,26 @@ typedef Bitmap<((MAX_INDEXES+7)/8*8)> key_map; /* Used for finding keys */
#define TEST_SIGINT 1024 /**< Allow sigint on threads */
#define TEST_SYNCHRONIZATION 2048 /**< get server to do sleep in
some places */
+
+/* Keep things compatible */
+#define OPT_DEFAULT SHOW_OPT_DEFAULT
+#define OPT_SESSION SHOW_OPT_SESSION
+#define OPT_GLOBAL SHOW_OPT_GLOBAL
+
+extern MY_TIMER_INFO sys_timer_info;
+
+/*
+ Values for --slave-parallel-mode
+ Must match order in slave_parallel_mode_typelib in sys_vars.cc.
+*/
+enum enum_slave_parallel_mode {
+ SLAVE_PARALLEL_NONE,
+ SLAVE_PARALLEL_MINIMAL,
+ SLAVE_PARALLEL_CONSERVATIVE,
+ SLAVE_PARALLEL_OPTIMISTIC,
+ SLAVE_PARALLEL_AGGRESSIVE
+};
+
/* Function prototypes */
void kill_mysql(void);
void close_connection(THD *thd, uint sql_errno= 0);
@@ -80,7 +102,7 @@ extern CHARSET_INFO *character_set_filesystem;
extern MY_BITMAP temp_pool;
extern bool opt_large_files, server_id_supplied;
extern bool opt_update_log, opt_bin_log, opt_error_log;
-extern my_bool opt_log, opt_slow_log, opt_bootstrap;
+extern my_bool opt_log, opt_bootstrap;
extern my_bool opt_backup_history_log;
extern my_bool opt_backup_progress_log;
extern ulonglong log_output_options;
@@ -98,16 +120,13 @@ extern my_bool opt_safe_show_db, opt_local_infile, opt_myisam_use_mmap;
extern my_bool opt_slave_compressed_protocol, use_temp_pool;
extern ulong slave_exec_mode_options, slave_ddl_exec_mode_options;
extern ulong slave_retried_transactions;
-#ifdef RBR_TRIGGERS
extern ulong slave_run_triggers_for_rbr;
-#else
-#define slave_run_triggers_for_rbr 0
-#endif //RBR_TRIGGERS
extern ulonglong slave_type_conversions_options;
extern my_bool read_only, opt_readonly;
extern my_bool lower_case_file_system;
extern my_bool opt_enable_named_pipe, opt_sync_frm, opt_allow_suspicious_udfs;
extern my_bool opt_secure_auth;
+extern const char *current_dbug_option;
extern char* opt_secure_file_priv;
extern char* opt_secure_backup_file_priv;
extern size_t opt_secure_backup_file_priv_len;
@@ -121,7 +140,8 @@ extern my_bool opt_enable_shared_memory;
extern ulong opt_replicate_events_marked_for_skip;
extern char *default_tz_name;
extern Time_zone *default_tz;
-extern char *default_storage_engine;
+extern char *default_storage_engine, *default_tmp_storage_engine;
+extern char *enforced_storage_engine;
extern bool opt_endinfo, using_udf_functions;
extern my_bool locked_in_memory;
extern bool opt_using_transactions;
@@ -167,6 +187,7 @@ extern ulong query_cache_limit;
extern ulong query_cache_min_res_unit;
extern ulong slow_launch_threads, slow_launch_time;
extern MYSQL_PLUGIN_IMPORT ulong max_connections;
+extern uint max_digest_length;
extern ulong max_connect_errors, connect_timeout;
extern my_bool slave_allow_batching;
extern my_bool allow_slave_start;
@@ -187,6 +208,7 @@ extern ulong stored_program_cache_size;
extern ulong opt_slave_parallel_threads;
extern ulong opt_slave_domain_parallel_threads;
extern ulong opt_slave_parallel_max_queued;
+extern ulong opt_slave_parallel_mode;
extern ulong opt_binlog_commit_wait_count;
extern ulong opt_binlog_commit_wait_usec;
extern my_bool opt_gtid_ignore_duplicates;
@@ -232,6 +254,9 @@ extern ulong connection_errors_internal;
extern ulong connection_errors_max_connection;
extern ulong connection_errors_peer_addr;
extern ulong log_warnings;
+extern my_bool encrypt_tmp_disk_tables, encrypt_tmp_files;
+extern ulong encryption_algorithm;
+extern const char *encryption_algorithm_names[];
/*
THR_MALLOC is a key which will be used to set/get MEM_ROOT** for a thread,
@@ -251,6 +276,7 @@ extern PSI_mutex_key key_LOCK_des_key_file;
extern PSI_mutex_key key_BINLOG_LOCK_index, key_BINLOG_LOCK_xid_list,
key_BINLOG_LOCK_binlog_background_thread,
+ m_key_LOCK_binlog_end_pos,
key_delayed_insert_mutex, key_hash_filo_lock, key_LOCK_active_mi,
key_LOCK_connection_count, key_LOCK_crypt, key_LOCK_delayed_create,
key_LOCK_delayed_insert, key_LOCK_delayed_status, key_LOCK_error_log,
@@ -333,6 +359,7 @@ void init_server_psi_keys();
MAINTAINER: Please keep this list in order, to limit merge collisions.
Hint: grep PSI_stage_info | sort -u
*/
+extern PSI_stage_info stage_apply_event;
extern PSI_stage_info stage_after_create;
extern PSI_stage_info stage_after_opening_tables;
extern PSI_stage_info stage_after_table_lock;
@@ -340,6 +367,7 @@ extern PSI_stage_info stage_allocating_local_table;
extern PSI_stage_info stage_alter_inplace_prepare;
extern PSI_stage_info stage_alter_inplace;
extern PSI_stage_info stage_alter_inplace_commit;
+extern PSI_stage_info stage_after_apply_event;
extern PSI_stage_info stage_changing_master;
extern PSI_stage_info stage_checking_master_version;
extern PSI_stage_info stage_checking_permissions;
@@ -413,6 +441,7 @@ extern PSI_stage_info stage_statistics;
extern PSI_stage_info stage_storing_result_in_query_cache;
extern PSI_stage_info stage_storing_row_into_queue;
extern PSI_stage_info stage_system_lock;
+extern PSI_stage_info stage_unlocking_tables;
extern PSI_stage_info stage_table_lock;
extern PSI_stage_info stage_filling_schema_table;
extern PSI_stage_info stage_update;
@@ -538,8 +567,6 @@ extern mysql_cond_t COND_manager;
extern mysql_cond_t COND_slave_init;
extern int32 thread_running;
extern int32 thread_count;
-extern my_atomic_rwlock_t thread_running_lock, thread_count_lock;
-extern my_atomic_rwlock_t slave_executed_entries_lock;
extern char *opt_ssl_ca, *opt_ssl_capath, *opt_ssl_cert, *opt_ssl_cipher,
*opt_ssl_key, *opt_ssl_crl, *opt_ssl_crlpath;
@@ -589,6 +616,7 @@ enum options_mysqld
OPT_SERVER_ID,
OPT_SKIP_HOST_CACHE,
OPT_SKIP_RESOLVE,
+ OPT_SLAVE_PARALLEL_MODE,
OPT_SSL_CA,
OPT_SSL_CAPATH,
OPT_SSL_CERT,
@@ -616,34 +644,28 @@ enum enum_query_type
/// Without character set introducers.
QT_WITHOUT_INTRODUCERS= (1 << 1),
/// view internal representation (like QT_ORDINARY except ORDER BY clause)
- QT_VIEW_INTERNAL= (1 << 2)
+ QT_VIEW_INTERNAL= (1 << 2),
+ /// This value means focus on readability, not on ability to parse back, etc.
+ QT_EXPLAIN= (1 << 4)
};
+
+
/* query_id */
typedef int64 query_id_t;
extern query_id_t global_query_id;
-extern my_atomic_rwlock_t global_query_id_lock;
-extern my_atomic_rwlock_t statistics_lock;
void unireg_end(void) __attribute__((noreturn));
/* increment query_id and return it. */
inline __attribute__((warn_unused_result)) query_id_t next_query_id()
{
- query_id_t id;
- my_atomic_rwlock_wrlock(&global_query_id_lock);
- id= my_atomic_add64(&global_query_id, 1);
- my_atomic_rwlock_wrunlock(&global_query_id_lock);
- return (id);
+ return my_atomic_add64_explicit(&global_query_id, 1, MY_MEMORY_ORDER_RELAXED);
}
inline query_id_t get_query_id()
{
- query_id_t id;
- my_atomic_rwlock_wrlock(&global_query_id_lock);
- id= my_atomic_load64(&global_query_id);
- my_atomic_rwlock_wrunlock(&global_query_id_lock);
- return id;
+ return my_atomic_load64_explicit(&global_query_id, MY_MEMORY_ORDER_RELAXED);
}
@@ -664,44 +686,34 @@ inline void table_case_convert(char * name, uint length)
name, length, name, length);
}
-inline void thread_safe_increment32(int32 *value, my_atomic_rwlock_t *lock)
+inline void thread_safe_increment32(int32 *value)
{
- my_atomic_rwlock_wrlock(lock);
- (void) my_atomic_add32(value, 1);
- my_atomic_rwlock_wrunlock(lock);
+ (void) my_atomic_add32_explicit(value, 1, MY_MEMORY_ORDER_RELAXED);
}
-inline void thread_safe_decrement32(int32 *value, my_atomic_rwlock_t *lock)
+inline void thread_safe_decrement32(int32 *value)
{
- my_atomic_rwlock_wrlock(lock);
- (void) my_atomic_add32(value, -1);
- my_atomic_rwlock_wrunlock(lock);
+ (void) my_atomic_add32_explicit(value, -1, MY_MEMORY_ORDER_RELAXED);
}
-inline void thread_safe_increment64(int64 *value, my_atomic_rwlock_t *lock)
+inline void thread_safe_increment64(int64 *value)
{
- my_atomic_rwlock_wrlock(lock);
- (void) my_atomic_add64(value, 1);
- my_atomic_rwlock_wrunlock(lock);
+ (void) my_atomic_add64_explicit(value, 1, MY_MEMORY_ORDER_RELAXED);
}
-inline void thread_safe_decrement64(int64 *value, my_atomic_rwlock_t *lock)
+inline void thread_safe_decrement64(int64 *value)
{
- my_atomic_rwlock_wrlock(lock);
- (void) my_atomic_add64(value, -1);
- my_atomic_rwlock_wrunlock(lock);
+ (void) my_atomic_add64_explicit(value, -1, MY_MEMORY_ORDER_RELAXED);
}
-inline void
-inc_thread_running()
+inline void inc_thread_running()
{
- thread_safe_increment32(&thread_running, &thread_running_lock);
+ thread_safe_increment32(&thread_running);
}
-inline void
-dec_thread_running()
+inline void dec_thread_running()
{
- thread_safe_decrement32(&thread_running, &thread_running_lock);
+ thread_safe_decrement32(&thread_running);
}
void set_server_version(void);
@@ -747,13 +759,11 @@ extern my_bool opt_master_verify_checksum;
extern my_bool opt_stack_trace;
extern my_bool opt_expect_abort;
extern my_bool opt_slave_sql_verify_checksum;
+extern my_bool opt_mysql56_temporal_format, strict_password_validation;
extern ulong binlog_checksum_options;
extern bool max_user_connections_checking;
extern ulong opt_binlog_dbug_fsync_sleep;
-extern uint internal_tmp_table_max_key_length;
-extern uint internal_tmp_table_max_key_segments;
-
extern uint volatile global_disable_checkpoint;
extern my_bool opt_help;