~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.cc

  • Committer: Brian Aker
  • Date: 2009-08-15 00:59:30 UTC
  • mfrom: (1115.1.7 merge)
  • Revision ID: brian@gaz-20090815005930-q47yenjrq1esiwsz
Merge of Trond + Brian

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
  @todo
37
37
    Add full support for the variable character_set (for 4.1)
38
38
 
39
 
  @todo
40
 
    When updating myisam_delay_key_write, we should do a 'flush tables'
41
 
    of all MyISAM tables to ensure that they are reopen with the
42
 
    new attribute.
43
 
 
44
39
  @note
45
40
    Be careful with var->save_result: sys_var::check() only updates
46
41
    uint64_t_value; so other members of the union are garbage then; to use
84
79
  array_elements(bool_type_names)-1, "", bool_type_names, NULL
85
80
};
86
81
 
87
 
const char *delay_key_write_type_names[]= { "OFF", "ON", "ALL", NULL };
88
 
TYPELIB delay_key_write_typelib=
89
 
{
90
 
  array_elements(delay_key_write_type_names)-1, "",
91
 
  delay_key_write_type_names, NULL
92
 
};
93
 
 
94
82
static bool set_option_bit(Session *session, set_var *var);
95
83
static bool set_option_autocommit(Session *session, set_var *var);
96
84
static int  check_pseudo_thread_id(Session *session, set_var *var);
139
127
static sys_var_collation_sv
140
128
sys_collation_server(&vars, "collation_server", &SV::collation_server, &default_charset_info);
141
129
static sys_var_const_str       sys_datadir(&vars, "datadir", drizzle_real_data_home);
142
 
static sys_var_enum             sys_delay_key_write(&vars, "delay_key_write",
143
 
                                            &delay_key_write_options,
144
 
                                            &delay_key_write_typelib,
145
 
                                            fix_delay_key_write);
146
130
 
147
 
static sys_var_bool_ptr sys_flush(&vars, "flush", &myisam_flush);
148
131
static sys_var_session_uint64_t sys_join_buffer_size(&vars, "join_buffer_size",
149
132
                                                     &SV::join_buff_size);
150
133
static sys_var_key_buffer_size  sys_key_buffer_size(&vars, "key_buffer_size");
182
165
static sys_var_session_uint64_t sys_min_examined_row_limit(&vars, "min_examined_row_limit",
183
166
                                                           &SV::min_examined_row_limit);
184
167
 
185
 
static sys_var_session_enum         sys_myisam_stats_method(&vars, "myisam_stats_method",
186
 
                                                            &SV::myisam_stats_method,
187
 
                                                            &myisam_stats_method_typelib,
188
 
                                                            NULL);
189
168
static sys_var_session_uint32_t sys_net_buffer_length(&vars, "net_buffer_length",
190
169
                                                      &SV::net_buffer_length);
191
170
/* these two cannot be static */
429
408
}
430
409
 
431
410
 
432
 
extern void fix_delay_key_write(Session *, enum_var_type)
433
 
{
434
 
  switch ((enum_delay_key_write) delay_key_write_options) {
435
 
  case DELAY_KEY_WRITE_NONE:
436
 
    myisam_delay_key_write=0;
437
 
    break;
438
 
  case DELAY_KEY_WRITE_ON:
439
 
    myisam_delay_key_write=1;
440
 
    break;
441
 
  case DELAY_KEY_WRITE_ALL:
442
 
    myisam_delay_key_write=1;
443
 
    ha_open_options|= HA_OPEN_DELAY_KEY_WRITE;
444
 
    break;
445
 
  }
446
 
}
447
 
 
448
 
 
449
411
static void fix_session_mem_root(Session *session, enum_var_type type)
450
412
{
451
413
  if (type != OPT_GLOBAL)