summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-05-30 13:03:56 +0500
committerunknown <bar@bar.mysql.r18.ru>2003-05-30 13:03:56 +0500
commitf46e958e1e0a6ca13bb94dea7064b338c5474a8d (patch)
tree7682d84ae2c4a6586327f259fdad9663290deb15 /sql/set_var.h
parent69e084af1eedff2dda70fcf073dd4fa349718b69 (diff)
downloadmariadb-git-f46e958e1e0a6ca13bb94dea7064b338c5474a8d.tar.gz
character_set_server is now updatable
character_set_database was added Code optimization: reuse more code for all character sets variables sql/mysqld.cc: character_set_server is now updatable character_set_database was added sql/set_var.cc: character_set_server is now updatable character_set_database was added sql/set_var.h: character_set_server is now updatable character_set_database was added sql/sql_base.cc: character_set_server is now updatable character_set_database was added sql/sql_class.cc: character_set_server is now updatable character_set_database was added sql/sql_class.h: character_set_server is now updatable character_set_database was added sql/sql_db.cc: character_set_server is now updatable character_set_database was added sql/sql_load.cc: character_set_server is now updatable character_set_database was added sql/sql_table.cc: character_set_server is now updatable character_set_database was added sql/sql_yacc.yy: character_set_server is now updatable character_set_database was added BitKeeper/etc/ignore: Added scripts/mysql_create_system_tables to the ignore list
Diffstat (limited to 'sql/set_var.h')
-rw-r--r--sql/set_var.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/sql/set_var.h b/sql/set_var.h
index f501426e553..7c1a9bc3233 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -441,7 +441,10 @@ SHOW_TYPE type() { return SHOW_CHAR; }
return type != STRING_RESULT; /* Only accept strings */
}
bool check_default(enum_var_type type) { return 0; }
+ bool update(THD *thd, set_var *var);
+ byte *value_ptr(THD *thd, enum_var_type type);
virtual void set_default(THD *thd, enum_var_type type)= 0;
+ virtual CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type)= 0;
};
class sys_var_character_set_client :public sys_var_character_set
@@ -449,9 +452,8 @@ class sys_var_character_set_client :public sys_var_character_set
public:
sys_var_character_set_client(const char *name_arg) :
sys_var_character_set(name_arg) {}
- bool update(THD *thd, set_var *var);
void set_default(THD *thd, enum_var_type type);
- byte *value_ptr(THD *thd, enum_var_type type);
+ CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
};
class sys_var_character_set_results :public sys_var_character_set
@@ -459,9 +461,26 @@ class sys_var_character_set_results :public sys_var_character_set
public:
sys_var_character_set_results(const char *name_arg) :
sys_var_character_set(name_arg) {}
- bool update(THD *thd, set_var *var);
void set_default(THD *thd, enum_var_type type);
- byte *value_ptr(THD *thd, enum_var_type type);
+ CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
+};
+
+class sys_var_character_set_server :public sys_var_character_set
+{
+public:
+ sys_var_character_set_server(const char *name_arg) :
+ sys_var_character_set(name_arg) {}
+ void set_default(THD *thd, enum_var_type type);
+ CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
+};
+
+class sys_var_character_set_database :public sys_var_character_set
+{
+public:
+ sys_var_character_set_database(const char *name_arg) :
+ sys_var_character_set(name_arg) {}
+ void set_default(THD *thd, enum_var_type type);
+ CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
};
class sys_var_collation_connection :public sys_var_collation
@@ -606,6 +625,5 @@ sys_var *find_sys_var(const char *str, uint length=0);
int 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;
extern sys_var_str sys_charset_system;
CHARSET_INFO *get_old_charset_by_name(const char *old_name);