From f978e17c691ec0c26b0d4076ccac9aec86391935 Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Tue, 25 Aug 2015 20:06:14 +1000 Subject: [PATCH] Allow editing unless it's a static variable. Allow editing new dynamic variables added in MariaDB and newer versions of MySQL. Signed-off-by: Madhura Jayaratne --- libraries/server_variables.lib.php | 570 +++++++++++------------------ 1 file changed, 207 insertions(+), 363 deletions(-) diff --git a/libraries/server_variables.lib.php b/libraries/server_variables.lib.php index 459939e3e7..cf7d3479c5 100644 --- a/libraries/server_variables.lib.php +++ b/libraries/server_variables.lib.php @@ -218,8 +218,8 @@ function PMA_getHtmlForServerVariablesItems($variable_doc_links) = $GLOBALS['dbi']->fetchResult('SHOW SESSION VARIABLES;', 0, 1); $serverVars = $GLOBALS['dbi']->fetchResult('SHOW GLOBAL VARIABLES;', 0, 1); - // list of Dynamic System variables - $dynamic_variables = PMA_getDynamicSystemVariables(); + // list of static system variables + $static_variables = PMA_getStaticSystemVariables(); $output = ''; $odd_row = true; @@ -234,7 +234,7 @@ function PMA_getHtmlForServerVariablesItems($variable_doc_links) $output .= ''; // Edit Link active only for Dynamic System variables - if (in_array(strtolower($name), $dynamic_variables)) { + if (! in_array(strtolower($name), $static_variables)) { $output .= '' . PMA_Util::getIcon('b_edit.png', __('Edit')) . ''; } else { @@ -2245,372 +2245,216 @@ function PMA_getArrayForDocumentLinks() } /** - * Returns Array of dynamic system variables (i.e. not read-only) + * Returns array of static system variables (i.e. read-only) * * @return array */ -function PMA_getDynamicSystemVariables() +function PMA_getStaticSystemVariables() { - $dynamic_variables = array( - 'auto_increment_increment', - 'auto_increment_offset', - 'autocommit', - 'automatic_sp_privileges', - 'avoid_temporal_upgrade', - 'big_tables', - 'binlog_cache_size', - 'binlog_checksum', - 'binlog_direct_non_transactional_updates', - 'binlog_error_action', - 'binlog_format', - 'binlog_group_commit_sync_delay', - 'binlog_group_commit_sync_no_delay_count', - 'binlog_max_flush_queue_time', - 'binlog_order_commits', - 'binlog_row_image=image_type', - 'binlog_rows_query_log_events', - 'binlog_stmt_cache_size', - 'binlogging_impossible_mode', - 'block_encryption_mode', - 'bulk_insert_buffer_size', - 'character_set_client', - 'character_set_connection', - 'character_set_database', - 'character_set_filesystem', - 'character_set_results', - 'character_set_server', - 'check_proxy_users', - 'collation_connection', - 'collation_database', - 'collation_server', - 'completion_type', - 'concurrent_insert', - 'connect_timeout', - 'debug', - 'debug_sync', - 'default_password_lifetime', - 'default_storage_engine', - 'default_tmp_storage_engine', - 'default_week_format', - 'delay_key_write', - 'delayed_insert_limit', - 'delayed_insert_timeout', - 'delayed_queue_size', - 'div_precision_increment', - 'end_markers_in_json', - 'enforce_gtid_consistency', - 'enforce_gtid_consistency', - 'eq_range_index_dive_limit', - 'event_scheduler', - 'executed_gtids_compression_period', - 'expire_logs_days', - 'flush', - 'flush_time', - 'foreign_key_checks', - 'ft_boolean_syntax', - 'general_log', - 'general_log_file', - 'group_concat_max_len', - 'gtid_executed_compression_period', - 'gtid_mode', - 'gtid_mode', - 'gtid_next', - 'gtid_purged', - 'host_cache_size', - 'identity', - 'init_connect', - 'init_slave', - 'innodb_adaptive_flushing', - 'innodb_adaptive_flushing_lwm', - 'innodb_adaptive_hash_index', - 'innodb_adaptive_max_sleep_delay', - 'innodb_api_bk_commit_interval', - 'innodb_api_trx_level', - 'innodb_autoextend_increment', - 'innodb_buffer_pool_dump_at_shutdown', - 'innodb_buffer_pool_dump_now', - 'innodb_buffer_pool_dump_pct', - 'innodb_buffer_pool_filename', - 'innodb_buffer_pool_load_abort', - 'innodb_buffer_pool_load_now', - 'innodb_buffer_pool_size', - 'innodb_change_buffer_max_size', - 'innodb_change_buffering', - 'innodb_checksum_algorithm', - 'innodb_cmp_per_index_enabled', - 'innodb_commit_concurrency', - 'innodb_compression_failure_threshold_pct', - 'innodb_compression_level', - 'innodb_compression_pad_pct_max', - 'innodb_concurrency_tickets', - 'innodb_create_intrinsic', - 'innodb_disable_sort_file_cache', - 'innodb_fast_shutdown', - 'innodb_file_format', - 'innodb_file_format_max', - 'innodb_file_per_table', - 'innodb_fill_factor', - 'innodb_flush_log_at_timeout', - 'innodb_flush_log_at_trx_commit', - 'innodb_flush_neighbors', - 'innodb_flush_sync', - 'innodb_flushing_avg_loops', - 'innodb_ft_aux_table', - 'innodb_ft_enable_diag_print', - 'innodb_ft_enable_stopword', - 'innodb_ft_num_word_optimize', - 'innodb_ft_result_cache_limit', - 'innodb_ft_server_stopword_table', - 'innodb_ft_user_stopword_table', - 'innodb_io_capacity', - 'innodb_io_capacity_max', - 'innodb_large_prefix', - 'innodb_lock_wait_timeout', - 'innodb_log_checksum_algorithm', - 'innodb_log_compressed_pages', - 'innodb_log_write_ahead_size', - 'innodb_lru_scan_depth', - 'innodb_max_dirty_pages_pct', - 'innodb_max_dirty_pages_pct_lwm', - 'innodb_max_purge_lag', - 'innodb_max_purge_lag_delay', - 'innodb_max_undo_log_size', - 'innodb_monitor_disable', - 'innodb_monitor_enable', - 'innodb_monitor_reset', - 'innodb_monitor_reset_all', - 'innodb_old_blocks_pct', - 'innodb_old_blocks_time', - 'innodb_online_alter_log_max_size', - 'innodb_optimize_fulltext_only', - 'innodb_optimize_point_storage', - 'innodb_print_all_deadlocks', - 'innodb_purge_batch_size', - 'innodb_purge_rseg_truncate_frequency', - 'innodb_random_read_ahead', - 'innodb_read_ahead_threshold', - 'innodb_replication_delay', - 'innodb_rollback_segments', - 'innodb_spin_wait_delay', - 'innodb_stats_auto_recalc', - 'innodb_stats_method', - 'innodb_stats_on_metadata', - 'innodb_stats_persistent', - 'innodb_stats_persistent_sample_pages', - 'innodb_stats_sample_pages', - 'innodb_stats_transient_sample_pages', - 'innodb_status_output', - 'innodb_status_output_locks', - 'innodb_strict_mode', - 'innodb_support_xa', - 'innodb_sync_spin_loops', - 'innodb_table_locks', - 'innodb_thread_concurrency', - 'innodb_thread_sleep_delay', - 'innodb_undo_log_truncate', - 'innodb_undo_logs', - 'insert_id', - 'interactive_timeout', - 'internal_tmp_disk_storage_engine', - 'join_buffer_size', - 'keep_files_on_create', - 'key_buffer_size', - 'key_cache_age_threshold', - 'key_cache_block_size', - 'key_cache_division_limit', - 'last_insert_id', - 'lc_messages', - 'lc_time_names', - 'local_infile', - 'lock_wait_timeout', - 'log_backward_compatible_user_definitions', - 'log_bin_trust_function_creators', - 'log_error_verbosity', - 'log_output', - 'log_queries_not_using_indexes', - 'log_slow_admin_statements', - 'log_slow_slave_statements', - 'log_syslog', - 'log_syslog_facility', - 'log_syslog_include_pid', - 'log_syslog_tag', - 'log_throttle_queries_not_using_indexes', - 'log_timestamps', - 'log_warnings', - 'long_query_time', - 'low_priority_updates', - 'master_info_repository', - 'master_verify_checksum', - 'max_allowed_packet', - 'max_binlog_cache_size', - 'max_binlog_size', - 'max_binlog_stmt_cache_size', - 'max_connect_errors', - 'max_connections', - 'max_delayed_threads', - 'max_error_count', - 'max_heap_table_size', - 'max_insert_delayed_threads', - 'max_join_size', - 'max_length_for_sort_data', - 'max_points_in_geometry', - 'max_prepared_stmt_count', - 'max_relay_log_size', - 'max_seeks_for_key', - 'max_sort_length', - 'max_sp_recursion_depth', - 'max_statement_time', - 'max_user_connections', - 'max_write_lock_count', - 'min_examined_row_limit', - 'myisam_data_pointer_size', - 'myisam_max_sort_file_size', - 'myisam_repair_threads', - 'myisam_sort_buffer_size', - 'myisam_stats_method', - 'myisam_use_mmap', - 'mysql_native_password_proxy_users', - 'ndb_blob_write_batch_bytes', - 'ndb_deferred_constraints', - 'ndb_deferred_constraints', - 'ndb_distribution={KEYHASH|LINHASH}', - 'ndb_distribution', - 'ndb_eventbuffer_free_percent', - 'ndb_eventbuffer_max_alloc', - 'ndb_force_send', - 'ndb_index_stat_enable', - 'ndb_index_stat_option', - 'ndb_join_pushdown', - 'ndb_log_binlog_index', - 'ndb_log_empty_epochs', - 'ndb_log_updated_only', - 'ndb_optimization_delay', - 'ndb_recv_thread_cpu_mask', - 'ndb_show_foreign_key_mock_tables', - 'ndb_table_no_logging', - 'ndb_use_transactions', - 'ndbinfo_max_rows', - 'ndbinfo_show_hidden', - 'net_buffer_length', - 'net_read_timeout', - 'net_retry_count', - 'net_write_timeout', - 'new', - 'offline_mode', - 'old_alter_table', - 'old_passwords', - 'optimizer_prune_level', - 'optimizer_search_depth', - 'optimizer_switch', - 'optimizer_trace', - 'optimizer_trace_features', - 'optimizer_trace_limit', - 'optimizer_trace_max_mem_size', - 'optimizer_trace_offset', - 'preload_buffer_size', - 'profiling', - 'profiling_history_size', - 'pseudo_slave_mode', - 'pseudo_thread_id', - 'query_alloc_block_size', - 'query_cache_limit', - 'query_cache_min_res_unit', - 'query_cache_size', - 'query_cache_type', - 'query_cache_wlock_invalidate', - 'query_prealloc_size', - 'rand_seed1', - 'rand_seed2', - 'range_alloc_block_size', - 'rbr_exec_mode', - 'read_buffer_size', - 'read_only', - 'read_rnd_buffer_size', - 'relay_log_info_repository', - 'relay_log_purge', - 'rewriter_enabled', - 'rewriter_verbose', - 'rpl_semi_sync_master_enabled', - 'rpl_semi_sync_master_timeout', - 'rpl_semi_sync_master_trace_level', - 'rpl_semi_sync_master_wait_for_slave_count', - 'rpl_semi_sync_master_wait_no_slave', - 'rpl_semi_sync_master_wait_point', - 'rpl_semi_sync_slave_enabled', - 'rpl_semi_sync_slave_trace_level', - 'rpl_stop_slave_timeout', - 'secure_auth', - 'server_id', - 'session_track_gtids', - 'session_track_schema', - 'session_track_state_change', - 'session_track_system_variables', - 'sha256_password_proxy_users', - 'show_compatibility_56', - 'show_old_temporals', - 'slave_allow_batching', - 'slave_checkpoint_group=#', - 'slave_checkpoint_period=#', - 'slave_compressed_protocol', - 'slave_exec_mode', - 'slave_max_allowed_packet', - 'slave_net_timeout', - 'slave_parallel_type', - 'slave_parallel_workers', - 'slave_pending_jobs_size_max', - 'slave_preserve_commit_order', - 'slave_rows_search_algorithms=list', - 'slave_sql_verify_checksum', - 'slave_transaction_retries', - 'slow_launch_time', - 'slow_query_log', - 'slow_query_log_file', - 'sort_buffer_size', - 'sql_auto_is_null', - 'sql_big_selects', - 'sql_buffer_result', - 'sql_log_bin', - 'sql_log_off', - 'sql_mode', - 'sql_notes', - 'sql_quote_show_create', - 'sql_safe_updates', - 'sql_select_limit', - 'sql_slave_skip_counter', - 'sql_warnings', - 'storage_engine', - 'stored_program_cache', - 'super_read_only', - 'sync_binlog', - 'sync_frm', - 'sync_master_info', - 'sync_relay_log', - 'sync_relay_log_info', - 'table_definition_cache', - 'table_open_cache', - 'thread_cache_size', - 'time_zone', - 'timed_mutexes', - 'timestamp', - 'tmp_table_size', - 'transaction_alloc_block_size', - 'transaction_allow_batching', - 'transaction_prealloc_size', - 'transaction_write_set_extraction', - 'tx_isolation', - 'tx_read_only', - 'unique_checks', - 'updatable_views_with_limit', - 'validate_password_dictionary_file', - 'validate_password_length', - 'validate_password_mixed_case_count', - 'validate_password_number_count', - 'validate_password_policy', - 'validate_password_special_char_count', - 'wait_timeout' + $static_variables = array( + 'back_log', + 'basedir', + 'bind_address', + 'binlog_row_image', + 'character_set_system', + 'character_sets_dir', + 'core_file', + 'datadir', + 'date_format', + 'datetime_format', + 'disconnect_on_expired_password', + 'engine_condition_pushdown', + 'error_count', + 'explicit_defaults_for_timestamp', + 'external_user', + 'ft_max_word_len', + 'ft_min_word_len', + 'ft_query_expansion_limit', + 'ft_stopword_file', + 'gtid_executed', + 'gtid_owned', + 'have_compress', + 'have_crypt', + 'have_csv', + 'have_dynamic_loading', + 'have_geometry', + 'have_innodb', + 'have_ndbcluster', + 'have_openssl', + 'have_partitioning', + 'have_profiling', + 'have_query_cache', + 'have_rtree_keys', + 'have_ssl', + 'have_symlink', + 'hostname', + 'ignore_builtin_innodb', + 'ignore_db_dirs', + 'init_file', + 'innodb_additional_mem_pool_size', + 'innodb_api_disable_rowlock', + 'innodb_api_enable_binlog', + 'innodb_api_enable_mdl', + 'innodb_autoinc_lock_mode', + 'innodb_buffer_pool_instances', + 'innodb_buffer_pool_load_at_startup', + 'innodb_checksums', + 'innodb_data_file_path', + 'innodb_data_home_dir', + 'innodb_doublewrite', + 'innodb_file_format_check', + 'innodb_flush_method', + 'innodb_force_load_corrupted', + 'innodb_force_recovery', + 'innodb_ft_cache_size', + 'innodb_ft_max_token_size', + 'innodb_ft_min_token_size', + 'innodb_ft_sort_pll_degree', + 'innodb_ft_total_cache_size', + 'innodb_locks_unsafe_for_binlog', + 'innodb_log_buffer_size', + 'innodb_log_file_size', + 'innodb_log_files_in_group', + 'innodb_log_group_home_dir', + 'innodb_mirrored_log_groups', + 'innodb_open_files', + 'innodb_page_size', + 'innodb_purge_threads', + 'innodb_read_io_threads', + 'innodb_read_only', + 'innodb_rollback_on_timeout', + 'innodb_sort_buffer_size', + 'innodb_sync_array_size', + 'innodb_undo_directory', + 'innodb_undo_tablespaces', + 'innodb_use_native_aio', + 'innodb_use_sys_malloc', + 'innodb_version', + 'innodb_write_io_threads', + 'language', + 'large_files_support', + 'large_page_size', + 'large_pages', + 'lc_messages_dir', + 'license', + 'locked_in_memory', + 'log', + 'log_bin', + 'log-bin', + 'log_bin_basename', + 'log_bin_index', + 'log_bin_use_v1_row_events', + 'log_error', + 'log_slave_updates', + 'log_slow_queries', + 'lower_case_file_system', + 'lower_case_table_names', + 'master-bind', + 'max_long_data_size', + 'max_tmp_tables', + 'metadata_locks_cache_size', + 'metadata_locks_hash_instances', + 'memlock', + 'multi_range_count', + 'myisam_mmap_size', + 'myisam_recover_options', + 'named_pipe', + 'old', + 'open_files_limit', + 'partition', + 'performance_schema', + 'performance_schema_accounts_size', + 'performance_schema_digests_size', + 'performance_schema_events_stages_history_long_size', + 'performance_schema_events_stages_history_size', + 'performance_schema_events_statements_history_long_size', + 'performance_schema_events_statements_history_size', + 'performance_schema_events_waits_history_long_size', + 'performance_schema_events_waits_history_size', + 'performance_schema_hosts_size', + 'performance_schema_max_cond_classes', + 'performance_schema_max_cond_instances', + 'performance_schema_max_file_classes', + 'performance_schema_max_file_handles', + 'performance_schema_max_file_instances', + 'performance_schema_max_mutex_classes', + 'performance_schema_max_mutex_instances', + 'performance_schema_max_rwlock_classes', + 'performance_schema_max_rwlock_instances', + 'performance_schema_max_socket_classes', + 'performance_schema_max_socket_instances', + 'performance_schema_max_stage_classes', + 'performance_schema_max_statement_classes', + 'performance_schema_max_table_handles', + 'performance_schema_max_table_instances', + 'performance_schema_max_thread_classes', + 'performance_schema_max_thread_instances', + 'performance_schema_session_connect_attrs_size', + 'performance_schema_setup_actors_size', + 'performance_schema_setup_objects_size', + 'performance_schema_users_size', + 'pid_file', + 'plugin_dir', + 'port', + 'protocol_version', + 'proxy_user', + 'relay_log', + 'relay_log_basename', + 'relay-log-index', + 'relay_log_index', + 'relay_log_info_file', + 'relay_log_recovery', + 'relay_log_space_limit', + 'report_host', + 'report_password', + 'report_port', + 'report_user', + 'rpl_recovery_rank', + 'safe_show_database', + 'secure_file_priv', + 'server_id_bits', + 'server_uuid', + 'shared_memory', + 'shared_memory_base_name', + 'skip_external_locking', + 'skip_name_resolve', + 'skip_networking', + 'skip_show_database', + 'slave_checkpoint_group', + 'slave_checkpoint_period', + 'slave_load_tmpdir', + 'slave_rows_search_algorithms', + 'slave_skip_errors', + 'slave_type_conversions', + 'socket', + 'sql_big_tables', + 'sql_log_update', + 'sql_low_priority_updates', + 'sql_max_join_size', + 'ssl_ca', + 'ssl_capath', + 'ssl_cert', + 'ssl_cipher', + 'ssl_crl', + 'ssl_crlpath', + 'ssl_key', + 'system_time_zone', + 'table_lock_wait_timeout', + 'table_open_cache_instances', + 'table_type', + 'thread_concurrency', + 'thread_handling', + 'thread_stack', + 'time_format', + 'tmpdir', + 'version', + 'version_comment', + 'version_compile_machine', + 'version_compile_os', + 'warning_count', ); - return $dynamic_variables; + return $static_variables; }