~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.cc

  • Committer: Brian Aker
  • Date: 2008-10-11 21:01:52 UTC
  • Revision ID: brian@tangent.org-20081011210152-8ipnqumvhtt1zcmj
Added back more tests.

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,
1730
1705
}
1731
1706
 
1732
1707
 
1733
 
void sys_var_character_set_sv::set_default(THD *thd, enum_var_type type)
1734
 
{
1735
 
  if (type == OPT_GLOBAL)
1736
 
    global_system_variables.*offset= *global_default;
1737
 
  else
1738
 
  {
1739
 
    thd->variables.*offset= global_system_variables.*offset;
1740
 
    thd->update_charset();
1741
 
  }
1742
 
}
1743
 
const CHARSET_INFO **sys_var_character_set_sv::ci_ptr(THD *thd, enum_var_type type)
1744
 
{
1745
 
  if (type == OPT_GLOBAL)
1746
 
    return &(global_system_variables.*offset);
1747
 
  else
1748
 
    return &(thd->variables.*offset);
1749
 
}
1750
 
 
1751
 
 
1752
 
bool sys_var_character_set_client::check(THD *thd, set_var *var)
1753
 
{
1754
 
  if (sys_var_character_set_sv::check(thd, var))
1755
 
    return 1;
1756
 
  /* Currently, UCS-2 cannot be used as a client character set */
1757
 
  if (var->save_result.charset->mbminlen > 1)
1758
 
  {
1759
 
    my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name, 
1760
 
             var->save_result.charset->csname);
1761
 
    return 1;
1762
 
  }
1763
 
  return 0;
1764
 
}
1765
 
 
1766
 
 
1767
 
const CHARSET_INFO ** sys_var_character_set_database::ci_ptr(THD *thd,
1768
 
                                                       enum_var_type type)
1769
 
{
1770
 
  if (type == OPT_GLOBAL)
1771
 
    return &global_system_variables.collation_database;
1772
 
  else
1773
 
    return &thd->variables.collation_database;
1774
 
}
1775
 
 
1776
 
 
1777
 
void sys_var_character_set_database::set_default(THD *thd, enum_var_type type)
1778
 
{
1779
 
 if (type == OPT_GLOBAL)
1780
 
    global_system_variables.collation_database= default_charset_info;
1781
 
  else
1782
 
  {
1783
 
    thd->variables.collation_database= thd->db_charset;
1784
 
    thd->update_charset();
1785
 
  }
1786
 
}
1787
 
 
1788
 
 
1789
1708
bool sys_var_collation_sv::update(THD *thd, set_var *var)
1790
1709
{
1791
1710
  if (var->type == OPT_GLOBAL)