~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.cc

  • Committer: Brian Aker
  • Date: 2009-01-25 02:52:05 UTC
  • mfrom: (801.1.4 testable)
  • Revision ID: brian@gir.tangent.org-20090125025205-zlahg6u6z0w95v64
Merge from Myself

Show diffs side-by-side

added added

removed removed

Lines of Context:
1726
1726
}
1727
1727
 
1728
1728
 
1729
 
bool sys_var_log_state::update(Session *, set_var *var)
1730
 
{
1731
 
  bool res;
1732
 
  pthread_mutex_lock(&LOCK_global_system_variables);
1733
 
  if (!var->save_result.uint32_t_value)
1734
 
    res= false;
1735
 
  else
1736
 
    res= true;
1737
 
  pthread_mutex_unlock(&LOCK_global_system_variables);
1738
 
  return res;
1739
 
}
1740
 
 
1741
 
void sys_var_log_state::set_default(Session *, enum_var_type)
1742
 
{
1743
 
}
1744
 
 
1745
 
 
1746
 
bool update_sys_var_str_path(Session *, sys_var_str *var_str,
1747
 
                             set_var *var, const char *log_ext,
1748
 
                             bool log_state, uint32_t log_type)
1749
 
{
1750
 
  char buff[FN_REFLEN];
1751
 
  char *res= 0, *old_value=(char *)(var ? var->value->str_value.ptr() : 0);
1752
 
  bool result= 0;
1753
 
  uint32_t str_length= (var ? var->value->str_value.length() : 0);
1754
 
 
1755
 
  switch (log_type) {
1756
 
  default:
1757
 
    assert(0);                                  // Impossible
1758
 
  }
1759
 
 
1760
 
  if (!old_value)
1761
 
  {
1762
 
    old_value= make_default_log_name(buff, log_ext);
1763
 
    str_length= strlen(old_value);
1764
 
  }
1765
 
  res= (char *)malloc(str_length + 1);
1766
 
  if (res == NULL)
1767
 
  {
1768
 
    result= 1;
1769
 
    goto err;
1770
 
  }
1771
 
  memcpy(res, old_value, str_length);
1772
 
  res[str_length]= 0;
1773
 
 
1774
 
  pthread_mutex_lock(&LOCK_global_system_variables);
1775
 
 
1776
 
  old_value= var_str->value;
1777
 
  var_str->value= res;
1778
 
  var_str->value_length= str_length;
1779
 
  free(old_value);
1780
 
  if (log_state)
1781
 
  {
1782
 
    switch (log_type) {
1783
 
    default:
1784
 
      assert(0);
1785
 
    }
1786
 
  }
1787
 
 
1788
 
  pthread_mutex_unlock(&LOCK_global_system_variables);
1789
 
 
1790
 
err:
1791
 
  return result;
1792
 
}
1793
 
 
1794
1729
/****************************************************************************/
1795
1730
 
1796
1731
bool sys_var_timestamp::update(Session *session,  set_var *var)