summaryrefslogtreecommitdiff
path: root/sql/sys_vars.cc
diff options
context:
space:
mode:
authorGuilhem Bichot <guilhem@mysql.com>2010-03-05 14:08:21 +0100
committerGuilhem Bichot <guilhem@mysql.com>2010-03-05 14:08:21 +0100
commit7bb4e5b459d956a5fa0c62f4c230181cfc72e913 (patch)
treebea9045dc83fdcd27b60b2ef9098d9118d767b08 /sql/sys_vars.cc
parent16dfa2b16f6c49695536885c85d3fa3dccb9d1a1 (diff)
downloadmariadb-git-7bb4e5b459d956a5fa0c62f4c230181cfc72e913.tar.gz
Fix for BUG#51215 "log-error partially works with version 5.5": WL 4738 (reengineering of server variables)
had broken the 5.1 behaviour of --log-error: --log-error without argument sent to stderr instead of writing to a file with an autogenerated name. mysql-test/suite/sys_vars/t/log_error_func.test: test that error log is created and shown in SHOW VARIABLES. Interestingly the error log's path is apparently relative if --log-error=argument is used, but may be absolute or relative if --log-error(no argument) is used (because then the path is derived from that of pidfile_name, which can be absolute or relative, depending on if autogenerated or not). mysql-test/suite/sys_vars/t/log_error_func2.test: test that error log is created and shown in SHOW VARIABLES mysql-test/suite/sys_vars/t/log_error_func3.test: test that error log is empty in SHOW VARIABLES sql/mysql_priv.h: id for option --log-error sql/mysqld.cc: No --log-error means "write errors to stderr", whereas --log-error without argument means "write errors to a file". So we cannot use the default logic of class sys_var_charptr, which treats "option not used" the same as "option used without argument" and uses the same default for both. We need to catch "option used", in mysqld_get_one_option(), and then "without argument". Setting to "" makes sure that init_server_components() will create the log, with an autogenerated name. sql/sys_vars.cc: need to give the option a numeric id so that we can catch it in mysqld_get_one_option()
Diffstat (limited to 'sql/sys_vars.cc')
-rw-r--r--sql/sys_vars.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
index d500d772b80..2e239a9161c 100644
--- a/sql/sys_vars.cc
+++ b/sql/sys_vars.cc
@@ -895,7 +895,8 @@ static Sys_var_mybool Sys_trust_function_creators(
static Sys_var_charptr Sys_log_error(
"log_error", "Error log file",
- READ_ONLY GLOBAL_VAR(log_error_file_ptr), CMD_LINE(OPT_ARG),
+ READ_ONLY GLOBAL_VAR(log_error_file_ptr),
+ CMD_LINE(OPT_ARG, OPT_LOG_ERROR),
IN_FS_CHARSET, DEFAULT(disabled_my_option));
static Sys_var_mybool Sys_log_queries_not_using_indexes(