42
#include <drizzled/option.h>
43
#include <drizzled/error.h>
44
#include <drizzled/gettext.h>
45
#include <drizzled/tztime.h>
46
#include <drizzled/data_home.h>
47
#include <drizzled/set_var.h>
48
#include <drizzled/session.h>
49
#include <drizzled/sql_base.h>
50
#include <drizzled/lock.h>
51
#include <drizzled/item/uint.h>
52
#include <drizzled/item/null.h>
53
#include <drizzled/item/float.h>
54
#include <drizzled/item/string.h>
55
#include <drizzled/plugin.h>
56
#include <drizzled/version.h>
57
#include <drizzled/strfunc.h>
58
#include <drizzled/internal/m_string.h>
59
#include <drizzled/pthread_globals.h>
60
#include <drizzled/charset.h>
61
#include <drizzled/transaction_services.h>
62
#include <drizzled/constrained_value.h>
63
#include <drizzled/visibility.h>
64
#include <drizzled/typelib.h>
65
#include <drizzled/plugin/storage_engine.h>
42
#include "drizzled/option.h"
43
#include "drizzled/error.h"
44
#include "drizzled/gettext.h"
45
#include "drizzled/tztime.h"
46
#include "drizzled/data_home.h"
47
#include "drizzled/set_var.h"
48
#include "drizzled/session.h"
49
#include "drizzled/sql_base.h"
50
#include "drizzled/lock.h"
51
#include "drizzled/item/uint.h"
52
#include "drizzled/item/null.h"
53
#include "drizzled/item/float.h"
54
#include "drizzled/item/string.h"
55
#include "drizzled/plugin.h"
56
#include "drizzled/version.h"
57
#include "drizzled/strfunc.h"
58
#include "drizzled/internal/m_string.h"
59
#include "drizzled/pthread_globals.h"
60
#include "drizzled/charset.h"
61
#include "drizzled/transaction_services.h"
62
#include "drizzled/constrained_value.h"
63
#include "drizzled/visibility.h"
226
218
static sys_var_session_storage_engine sys_storage_engine("storage_engine",
227
219
&drizzle_system_variables::storage_engine);
220
static sys_var_const_str sys_system_time_zone("system_time_zone",
228
222
static sys_var_size_t_ptr sys_table_def_size("table_definition_cache",
229
223
&table_def_size);
230
224
static sys_var_uint64_t_ptr sys_table_cache_size("table_open_cache",
313
307
sys_var_session_uint64_t sys_group_concat_max_len("group_concat_max_len",
314
308
&drizzle_system_variables::group_concat_max_len);
310
sys_var_session_time_zone sys_time_zone("time_zone");
316
312
/* Global read-only variable containing hostname */
317
static sys_var_const_string sys_hostname("hostname", getServerHostname());
319
static sys_var_const_str sys_revid("vc_revid", DRIZZLE7_VC_REVID);
320
static sys_var_const_str sys_branch("vc_branch", DRIZZLE7_VC_BRANCH);
321
static sys_var_size_t_ptr_readonly sys_revno("vc_revno", &revno);
322
static sys_var_size_t_ptr_readonly sys_release_id("vc_release_id", &release_id);
313
static sys_var_const_str sys_hostname("hostname", glob_hostname);
324
315
bool sys_var::check(Session *session, set_var *var)
1169
1160
return (unsigned char*) &session->sys_var_tmp.uint64_t_value;
1164
bool sys_var_session_time_zone::update(Session *session, set_var *var)
1166
char buff[MAX_TIME_ZONE_NAME_LENGTH];
1167
String str(buff, sizeof(buff), &my_charset_utf8_general_ci);
1168
String *res= var->value->val_str(&str);
1170
Time_zone *tmp= my_tz_find(session, res);
1173
boost::throw_exception(invalid_option_value(var->var->getName()) << invalid_value(std::string(res ? res->c_ptr() : "NULL")));
1176
/* We are using Time_zone object found during check() phase. */
1177
if (var->type == OPT_GLOBAL)
1179
boost::mutex::scoped_lock scopedLock(session->catalog().systemVariableLock());
1180
global_system_variables.time_zone= tmp;
1184
session->variables.time_zone= tmp;
1191
unsigned char *sys_var_session_time_zone::value_ptr(Session *session,
1196
We can use ptr() instead of c_ptr() here because String contaning
1197
time zone name is guaranteed to be zero ended.
1199
if (type == OPT_GLOBAL)
1200
return (unsigned char *)(global_system_variables.time_zone->get_name()->ptr());
1204
This is an ugly fix for replication: we don't replicate properly queries
1205
invoking system variables' values to update tables; but
1206
CONVERT_TZ(,,@@session.time_zone) is so popular that we make it
1207
replicable (i.e. we tell the binlog code to store the session
1208
timezone). If it's the global value which was used we can't replicate
1209
(binlog code stores session value only).
1211
return (unsigned char *)(session->variables.time_zone->get_name()->ptr());
1216
void sys_var_session_time_zone::set_default(Session *session, sql_var_t type)
1218
boost::mutex::scoped_lock scopedLock(session->catalog().systemVariableLock());
1219
if (type == OPT_GLOBAL)
1221
if (default_tz_name)
1223
String str(default_tz_name, &my_charset_utf8_general_ci);
1225
We are guaranteed to find this time zone since its existence
1226
is checked during start-up.
1228
global_system_variables.time_zone= my_tz_find(session, &str);
1231
global_system_variables.time_zone= my_tz_SYSTEM;
1234
session->variables.time_zone= global_system_variables.time_zone;
1172
1239
bool sys_var_session_lc_time_names::update(Session *session, set_var *var)
1174
1241
MY_LOCALE *locale_match;
1498
1565
add_sys_var_to_list(&sys_back_log, my_long_options);
1499
1566
add_sys_var_to_list(&sys_basedir, my_long_options);
1500
1567
add_sys_var_to_list(&sys_big_selects, my_long_options);
1501
add_sys_var_to_list(&sys_branch, my_long_options);
1502
1568
add_sys_var_to_list(&sys_buffer_results, my_long_options);
1503
1569
add_sys_var_to_list(&sys_bulk_insert_buff_size, my_long_options);
1504
1570
add_sys_var_to_list(&sys_collation_server, my_long_options);
1533
1599
add_sys_var_to_list(&sys_range_alloc_block_size, my_long_options);
1534
1600
add_sys_var_to_list(&sys_read_buff_size, my_long_options);
1535
1601
add_sys_var_to_list(&sys_read_rnd_buff_size, my_long_options);
1536
add_sys_var_to_list(&sys_release_id, my_long_options);
1537
1602
add_sys_var_to_list(&sys_replicate_query, my_long_options);
1538
add_sys_var_to_list(&sys_revid, my_long_options);
1539
add_sys_var_to_list(&sys_revno, my_long_options);
1540
1603
add_sys_var_to_list(&sys_scheduler, my_long_options);
1541
1604
add_sys_var_to_list(&sys_secure_file_priv, my_long_options);
1542
1605
add_sys_var_to_list(&sys_select_limit, my_long_options);
1545
1608
add_sys_var_to_list(&sys_sql_notes, my_long_options);
1546
1609
add_sys_var_to_list(&sys_sql_warnings, my_long_options);
1547
1610
add_sys_var_to_list(&sys_storage_engine, my_long_options);
1611
add_sys_var_to_list(&sys_system_time_zone, my_long_options);
1548
1612
add_sys_var_to_list(&sys_table_cache_size, my_long_options);
1549
1613
add_sys_var_to_list(&sys_table_def_size, my_long_options);
1550
1614
add_sys_var_to_list(&sys_table_lock_wait_timeout, my_long_options);
1551
1615
add_sys_var_to_list(&sys_thread_stack_size, my_long_options);
1616
add_sys_var_to_list(&sys_time_zone, my_long_options);
1552
1617
add_sys_var_to_list(&sys_timed_mutexes, my_long_options);
1553
1618
add_sys_var_to_list(&sys_timestamp, my_long_options);
1554
1619
add_sys_var_to_list(&sys_tmp_table_size, my_long_options);