• unknown's avatar
    Fix for BUG#20438: CREATE statements for views, stored routines and triggers · d36f5781
    unknown authored
    can be not replicable.
    
    Now CREATE statements for writing in the binlog are created as follows:
      - the beginning of the statement is re-created;
      - the rest of the statement is copied from the original query.
    
    The problem appears when there is a version-specific comment (produced by
    mysqldump), started in the re-created part of the statement and closed in the
    copied part -- there is closing comment-parenthesis, but there is no opening
    one.
    
    The proper fix could be to re-create original statement, but we can not
    implement it in 5.0. So, for 5.0 the fix is just to cut closing
    comment-parenthesis. This technique is also used for SHOW CREATE PROCEDURE
    statement (so we are able to reuse existing code).
    
    
    mysql-test/r/rpl_sp.result:
      Updated result file.
    mysql-test/r/rpl_trigger.result:
      Updated result file.
    mysql-test/r/rpl_view.result:
      Updated result file.
    mysql-test/t/rpl_sp.test:
      Added test case for BUG#20438.
    mysql-test/t/rpl_trigger.test:
      Added test case for BUG#20438.
    mysql-test/t/rpl_view.test:
      Added test case for BUG#20438.
    sql/sp.cc:
      Trim comments at the end.
    sql/sp_head.cc:
      Moved this code to the separate function to be re-used.
    sql/sql_lex.cc:
      Added a new function.
    sql/sql_lex.h:
      Added a new function.
    sql/sql_trigger.cc:
      Trim comments at the end.
    sql/sql_view.cc:
      Trim comments at the end.
    d36f5781
sql_lex.cc 56 KB