summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2006-05-08 16:38:45 -0700
committerunknown <jimw@mysql.com>2006-05-08 16:38:45 -0700
commitc06972bf2a9e9739c0eb926c6f750b8990fd4c17 (patch)
tree61a75e4b77c3ded4e660e42076b4d7cc71af45ab /sql/set_var.h
parent47302570e639927b258e10a7c009e6d585ba8adf (diff)
downloadmariadb-git-c06972bf2a9e9739c0eb926c6f750b8990fd4c17.tar.gz
Bug #1039: tmpdir and datadir not available via @@ system variable syntax
Bug #19606: ssl variables are not displayed in show variables Bug #19616: log_queries_not_using_indexes is not listed in show variables Make basedir, datadir, tmpdir, log_queries_not_using_indexes, ssl_ca, ssl_capath, ssl_cert, ssl_cipher, and ssl_key all available both from SHOW VARIABLES and as @@variables. As a side-effect of this change, log_queries_not_using_indexes can be changed at runtime (but only globally, not per-connection). include/sslopt-longopts.h: Put options in alphabetical order include/sslopt-vars.h: Allow define of SSL_VARS_NOT_STATIC to prevent variables from not being made static. mysql-test/r/variables.result: Add new results mysql-test/t/variables.test: Add new regression tests sql/mysql_priv.h: Add extern for opt_log_queries_not_using_indexes sql/mysqld.cc: Handle opt_log_queries_not_using_indexes as extern, and define SSL_VARS_NO_STATIC so they can be accessed outside of mysqld.cc sql/set_var.cc: Handle basedir, datadir, tmpdir, log_queries_not_using_indexes, and various ssl settings so that they are accessible as server variables and listed in SHOW VARIABLES. sql/set_var.h: Add new sys_var_constr_str_ptr class, for when we have a system variable that is only set via the command-line that is a pointer to a string.
Diffstat (limited to 'sql/set_var.h')
-rw-r--r--sql/set_var.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/sql/set_var.h b/sql/set_var.h
index 646a578ca36..8e5a94b1e1b 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -222,6 +222,35 @@ public:
};
+class sys_var_const_str_ptr :public sys_var
+{
+public:
+ char **value; // Pointer to const value
+ sys_var_const_str_ptr(const char *name_arg, char **value_arg)
+ :sys_var(name_arg),value(value_arg)
+ {}
+ bool check(THD *thd, set_var *var)
+ {
+ return 1;
+ }
+ bool update(THD *thd, set_var *var)
+ {
+ return 1;
+ }
+ SHOW_TYPE type() { return SHOW_CHAR; }
+ byte *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base)
+ {
+ return (byte*) *value;
+ }
+ bool check_update_type(Item_result type)
+ {
+ return 1;
+ }
+ bool check_default(enum_var_type type) { return 1; }
+ bool is_readonly() const { return 1; }
+};
+
+
class sys_var_enum :public sys_var
{
uint *value;