summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authormonty@hundin.mysql.fi <>2002-08-13 02:18:39 +0300
committermonty@hundin.mysql.fi <>2002-08-13 02:18:39 +0300
commitae1ec6e16a007d2ce542dee8f494b9c30d3a30c6 (patch)
tree05ad0900ffa45f9028b912889f27021e3e9cb962 /sql/set_var.h
parent454339b29cec79c0b6bb553c114c94a81fc1a0db (diff)
downloadmariadb-git-ae1ec6e16a007d2ce542dee8f494b9c30d3a30c6.tar.gz
Changed SQL variable delay_key_write to an enum
able delay_key_write as default (as it was in 4.0.2)
Diffstat (limited to 'sql/set_var.h')
-rw-r--r--sql/set_var.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/sql/set_var.h b/sql/set_var.h
index 46463089b03..cbe479b7902 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -28,7 +28,7 @@
class sys_var;
class set_var;
typedef struct system_variables SV;
-extern TYPELIB bool_typelib;
+extern TYPELIB bool_typelib, delay_key_write_typelib;
enum enum_var_type
{
@@ -140,6 +140,26 @@ public:
};
+class sys_var_enum :public sys_var
+{
+ uint *value;
+ TYPELIB *enum_names;
+public:
+ sys_var_enum(const char *name_arg, uint *value_arg,
+ TYPELIB *typelib, sys_after_update_func func)
+ :sys_var(name_arg,func), value(value_arg), enum_names(typelib)
+ {}
+ bool check(THD *thd, set_var *var)
+ {
+ return check_enum(thd, var, enum_names);
+ }
+ bool update(THD *thd, set_var *var);
+ SHOW_TYPE type() { return SHOW_CHAR; }
+ byte *value_ptr(THD *thd, enum_var_type type);
+ bool check_update_type(Item_result type) { return 0; }
+};
+
+
class sys_var_thd :public sys_var
{
public:
@@ -415,5 +435,6 @@ void set_var_init();
void set_var_free();
sys_var *find_sys_var(const char *str, uint length=0);
bool sql_set_variables(THD *thd, List<set_var_base> *var_list);
+void fix_delay_key_write(THD *thd, enum_var_type type);
extern sys_var_str sys_charset;