summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authorSergey Petrunia <sergefp@mysql.com>2009-02-23 19:16:48 +0300
committerSergey Petrunia <sergefp@mysql.com>2009-02-23 19:16:48 +0300
commitcb6581d89459a4c45e9146a40e1f0119a2e8e325 (patch)
tree3d3b5469190266610021c7ceae3e2beb730355fe /sql/set_var.h
parentfecaef26af0417a23f6585c79de41abd5f6aba86 (diff)
downloadmariadb-git-cb6581d89459a4c45e9146a40e1f0119a2e8e325.tar.gz
- Backport @@optimizer_switch support from 6.0
- Add support for setting it as a server commandline argument - Add support for those switches: = no_index_merge = no_index_merge_union = no_index_merge_sort_union = no_index_merge_intersection mysql-test/r/index_merge_myisam.result: Testcases for index_merge related @@optimizer_switch flags. mysql-test/t/index_merge_myisam.test: Testcases for index_merge related @@optimizer_switch flags. sql/set_var.cc: - Backport @@optimizer_switch support from 6.0 - Add support for setting it as a server commandline argument sql/sql_class.h: - Backport @@optimizer_switch support from 6.0 sql/sql_select.h: - Backport @@optimizer_switch support from 6.0
Diffstat (limited to 'sql/set_var.h')
-rw-r--r--sql/set_var.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/sql/set_var.h b/sql/set_var.h
index b6c67d1ab4a..f07facde0b0 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -31,7 +31,7 @@ typedef struct system_variables SV;
typedef struct my_locale_st MY_LOCALE;
extern TYPELIB bool_typelib, delay_key_write_typelib, sql_mode_typelib,
- slave_exec_mode_typelib;
+ optimizer_switch_typelib, slave_exec_mode_typelib;
typedef int (*sys_check_func)(THD *, set_var *);
typedef bool (*sys_update_func)(THD *, set_var *);
@@ -532,6 +532,23 @@ public:
};
+class sys_var_thd_optimizer_switch :public sys_var_thd_enum
+{
+public:
+ sys_var_thd_optimizer_switch(sys_var_chain *chain, const char *name_arg,
+ ulong SV::*offset_arg)
+ :sys_var_thd_enum(chain, name_arg, offset_arg, &optimizer_switch_typelib)
+ {}
+ bool check(THD *thd, set_var *var)
+ {
+ return check_set(thd, var, enum_names);
+ }
+ void set_default(THD *thd, enum_var_type type);
+ uchar *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base);
+ static bool symbolic_mode_representation(THD *thd, ulonglong sql_mode,
+ LEX_STRING *rep);
+};
+
extern void fix_sql_mode_var(THD *thd, enum_var_type type);
class sys_var_thd_sql_mode :public sys_var_thd_enum