summaryrefslogtreecommitdiff
path: root/sql/set_var.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-02-16 10:31:05 +0200
committerunknown <monty@mysql.com>2004-02-16 10:31:05 +0200
commit0c259c54b062f065e375fa185556cdf7fd419c13 (patch)
treee792af64f95eba198633387e3b36f50f096c3001 /sql/set_var.cc
parent70eef0cb05296b7c60c7dbc32811d306675e997a (diff)
parentd00fbce3083f11d071300447e11dab124debb2b7 (diff)
downloadmariadb-git-0c259c54b062f065e375fa185556cdf7fd419c13.tar.gz
Merge with public tree
client/mysqldump.c: Auto merged configure.in: Auto merged include/m_ctype.h: Auto merged include/m_string.h: Auto merged include/my_global.h: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysql-test/r/fulltext.result: Auto merged mysql-test/r/subselect.result: Auto merged mysql-test/t/fulltext.test: Auto merged mysql-test/t/grant.test: Auto merged mysql-test/t/subselect.test: Auto merged mysql-test/t/union.test: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item.cc: Auto merged sql/item_func.cc: Auto merged sql/item_strfunc.cc: Auto merged sql/mysql_priv.h: Auto merged sql/set_var.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged sql/share/english/errmsg.txt: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_string.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_yacc.yy: Auto merged strings/ctype-mb.c: Auto merged strings/ctype-simple.c: Auto merged mysql-test/r/warnings.result: Fix error numbers after merge sql/share/czech/errmsg.txt: Add missing ',' and fix typo sql/share/danish/errmsg.txt: Add missing ',' and fix typo sql/share/dutch/errmsg.txt: Add missing ',' and fix typo sql/share/estonian/errmsg.txt: Add missing ',' and fix typo sql/share/french/errmsg.txt: Add missing ',' and fix typo sql/share/german/errmsg.txt: Add missing ',' and fix typo sql/share/greek/errmsg.txt: Add missing ',' and fix typo sql/share/hungarian/errmsg.txt: Add missing ',' and fix typo sql/share/italian/errmsg.txt: Add missing ',' and fix typo sql/share/japanese/errmsg.txt: Add missing ',' and fix typo sql/share/korean/errmsg.txt: Add missing ',' and fix typo sql/share/norwegian-ny/errmsg.txt: Add missing ',' and fix typo sql/share/norwegian/errmsg.txt: Add missing ',' and fix typo sql/share/polish/errmsg.txt: Add missing ',' and fix typo sql/share/portuguese/errmsg.txt: Add missing ',' and fix typo sql/share/romanian/errmsg.txt: Add missing ',' and fix typo sql/share/russian/errmsg.txt: Add missing ',' and fix typo sql/share/slovak/errmsg.txt: Add missing ',' and fix typo sql/share/spanish/errmsg.txt: Add missing ',' and fix typo sql/share/swedish/errmsg.txt: Add missing ',' and fix typo sql/share/ukrainian/errmsg.txt: Add missing ',' and fix typo
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r--sql/set_var.cc39
1 files changed, 31 insertions, 8 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 073330e06be..7f5cf9503bf 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -96,6 +96,8 @@ static void fix_myisam_max_sort_file_size(THD *thd, enum_var_type type);
static void fix_max_binlog_size(THD *thd, enum_var_type type);
static void fix_max_relay_log_size(THD *thd, enum_var_type type);
static void fix_max_connections(THD *thd, enum_var_type type);
+static void fix_thd_mem_root(THD *thd, enum_var_type type);
+static void fix_trans_mem_root(THD *thd, enum_var_type type);
static KEY_CACHE *create_key_cache(const char *name, uint length);
void fix_sql_mode_var(THD *thd, enum_var_type type);
static byte *get_error_count(THD *thd);
@@ -260,13 +262,17 @@ sys_var_long_ptr sys_query_cache_size("query_cache_size",
sys_var_thd_ulong sys_range_alloc_block_size("range_alloc_block_size",
&SV::range_alloc_block_size);
sys_var_thd_ulong sys_query_alloc_block_size("query_alloc_block_size",
- &SV::query_alloc_block_size);
+ &SV::query_alloc_block_size,
+ fix_thd_mem_root);
sys_var_thd_ulong sys_query_prealloc_size("query_prealloc_size",
- &SV::query_prealloc_size);
+ &SV::query_prealloc_size,
+ fix_thd_mem_root);
sys_var_thd_ulong sys_trans_alloc_block_size("transaction_alloc_block_size",
- &SV::trans_alloc_block_size);
+ &SV::trans_alloc_block_size,
+ fix_trans_mem_root);
sys_var_thd_ulong sys_trans_prealloc_size("transaction_prealloc_size",
- &SV::trans_prealloc_size);
+ &SV::trans_prealloc_size,
+ fix_trans_mem_root);
#ifdef HAVE_QUERY_CACHE
sys_var_long_ptr sys_query_cache_limit("query_cache_limit",
@@ -653,7 +659,7 @@ struct show_var_st init_vars[]= {
{sys_log_warnings.name, (char*) &sys_log_warnings, SHOW_SYS},
{sys_long_query_time.name, (char*) &sys_long_query_time, SHOW_SYS},
{sys_low_priority_updates.name, (char*) &sys_low_priority_updates, SHOW_SYS},
- {"lower_case_table_names", (char*) &lower_case_table_names, SHOW_MY_BOOL},
+ {"lower_case_table_names", (char*) &lower_case_table_names, SHOW_INT},
{sys_max_allowed_packet.name,(char*) &sys_max_allowed_packet, SHOW_SYS},
{sys_max_binlog_cache_size.name,(char*) &sys_max_binlog_cache_size, SHOW_SYS},
{sys_max_binlog_size.name, (char*) &sys_max_binlog_size, SHOW_SYS},
@@ -1016,6 +1022,24 @@ static void fix_max_connections(THD *thd, enum_var_type type)
resize_thr_alarm(max_connections + max_insert_delayed_threads + 10);
}
+
+static void fix_thd_mem_root(THD *thd, enum_var_type type)
+{
+ if (type != OPT_GLOBAL)
+ reset_root_defaults(&thd->mem_root,
+ thd->variables.query_alloc_block_size,
+ thd->variables.query_prealloc_size);
+}
+
+
+static void fix_trans_mem_root(THD *thd, enum_var_type type)
+{
+ if (type != OPT_GLOBAL)
+ reset_root_defaults(&thd->transaction.mem_root,
+ thd->variables.trans_alloc_block_size,
+ thd->variables.trans_prealloc_size);
+}
+
bool sys_var_long_ptr::update(THD *thd, set_var *var)
{
ulonglong tmp= var->save_result.ulonglong_value;
@@ -1332,9 +1356,8 @@ Item *sys_var::item(THD *thd, enum_var_type var_type, LEX_STRING *base)
{
if (var_type != OPT_DEFAULT)
{
- net_printf(thd,
- var_type == OPT_GLOBAL ? ER_LOCAL_VARIABLE :
- ER_GLOBAL_VARIABLE, name);
+ net_printf(thd, ER_INCORRECT_GLOBAL_LOCAL_VAR,
+ name, var_type == OPT_GLOBAL ? "LOCAL" : "GLOBAL");
return 0;
}
/* As there was no local variable, return the global value */