• Michael Widenius's avatar
    Fixed that the we don't change CREATE to CREATE OR REPLACE, except if the... · 10ae6e35
    Michael Widenius authored
    Fixed that the we don't change CREATE to CREATE OR REPLACE, except if the slave removed an existing table as part of CREATE.
    This will help the following replicaition scenario:
    MariaDB 10.0 master (statement replication) -> MariaDB 10.0 slave (row based replication) -> MySQL or MariaDB 5.x slave
    
    
    mysql-test/r/mysqld--help.result:
      Updated help text
    mysql-test/suite/rpl/r/create_or_replace_mix.result:
      Added more tests
    mysql-test/suite/rpl/r/create_or_replace_row.result:
      Added more tests
    mysql-test/suite/rpl/r/create_or_replace_statement.result:
      Added more tests
    mysql-test/suite/rpl/t/create_or_replace.inc:
      Added more tests
    sql/handler.h:
      Added org_options so that we can detect what come from the query and what was possible added later.
    sql/sql_insert.cc:
      Only write CREATE OR REPLACE if was originally specified or if we delete a conflicting table as part of create
    sql/sql_parse.cc:
      Remember orginal create options
    sql/sql_table.cc:
      Only write CREATE OR REPLACE if was originally specified or if we delete a conflicting table as part of create
    sql/sys_vars.cc:
      Updated help text
    10ae6e35
sys_vars.cc 178 KB