• unknown's avatar
    Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect · f87acb59
    unknown authored
    restores from mysqlbinlog out
    
    Problem: using "mysqlbinlog | mysql" for recoveries the connection_id() 
    result may differ from what was used when issuing the statement.
    
    Fix: if there is a connection_id() in a statement, write to binlog
    SET pseudo_thread_id= XXX; before it and use the value later on.
    
    
    mysql-test/r/mysqlbinlog.result:
      Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 
      restores from mysqlbinlog out
        - test result.
    mysql-test/t/mysqlbinlog.test:
      Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 
      restores from mysqlbinlog out
        - test case.
    sql/item_create.cc:
      Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 
      restores from mysqlbinlog out
        - set thread_specific_used flag for the connection_id() function.
    sql/item_func.cc:
      Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 
      restores from mysqlbinlog out
        - always return thd->variables.pseudo_thread_id as a connection_id() 
      result, as it contains a proper value for both master and slave.
    sql/log_event.cc:
      Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 
      restores from mysqlbinlog out
        - set LOG_EVENT_THREAD_SPECIFIC_F event flag if thread_specific_used
      is set.
    sql/sql_class.cc:
      Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 
      restores from mysqlbinlog out
        - thd->thread_specific_used introduced, which is set if thread specific 
      value(s) used in a statement.
    sql/sql_class.h:
      Fix for bug #29928: INSERT ... VALUES(connection_id(), ...) incorrect 
      restores from mysqlbinlog out
        - thd->thread_specific_used introduced, which is set if thread specific 
      value(s) used in a statement.
    f87acb59
sql_class.cc 62 KB