• cbell/Chuck@mysql_cab_desk.'s avatar
    BUG#20141 "User-defined variables are not replicated properly for · d13c3b94
    cbell/Chuck@mysql_cab_desk. authored
              SF/Triggers in SBR mode."
    BUG#14914 "SP: Uses of session variables in routines are not always replicated"
    BUG#25167 "Dupl. usage of user-variables in trigger/function is not replicated
              correctly"
    
    This patch corrects a minor error in the previous patch for BUG#20141. This patch
    corrects an errant code change to sp_head.cc. The comments for the first patch follow:
    
    User-defined variables used inside of stored functions/triggers in
    statements which did not update tables directly were not replicated.
    We also had problems with replication of user-defined variables which
    were used in triggers (or stored functions called from table-updating
    statements) more than once.
    
    This patch addresses the first issue by enabling logging of all
    references to user-defined variables in triggers/stored functions
    and not only references from table-updating statements.
    
    The second issue stemmed from the fact that for user-defined
    variables used from triggers or stored functions called from
    table-updating statements we were writing binlog events for each
    reference instead of only one event for the first reference.
    This problem is already solved for stored functions called from
    non-updating statements with help of "event unioning" mechanism.
    So the patch simply extends this mechanism to the case affected.
    It also fixes small problem in this mechanism which caused wrong
    logging of references to user-variables in cases when non-updating
    statement called several stored functions which used the same
    variable and some of these function calls were omitted from binlog
    as they were not updating any tables.
    d13c3b94
sp_head.cc 93.4 KB