diff options
Diffstat (limited to 'sql/mysqld.h')
-rw-r--r-- | sql/mysqld.h | 104 |
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; |