• unknown's avatar
    A fix and a test case for Bug#9359 "Prepared statements take snapshot · e83e1053
    unknown authored
     of system vars at PREPARE time": implement a special Item
    to handle system variables. This item substitutes itself with 
    a basic constant containing variable value at fix_fields.
    
    
    mysql-test/r/ps.result:
      - test results fixed (Bug#9359).
    mysql-test/t/ps.test:
      - add a test case for Bug#9359 "Prepared statements take snapshot
       of system vars at PREPARE time"
    sql/item_func.cc:
      - implement Item_func_get_system_var: we should not evaluate system
      variables in the parser, but instead should create an item which 
      is evaluated to a constant at execute.
      - remove an unused function
    sql/item_func.h:
      Add a new item, Item_func_get_system_var
    sql/mysql_priv.h:
      Move necessary declarations to make set_var.h objects visible in 
      item_func.h
    sql/set_var.cc:
      - we should not print to network from get_system_var: if it's called
      from prepared statement prepare, we get packets out of order when using
      the binary protocol. Instead report the error to be sent to the user later.
      This is a backport from 5.0.
    sql/set_var.h:
      - declaration of enum_var_type moved to mysql_priv.h
    e83e1053
set_var.cc 100 KB