• unknown's avatar
    Fix for bug #29131: SHOW VARIABLES reports variable 'log' but SET · ee50bb8c
    unknown authored
    doesn't recognize it
    
    This is a 5.0 version of the patch, it will be null-merged to 5.1
    
    Problem:
    
    'log' and 'log_slow_queries' were "fixed" variables, i.e. they showed up
    in SHOW VARIABLES, but could not be used in expressions like 
    "select @@log". Also, using them in the SET statement produced an 
    incorrect "unknown system variable" error.
    
    Solution:
    
    Make 'log' and 'log_slow_queries' read-only dynamic variables to make 
    them available for use in expressions, and produce a correct error 
    about the variable being read-only when used in the SET statement.
    
    
    mysql-test/r/variables.result:
      Added a test case for bug #29131.
    mysql-test/t/variables.test:
      Added a test case for bug #29131.
    sql/mysql_priv.h:
      Changed the type of opt_log and opt_slow_log to my_bool to 
      align with the interfaces in set_var.cc
    sql/mysqld.cc:
      Changed the type of opt_log and opt_slow_log to my_bool to 
      align with the interfaces in set_var.cc
    sql/set_var.cc:
      Made 'log' and 'log_slow_queries' to be read-only dynamic system 
      variable, i.e. available for use in expressions with the @@var syntax.
    sql/set_var.h:
      Added a new system variable class representing a read-only boolean
      variable.
    ee50bb8c
set_var.h 30.3 KB