~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.cc

  • Committer: Mark Atwood
  • Date: 2008-10-16 11:16:12 UTC
  • mfrom: (520.1.2 drizzle)
  • mto: (520.1.13 drizzle)
  • mto: This revision was merged to the branch mainline in revision 530.
  • Revision ID: mark@fallenpegasus.com-20081016111612-5nei7m5subslx912
mergeĀ fromĀ head

Show diffs side-by-side

added added

removed removed

Lines of Context:
144
144
                                            &SV::binlog_format);
145
145
static sys_var_thd_ulong        sys_bulk_insert_buff_size(&vars, "bulk_insert_buffer_size",
146
146
                                                  &SV::bulk_insert_buff_size);
147
 
static sys_var_character_set_sv
148
 
sys_character_set_server(&vars, "character_set_server",
149
 
                         &SV::collation_server, &default_charset_info, 0,
150
 
                         sys_var::SESSION_VARIABLE_IN_BINLOG);
151
 
sys_var_const_str       sys_charset_system(&vars, "character_set_system",
152
 
                                           (char *)my_charset_utf8_general_ci.name);
153
 
static sys_var_character_set_database
154
 
sys_character_set_database(&vars, "character_set_database",
155
 
                           sys_var::SESSION_VARIABLE_IN_BINLOG);
156
 
static sys_var_character_set_client
157
 
sys_character_set_client(&vars, "character_set_client",
158
 
                         &SV::character_set_client,
159
 
                         &default_charset_info,
160
 
                         sys_var::SESSION_VARIABLE_IN_BINLOG);
161
 
static sys_var_character_set_sv
162
 
sys_character_set_connection(&vars, "character_set_connection",
163
 
                             &SV::collation_connection,
164
 
                             &default_charset_info, 0,
165
 
                             sys_var::SESSION_VARIABLE_IN_BINLOG);
166
 
static sys_var_character_set_sv sys_character_set_results(&vars, "character_set_results",
167
 
                                        &SV::character_set_results,
168
 
                                        &default_charset_info, true);
169
 
static sys_var_character_set_sv sys_character_set_filesystem(&vars, "character_set_filesystem",
170
 
                                        &SV::character_set_filesystem,
171
 
                                        &character_set_filesystem);
172
147
static sys_var_thd_ulong        sys_completion_type(&vars, "completion_type",
173
148
                                         &SV::completion_type,
174
149
                                         check_completion_type,
315
290
                                               &SV::read_rnd_buff_size);
316
291
static sys_var_thd_ulong        sys_div_precincrement(&vars, "div_precision_increment",
317
292
                                              &SV::div_precincrement);
318
 
static sys_var_long_ptr sys_rpl_recovery_rank(&vars, "rpl_recovery_rank",
319
 
                                              &rpl_recovery_rank);
320
293
 
321
294
static sys_var_thd_ulong        sys_range_alloc_block_size(&vars, "range_alloc_block_size",
322
295
                                                   &SV::range_alloc_block_size);
334
307
                                                &SV::trans_prealloc_size,
335
308
                                                0, fix_trans_mem_root);
336
309
 
337
 
static sys_var_bool_ptr sys_secure_auth(&vars, "secure_auth", &opt_secure_auth);
338
310
static sys_var_const_str_ptr sys_secure_file_priv(&vars, "secure_file_priv",
339
311
                                             &opt_secure_file_priv);
340
312
static sys_var_long_ptr sys_server_id(&vars, "server_id", &server_id, fix_server_id);
1731
1703
}
1732
1704
 
1733
1705
 
1734
 
void sys_var_character_set_sv::set_default(THD *thd, enum_var_type type)
1735
 
{
1736
 
  if (type == OPT_GLOBAL)
1737
 
    global_system_variables.*offset= *global_default;
1738
 
  else
1739
 
  {
1740
 
    thd->variables.*offset= global_system_variables.*offset;
1741
 
    thd->update_charset();
1742
 
  }
1743
 
}
1744
 
const CHARSET_INFO **sys_var_character_set_sv::ci_ptr(THD *thd, enum_var_type type)
1745
 
{
1746
 
  if (type == OPT_GLOBAL)
1747
 
    return &(global_system_variables.*offset);
1748
 
  else
1749
 
    return &(thd->variables.*offset);
1750
 
}
1751
 
 
1752
 
 
1753
 
bool sys_var_character_set_client::check(THD *thd, set_var *var)
1754
 
{
1755
 
  if (sys_var_character_set_sv::check(thd, var))
1756
 
    return 1;
1757
 
  /* Currently, UCS-2 cannot be used as a client character set */
1758
 
  if (var->save_result.charset->mbminlen > 1)
1759
 
  {
1760
 
    my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name, 
1761
 
             var->save_result.charset->csname);
1762
 
    return 1;
1763
 
  }
1764
 
  return 0;
1765
 
}
1766
 
 
1767
 
 
1768
 
const CHARSET_INFO ** sys_var_character_set_database::ci_ptr(THD *thd,
1769
 
                                                       enum_var_type type)
1770
 
{
1771
 
  if (type == OPT_GLOBAL)
1772
 
    return &global_system_variables.collation_database;
1773
 
  else
1774
 
    return &thd->variables.collation_database;
1775
 
}
1776
 
 
1777
 
 
1778
 
void sys_var_character_set_database::set_default(THD *thd, enum_var_type type)
1779
 
{
1780
 
 if (type == OPT_GLOBAL)
1781
 
    global_system_variables.collation_database= default_charset_info;
1782
 
  else
1783
 
  {
1784
 
    thd->variables.collation_database= thd->db_charset;
1785
 
    thd->update_charset();
1786
 
  }
1787
 
}
1788
 
 
1789
 
 
1790
1706
bool sys_var_collation_sv::update(THD *thd, set_var *var)
1791
1707
{
1792
1708
  if (var->type == OPT_GLOBAL)